AWS CLI를 이용한 네트워크 리소스 생성 및 연결
IAM 사용자 및 AWS CLI 환경 설정
AWS CLI를 사용하기 위해서는 먼저 IAM 사용자에게 접근 권한이 있어야 합니다. 실습에서는 test-user라는 IAM 사용자 계정을 사용하며, 반드시 AdministratorAccess 권한이 할당되어 있어야 합니다. 만약 권한이 없다면 Root 계정에서 부여해야 합니다.
IAM 사용자는 최대 2개의 Access Key를 발급받을 수 있으며, 예를 들어 노트북과 데스크탑에서 각각 다른 Access Key를 사용할 수 있습니다. 서로 다른 키라도 동일한 사용자에게 발급되었다면 문제없이 CLI 명령을 실행할 수 있습니다.
Access Key 발급 후, aws configure
명령어를 통해 CLI 환경을 설정합니다. 입력 항목은 아래와 같습니다.
aws configure
AWS Access Key ID [None]: AKIAxxxxxxxxxxEFET
AWS Secret Access Key [None]: jdsVj9xxxxxxxxxxxxxxxxxBykuQsx7ibZ
Default region name [None]: ap-northeast-2
Default output format [None]: json
위 설정이 완료되면, CLI 명령어를 통해 VPC, 서브넷, 라우팅 테이블 등 다양한 AWS 리소스를 생성 및 제어할 수 있습니다.
VPC 생성
VPC를 생성하면서 태그 이름을 TestVPC
로 지정합니다.
aws ec2 create-vpc --cidr-block 10.0.0.0/16 --tag-specifications "ResourceType=vpc,Tags=[{Key=Name,Value=TestVPC}]"
생성된 VPC ID를 확인합니다.
aws ec2 describe-vpcs --filters "Name=tag:Name,Values=TestVPC"
VPC ID를 환경변수로 저장합니다.
set VPC_ID=vpc-046bfe5b73bf8e0c7
인터넷 게이트웨이 생성 및 VPC에 연결
IGW를 생성하고 TestIGW
태그를 지정합니다.
aws ec2 create-internet-gateway --tag-specifications "ResourceType=internet-gateway,Tags=[{Key=Name,Value=TestIGW}]"
IGW ID를 확인합니다.
aws ec2 describe-internet-gateways --filters "Name=tag:Name,Values=TestIGW"
IGW ID를 환경변수로 저장합니다.
set IGW_ID=igw-0e7fa9c71134320a2
생성한 IGW를 VPC에 연결합니다.
aws ec2 attach-internet-gateway --internet-gateway-id %IGW_ID% --vpc-id %VPC_ID%
퍼블릭 서브넷 생성
AZ a에 TestPublicSubnetA
서브넷을 생성합니다.
aws ec2 create-subnet --vpc-id %VPC_ID% --cidr-block 10.0.1.0/24 --availability-zone ap-northeast-2a --tag-specifications "ResourceType=subnet,Tags=[{Key=Name,Value=TestPublicSubnetA}]"
AZ c에 TestPublicSubnetC
서브넷을 생성합니다.
aws ec2 create-subnet --vpc-id %VPC_ID% --cidr-block 10.0.2.0/24 --availability-zone ap-northeast-2c --tag-specifications "ResourceType=subnet,Tags=[{Key=Name,Value=TestPublicSubnetC}]"
각 서브넷 ID를 확인 후 환경변수로 저장합니다.
set SUBNET_ID1=subnet-0c32c95aa2d87a83f
set SUBNET_ID2=subnet-033544b3f595b3fbf
퍼블릭 라우팅 테이블 생성 및 경로 추가
TestPublicRTB
이름으로 라우팅 테이블을 생성합니다.
aws ec2 create-route-table --vpc-id %VPC_ID% --tag-specifications "ResourceType=route-table,Tags=[{Key=Name,Value=TestPublicRTB}]"
라우팅 테이블 ID 확인 후 환경변수로 저장합니다.
set RTB_ID=rtb-068dc658181483593
IGW를 통해 외부로 나가는 경로(0.0.0.0/0)를 추가합니다.
aws ec2 create-route --route-table-id %RTB_ID% --destination-cidr-block 0.0.0.0/0 --gateway-id %IGW_ID%
퍼블릭 서브넷에 라우팅 테이블 연결
두 개의 퍼블릭 서브넷을 생성한 라우팅 테이블에 연결합니다.
aws ec2 associate-route-table --subnet-id %SUBNET_ID1% --route-table-id %RTB_ID%
aws ec2 associate-route-table --subnet-id %SUBNET_ID2% --route-table-id %RTB_ID%
퍼블릭 IP 자동 할당 설정
퍼블릭 서브넷의 인스턴스에 퍼블릭 IP가 자동으로 할당되도록 설정합니다.
aws ec2 modify-subnet-attribute --subnet-id %SUBNET_ID1% --map-public-ip-on-launch
aws ec2 modify-subnet-attribute --subnet-id %SUBNET_ID2% --map-public-ip-on-launch
VPC 리소스 설정 흐름 (기본 퍼블릭 네트워크 구성 기준)
퍼블릭 서브넷을 포함한 기본적인 네트워크 환경을 AWS CLI로 구성할 때의 흐름은 다음과 같습니다.
- VPC 생성
- IGW(인터넷 게이트웨이) 생성
- IGW를 VPC에 연결 ←
attach-internet-gateway
- 서브넷 생성 (퍼블릭/프라이빗 구분 가능)
- 라우팅 테이블 생성
- 라우팅 테이블에 IGW 경로 추가 ←
create-route
- 라우팅 테이블을 퍼블릭 서브넷에 연결 ←
associate-route-table
- (선택) 퍼블릭 서브넷에
MapPublicIpOnLaunch = true
설정
'AWS' 카테고리의 다른 글
AWS - Lambda 기반 서버리스 아키텍처 구성 흐름 (0) | 2025.06.09 |
---|---|
AWS 3-Tier 웹 애플리케이션 배포(S3 + EC2 + RDS) (1) | 2025.06.06 |
AWS - 인프라 자동화 CloudFormation을 이용한 네트워크 리소스 생성 및 연결 (1) | 2025.06.04 |
AWS - 환경 구성 실습 - React + FastAPI 프로젝트 배포 (0) | 2025.06.03 |
AWS - 웹서비스 환경 구성#3 (0) | 2025.06.02 |
AWS - 웹서비스 환경 구성#2 (0) | 2025.06.02 |