웹사이트 검색

aws-cli를 사용하여 AWS VPC 관리


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. aws cli를 확인하고 로컬 컴퓨터에서 aws 액세스 및 비밀 키를 내보냅니다.\n
  4. aws-cli를 사용하여 VPC 관리\n
  5. 결론

aws-cli를 사용하여 터미널에서 서브넷, 라우팅 테이블, 인터넷 게이트웨이와 같은 VPC 및 기타 리소스를 관리하는 것은 VPC에 능숙하지 않은 경우 다소 혼란스러울 수 있습니다. 이 기사에서는 2개의 서브넷, 라우팅 테이블 및 인터넷 게이트웨이가 있는 VPC를 생성하고 이 서브넷은 퍼블릭 서브넷이 됩니다. VPC가 생성되면 이 VPC에서 생성된 EC2 인스턴스에 연결을 시도합니다. 이 기사의 목적은 터미널에서 VPC를 관리하는 데 사용되는 명령을 소개하는 것입니다.

먼저 VPC를 잘 이해하는 것이 좋습니다. 이 기사의 초점은 VPC를 설명하는 것이 아닙니다. VPC에서 수행할 수 있는 작업을 알아보려면 여기에서 공식 문서를 참조하세요.

전제 조건

  1. AWS 계정(계정이 없는 경우 생성).
  2. VPC에 대한 기본 이해(여기에서 AWS 콘솔에서 VPC를 생성하는 방법을 배웁니다.)\n
  3. IAM 사용자를 생성하는 AWS IAM 사용자).\n
  4. 로컬 시스템에 설치된 AWS CLI.
  5. EC2 인스턴스에 대한 기본적인 이해(Ubuntu EC2 인스턴스 생성 방법을 알아보려면 여기를 클릭)\n

우리는 무엇을 할 것인가?

  1. aws cli를 확인하고 로컬 시스템에서 AWS 액세스 및 비밀 키를 내보냅니다.\n
  2. aws cli를 사용하여 VPC를 관리합니다.\n

aws cli를 확인하고 로컬 컴퓨터에서 aws 액세스 및 비밀 키를 내보냅니다.

머신에 aws-cli 유틸리티가 설치되어 있지 않은 경우 여기에서 공식 문서를 참조하여 로컬 머신에 설치한 후 다음 명령어를 사용하여 버전을 확인하세요.

aws --version

다음 명령을 실행하면 터미널에서 AWS 계정에 대한 액세스를 구성하지 않았기 때문에 오류가 발생합니다.

aws sts get-caller-identity

다음 명령을 사용하여 터미널에서 AWS IAM 사용자 액세스 및 비밀 키를 내보냅니다.

export AWS_ACCESS_KEY_ID=<aws-user-access-key>
export AWS_SECRET_ACCESS_KEY=<aws-user-secret-key>

이번에는 다음 명령을 실행하여 신원을 확인할 수 있습니다.

aws sts get-caller-identity

aws-cli를 사용하여 VPC 관리

다음 명령을 사용하여 VPC를 생성합니다. 기본 VPC는 생성되지 않습니다. 10.0.0.0/16은 생성될 VPC의 CIDR입니다. 선택 및 요구 사항에 따라 유효한 CIDR을 지정할 수 있습니다.

aws ec2 create-vpc --cidr-block 10.0.0.0/16

위의 스크린샷에서 VpcId를 확인하십시오. 출력에 다른 VpcId가 표시됩니다. VpcId를 기록해 둡니다. 다음 단계에서 필요합니다.

현재 리전의 모든 VPC를 설명하려면 다음 명령어를 실행하세요.

aws ec2 describe-vpcs

VpcId를 지정하면 특정 VPC를 설명할 수 있습니다.

aws ec2 describe-vpcs --vpc-ids vpc-03c4278f3b75efd77

이제 생성한 VPC에 2개의 서브넷을 생성해 보겠습니다. 여기에서 두 서브넷 모두 VPC에 고유한 CIDR 블록이 있어야 합니다.

aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.1.0/24
aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.2.0/24

서브넷을 공용으로 만들려면 인터넷 게이트웨이를 만들어야 합니다.

aws ec2 create-internet-gateway

앞에서 생성한 VPC에 인터넷 게이트웨이를 연결합니다.

aws ec2 attach-internet-gateway --internet-gateway-id igw-04f1e4f13f92599c3 --vpc-id vpc-03c4278f3b75efd77

이제 라우팅 테이블을 생성해 보겠습니다.

aws ec2 create-route-table --vpc-id vpc-03c4278f3b75efd77

경로 테이블을 두 서브넷과 연결

aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0748ef7a26aefc7cc
aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0375b656eb64962e8

경로 테이블에서 인터넷 게이트웨이로의 경로를 생성하면 경로 테이블과 연결된 서브넷이 공개됩니다.

aws ec2 create-route --route-table-id rtb-0878d652f460dbf50 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-04f1e4f13f92599c3

이제 서브넷 2개, 경로 테이블 1개, 경로 테이블에서 인터넷 게이트웨이까지의 경로가 있는 VPC가 있습니다.

이 VPC와 서브넷 중 하나에 EC2 인스턴스를 만들면 인터넷에서 인스턴스에 공개적으로 연결할 수 있습니다. Ubuntu EC2 인스턴스 생성 방법은 전제 조건에 언급된 문서를 참조하십시오. 인스턴스를 만드는 동안 방금 만든 VPC를 지정합니다.

aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep VpcId
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep SubnetId
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep PublicIpAddress
ssh -i ~/Downloads/aws-cli.pem 

결론

이 문서에서는 서브넷 2개, 경로 테이블 1개, 인터넷 게이트웨이, 경로 테이블에서 인터넷 게이트웨이로의 경로가 있는 VPC를 생성하는 단계를 살펴보았습니다. 또한 두 서브넷이 모두 퍼블릭 서브넷이므로 서브넷 중 하나에서 생성된 인스턴스가 인스턴스를 공개적으로 사용할 수 있게 만드는 것을 확인했습니다.