VPC 생성 - Amazon Virtual Private Cloud

VPC 생성

다음 절차에 따라 Virtual Private Cloud(VPC)를 생성합니다. VPC에서 AWS 리소스를 생성하려면 먼저 VPC에 서브넷, 라우팅 테이블, 게이트웨이와 같은 추가 리소스가 있어야 합니다.

VPC 수정에 대한 자세한 내용은 VPC에서 CIDR 블록 추가 또는 제거 섹션을 참조하세요.

VPC 및 기타 VPC 리소스 생성

다음 절차에 따라 VPC 및 애플리케이션을 실행하는 데 필요한 추가 VPC 리소스(예: 서브넷, 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이)를 생성합니다. VPC 구성에 대한 예시는 VPC 예시 섹션을 참조하세요.

콘솔을 사용하여 VPC, 서브넷 및 기타 VPC 리소스를 생성하려면
  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. VPC 대시보드에서 VPC 생성을 선택합니다.

  3. 생성할 리소스에서 VPC 등을 선택합니다.

  4. 이름 태그 자동 생성을 선택한 상태로 유지하여 VPC 리소스에 이름 태그를 생성하거나 선택을 취소하여 VPC 리소스에 고유한 이름 태그를 제공합니다.

  5. IPv4 CIDR 블록에 VPC의 IPv4 주소 범위를 입력합니다. VPC는 IPv4 주소 범위를 가져야 합니다.

  6. (선택 사항) IPv6 트래픽을 지원하려면 IPv6 CIDR 블록, Amazon에서 제공한 IPv6 CIDR 블록을 선택합니다.

  7. 테넌시 옵션을 선택합니다. 이 옵션은 VPC로 시작하는 EC2 인스턴스가 다른 AWS 계정과 공유되는 하드웨어에서 실행되는지 아니면 사용자 전용 하드웨어에서 실행되는지를 정의합니다. VPC의 테넌시를 Default로 선택하면 이 VPC로 시작된 EC2 인스턴스에서는 인스턴스를 시작할 때 지정된 테넌시 속성을 사용합니다. 자세한 내용은 Amazon EC2 사용 설명서의 정의된 파라미터를 사용하여 인스턴스 시작을 참조하세요. VPC의 테넌시를 Dedicated로 선택하면 인스턴스는 항상 전용 하드웨어에서 전용 인스턴스로 실행됩니다. AWS Outposts를 사용하는 경우 Outpost에 프라이빗 연결이 필요합니다. Default 테넌시를 사용해야 합니다.

  8. 가용 영역(AZ) 수에서 프로덕션 환경의 경우 2개 이상의 가용 영역에 서브넷을 프로비저닝하는 것이 좋습니다. 서브넷의 AZ를 선택하려면 AZ 사용자 지정을 확장합니다. 그렇지 않으면 AWS가 선택하도록 합니다.

  9. 서브넷을 구성하려면 퍼블릭 서브넷 수프라이빗 서브넷 수의 값을 선택합니다. 서브넷의 IP 주소 범위를 선택하려면 서브넷 CIDR 블록 사용자 지정을 확장합니다. 그렇지 않으면 AWS가 선택하도록 합니다.

  10. (선택 사항) 프라이빗 서브넷의 리소스가 IPv4를 통해 퍼블릭 인터넷에 액세스해야 하는 경우 NAT 게이트웨이에서 NAT 게이트웨이를 생성할 AZ 수를 선택합니다. 프로덕션 환경에서는 퍼블릭 인터넷에 액세스해야 하는 리소스가 있는 각 AZ에 NAT 게이트웨이를 배포하는 것이 좋습니다. NAT 게이트웨이와 관련된 비용이 있습니다. 자세한 내용은 NAT 게이트웨이 요금 단원을 참조하십시오.

  11. (선택 사항) 프라이빗 서브넷의 리소스가 IPv6을 통해 퍼블릭 인터넷에 액세스해야 하는 경우 송신 전용 인터넷 게이트웨이에서 를 선택합니다.

  12. (선택 사항) VPC에서 직접 Amazon S3에 액세스해야 하는 경우 VPC 엔드포인트, S3 게이트웨이를 선택합니다. 이는 Amazon S3 게이트웨이 VPC 엔드포인트를 생성합니다. 자세한 내용은 AWS PrivateLink 사용 설명서게이트웨이 VPC 엔드포인트를 참조하세요.

  13. (선택 사항) DNS 옵션의 경우 도메인 이름 확인을 위한 두 가지 옵션이 기본적으로 모두 활성화됩니다. 기본값이 요구 사항을 충족하지 않는 경우 해당 옵션을 비활성화할 수 있습니다.

  14. (선택 사항) VPC에 태그를 추가하려면 추가 태그를 확장하고 새 태그 추가를 선택하여 태그 키와 태그 값을 입력합니다.

  15. 미리 보기 창에서 구성한 VPC 리소스 간의 관계를 시각화할 수 있습니다. 실선은 리소스 간의 관계를 나타냅니다. 점선은 NAT 게이트웨이, 인터넷 게이트웨이 및 게이트웨이 엔드포인트에 대한 네트워크 트래픽을 나타냅니다. VPC를 생성한 후에는 리소스 맵 탭을 사용하여 언제든지 VPC의 리소스를 이 형식으로 시각화할 수 있습니다. 자세한 내용은 VPC의 리소스 시각화 단원을 참조하십시오.

  16. VPC 구성을 마치면 VPC 생성을 선택합니다.

VPC만 생성

다음 절차에 따라 Amazon VPC 콘솔을 사용하여 추가 VPC 리소스 없이 VPC를 생성합니다.

콘솔을 사용하여 추가 VPC 리소스 없이 VPC를 생성하려면
  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. VPC 대시보드에서 VPC 생성을 선택합니다.

  3. 생성할 리소스에서 VPC 전용을 선택합니다.

  4. (선택 사항) 이름 태그에 VPC의 이름을 입력합니다. 이렇게 하면 Name 키와 지정한 값으로 태그가 생성됩니다.

  5. IPv4 CIDR 블록의 경우 다음 중 하나를 수행합니다.

    • IPv4 CIDR 수동 입력 을 선택하고 VPC에 대한 IPv4 주소 범위를 입력합니다.

    • IPAM에서 할당된 IPv4 CIDR 블록을 선택하고, Amazon VPC IP 주소 관리자(IPAM) IPv4 주소 풀과 넷마스크를 선택합니다. CIDR 블록의 크기는 IPAM 풀의 할당 규칙에 의해 제한됩니다. IPAM는 AWS 워크로드의 IP 주소를 보다 쉽게 계획, 추적 및 모니터링할 수 있게 해주는 VPC 기능입니다. 자세한 내용은 Amazon VPC IPAM 사용 설명서를 참조하세요.

      IPAM을 사용하여 IP 주소를 관리하는 경우 이 옵션을 선택하는 것이 좋습니다. 그렇지 않으면 VPC에 지정한 CIDR 블록이 IPAM CIDR 할당과 겹칠 수 있습니다.

  6. (선택 사항) 듀얼 스택 VPC를 생성하려면 VPC에 IPv6 주소 범위를 지정합니다. IPv6 CIDR 블록의 경우 다음 중 하나를 수행합니다.

    • Amazon VPC IP 주소 관리자를 사용 중이고 IPAM 풀에서 IPv6 CIDR을 프로비저닝하려는 경우 IPAM 할당 IPv6 CIDR 블록을 선택합니다. CIDR 블록에서 VPC에 IP 주소 범위를 프로비저닝하는 데는 두 가지 옵션이 있습니다.

      • 넷마스크 길이: CIDR의 넷마스크 길이를 선택하려면 이 옵션을 선택합니다. 다음 중 하나를 수행합니다.

        • IPAM 풀에 대해 선택된 기본 넷마스크 길이가 있는 경우 IPAM 넷마스크 길이 기본값을 선택하여 IPAM 관리자가 IPAM 풀에 설정한 기본 넷마스크 길이를 사용할 수 있습니다. 선택적 기본 넷마스크 길이 할당 규칙에 대한 자세한 내용은 Amazon VPC IPAM 사용 설명서리전 IPv6 풀 생성을 참조하세요.

        • IPAM 풀에 대해 선택된 기본 넷마스크 길이가 없는 경우 IPAM 풀 CIDR의 넷마스크 길이보다 더 구체적인 넷마스크 길이를 선택합니다. 예를 들어 IPAM 풀 CIDR이 /50인 경우 VPC의 넷마스크 길이를 /52에서 /60 사이로 선택할 수 있습니다. 가능한 넷마스크 길이는/44~/60(/4씩 증가)입니다.

      • CIDR 선택: IPv6 주소를 수동으로 입력하려면 이 옵션을 선택합니다. IPAM 풀 CIDR 넷마스크 길이보다 더 구체적인 넷마스크 길이만 선택할 수 있습니다. 예를 들어 IPAM 풀 CIDR이 /50인 경우 VPC의 넷마스크 길이를 /52에서 /60 사이로 선택할 수 있습니다. 가능한 IPv6 넷마스크 길이는/44~/60(/4씩 증가)입니다.

    • Amazon의 IPv6 주소 풀에서 IPv6 CIDR 블록을 요청하려면 Amazon 제공 IPv6 CIDR 블록을 선택합니다. 네트워크 경계 그룹(Network Border Group)에서 AWS가 IP 주소를 알리는 그룹을 선택합니다. Amazon은 /56의 고정 IPv6 CIDR 블록 크기를 제공합니다.

    • 이미 AWS에 가져온 IPv6 CIDR을 프로비저닝하려면 내가 소유한 IPv6 CIDR 을 선택합니다. 고유 IP 주소 범위를 AWS로 가져오는 방법에 대한 자세한 내용은 Amazon EC2 사용 설명서의 고유 IP 주소 가져오기(BYOIP)를 참조하세요. CIDR 블록에 대한 다음과 같은 옵션을 사용하여 VPC의 IP 주소 범위를 프로비저닝할 수 있습니다.

      • 기본 설정 없음: /56의 넷마스크 길이를 사용하려면 이 옵션을 선택합니다.

      • CIDR 선택: IPv6 주소를 수동으로 입력하고 BYOIP CIDR 크기보다 더 구체적인 넷마스크 길이를 선택하려면 이 옵션을 선택합니다. 예를 들어 BYOIP 풀 CIDR이 /50인 경우 VPC의 넷마스크 길이를 /52에서 /60 사이로 선택할 수 있습니다. 가능한 IPv6 넷마스크 길이는/44~/60(/4씩 증가)입니다.

  7. (선택 사항) 테넌시 옵션을 선택합니다. 이 옵션은 VPC로 시작하는 EC2 인스턴스가 다른 AWS 계정과 공유되는 하드웨어에서 실행되는지 아니면 사용자 전용 하드웨어에서 실행되는지를 정의합니다. VPC의 테넌시를 Default로 선택하면 이 VPC로 시작된 EC2 인스턴스는 인스턴스를 시작할 때 지정된 테넌시 속성을 사용합니다. 자세한 내용은 Amazon EC2 사용 설명서의 정의된 파라미터를 사용하여 인스턴스 시작을 참조하세요. VPC의 테넌시를 Dedicated로 선택하면 인스턴스는 항상 전용 하드웨어에서 전용 인스턴스로 실행됩니다. AWS Outposts를 사용하는 경우 Outpost에 프라이빗 연결이 필요합니다. Default 테넌시를 사용해야 합니다.

  8. (선택 사항) VPC에 태그를 추가하려면 새 태그 추가를 선택하고 태그 키와 태그 값을 입력합니다.

  9. VPC 생성을 선택합니다.

  10. VPC를 생성한 후 서브넷을 추가할 수 있습니다. 자세한 내용은 서브넷 생성 단원을 참조하십시오.

AWS CLI를 사용하여 VPC 생성

다음 절차에는 VPC를 만들기 위한 예제 AWS CLI 명령과 애플리케이션을 실행하는 데 필요한 추가 VPC 리소스가 포함되어 있습니다. 이 절차의 모든 명령을 실행하면 VPC, 퍼블릭 서브넷, 프라이빗 서브넷, 각 서브넷의 라우팅 테이블, 인터넷 게이트웨이, 송신 전용 인터넷 게이트웨이 및 퍼블릭 NAT 게이트웨이가 생성됩니다. 이러한 리소스가 모두 필요하지 않은 경우 필요한 예제 명령만 사용할 수 있습니다.

사전 조건

시작하기 전에 AWS CLI을(를) 설치하고 구성합니다. AWS CLI를 구성하면 AWS 보안 인증 정보를 입력하라는 메시지가 표시됩니다. 이 절차의 예제에서는 기본 리전도 구성했다고 가정합니다. 그렇지 않을 경우 각 명령에 --region 옵션을 적용합니다. 자세한 내용은 AWS CLI 설치 또는 업데이트AWS CLI 구성을 참조하세요.

태그 지정

create-tags 명령을 사용하여 리소스를 생성한 후 리소스에 태그를 추가할 수 있습니다. 또는 다음과 같이 리소스 생성 명령에 --tag-specification 옵션을 추가할 수 있습니다.

--tag-specifications ResourceType=vpc,Tags=[{Key=Name,Value=my-project}]
AWS CLI를 사용하여 VPC 및 VPC 리소스 생성
  1. 다음 create-vpc 명령을 사용하여 지정된 IPv4 CIDR 블록으로 VPC를 생성합니다.

    aws ec2 create-vpc --cidr-block 10.0.0.0/24 --query Vpc.VpcId --output text

    또는 듀얼 스택 VPC를 생성하려면 다음 예제와 같이 Amazon에서 제공하는 IPv6 CIDR 블록을 추가하는--amazon-provided-ipv6-cidr-block 옵션을 추가합니다.

    aws ec2 create-vpc --cidr-block 10.0.0.0/24 --amazon-provided-ipv6-cidr-block --query Vpc.VpcId --output text

    해당 명령은 새 VPC의 ID를 반환합니다. 다음은 예입니다.

    vpc-1a2b3c4d5e6f1a2b3
  2. [듀얼 스택 VPC] 다음 describe-vpcs 명령을 사용하여 VPC에 연결된 IPv6 CIDR 블록을 가져옵니다.

    aws ec2 describe-vpcs --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query Vpcs[].Ipv6CidrBlockAssociationSet[].Ipv6CidrBlock --output text

    출력의 예시는 다음과 같습니다.

    2600:1f13:cfe:3600::/56
  3. 사용 사례에 따라 하나 이상의 서브넷을 생성합니다. 프로덕션 환경에서는 2개 이상의 가용 영역에서 리소스를 시작하는 것이 좋습니다. 다음 명령 중 하나를 사용하여 각 서브넷을 생성합니다.

    • IPv4 전용 서브넷 - 특정 IPv4 CIDR 블록으로 서브넷을 생성하려면 다음 create-subnet 명령을 사용합니다.

      aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --cidr-block 10.0.1.0/20 --availability-zone us-east-2a --query Subnet.SubnetId --output text
    • 듀얼 스택 서브넷 - 듀얼 스택 VPC를 생성한 경우 다음 명령과 같이 --ipv6-cidr-block 옵션을 사용하여 듀얼 스택 서브넷을 생성할 수 있습니다.

      aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --cidr-block 10.0.1.0/20 --ipv6-cidr-block 2600:1f13:cfe:3600::/64 --availability-zone us-east-2a --query Subnet.SubnetId --output text
    • IPv6 전용 서브넷 - 듀얼 스택 VPC를 생성한 경우 다음 명령과 같이 --ipv6-native 옵션을 사용하여 IPv6 전용 서브넷을 생성할 수 있습니다.

      aws ec2 create-subnet --vpc-id vpc-1a2b3c4d5e6f1a2b3 --ipv6-native --ipv6-cidr-block 2600:1f13:cfe:3600::/64 --availability-zone us-east-2a --query Subnet.SubnetId --output text

    해당 명령은 새 서브넷의 ID를 반환합니다. 다음은 예입니다.

    subnet-1a2b3c4d5e6f1a2b3
  4. 웹 서버용 또는 NAT 게이트웨이용 퍼블릭 서브넷이 필요한 경우 다음을 수행합니다.

    1. 다음 create-internet-gateway 명령을 사용하여 인터넷 게이트웨이를 생성합니다. 이 명령은 새 인터넷 게이트웨이의 ID를 반환합니다.

      aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text
    2. 다음 attach-internet-gateway 명령을 사용하여 VPC에 인터넷 게이트웨이를 연결합니다. 이전 단계에서 반환한 인터넷 게이트웨이 ID를 사용합니다.

      aws ec2 attach-internet-gateway --vpc-id vpc-1a2b3c4d5e6f1a2b3 --internet-gateway-id igw-id
    3. 다음 create-route-table 명령을 사용하여 퍼블릭 서브넷에 대한 사용자 지정 라우팅 테이블을 생성합니다. 이 명령은 새 라우팅 테이블의 ID를 반환합니다.

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    4. 다음 create-route 명령을 사용하여 모든 IPv4 트래픽을 인터넷 게이트웨이로 보내는 라우팅 테이블의 경로를 생성합니다. 퍼블릭 서브넷의 라우팅 테이블 ID를 사용합니다.

      aws ec2 create-route --route-table-id rtb-id-public --destination-cidr-block 0.0.0.0/0 --gateway-id igw-id
    5. 다음 associate-route-table 명령을 사용하여 라우팅 테이블을 퍼블릭 서브넷과 연결합니다. 퍼블릭 서브넷의 라우팅 테이블 ID와 퍼블릭 서브넷의 ID를 사용합니다.

      aws ec2 associate-route-table --route-table-id rtb-id-public --subnet-id subnet-id-public-subnet
  5. [IPv6] 프라이빗 서브넷의 인스턴스가 IPv6를 통해 인터넷에 액세스할 수 있도록 송신 전용 인터넷 게이트웨이를 추가할 수 있지만(예: 소프트웨어 업데이트 받기) 인터넷의 호스트는 인스턴스에 액세스할 수 없습니다.

    1. 다음 create-egress-only-internet-gateway 명령을 사용하여 송신 전용 인터넷 게이트웨이를 생성합니다. 이 명령은 새 인터넷 게이트웨이의 ID를 반환합니다.

      aws ec2 create-egress-only-internet-gateway --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query EgressOnlyInternetGateway.EgressOnlyInternetGatewayId --output text
    2. 다음 create-route-table 명령을 사용하여 프라이빗 서브넷에 대한 사용자 지정 라우팅 테이블을 생성합니다. 이 명령은 새 라우팅 테이블의 ID를 반환합니다.

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    3. 다음 create-route 명령을 사용하여 모든 IPv6 트래픽을 송신 전용 인터넷 게이트웨이로 보내는 프라이빗 서브넷에 대한 라우팅 테이블의 경로를 생성합니다. 이전 단계에서 반환한 라우팅 테이블의 ID를 사용합니다.

      aws ec2 create-route --route-table-id rtb-id-private --destination-cidr-block ::/0 --egress-only-internet-gateway eigw-id
    4. 다음 associate-route-table 명령을 사용하여 라우팅 테이블을 프라이빗 서브넷과 연결합니다.

      aws ec2 associate-route-table --route-table-id rtb-id-private --subnet-id subnet-id-private-subnet
  6. 프라이빗 서브넷의 리소스에 대한 NAT 게이트웨이가 필요한 경우 다음을 수행합니다.

    1. 다음 allocate-address 명령을 사용하여 NAT 게이트웨이의 탄력적 IP 주소를 생성합니다.

      aws ec2 allocate-address --domain vpc --query AllocationId --output text
    2. 다음create-nat-gateway 명령을 사용하여 퍼블릭 서브넷의 NAT 게이트웨이를 생성합니다. 이전 단계에서 반환되는 할당 ID를 사용합니다.

      aws ec2 create-nat-gateway --subnet-id subnet-id-public-subnet --allocation-id eipalloc-id
    3. (선택 사항) 5단계에서 프라이빗 서브넷에 대한 라우팅 테이블을 이미 생성한 경우 이 단계를 건너뜁니다. 그렇지 않으면 다음 create-route-table 명령을 사용하여 프라이빗 서브넷에 대한 라우팅 테이블을 생성합니다. 이 명령은 새 라우팅 테이블의 ID를 반환합니다.

      aws ec2 create-route-table --vpc-id vpc-1a2b3c4d5e6f1a2b3 --query RouteTable.RouteTableId --output text
    4. 다음 create-route 명령을 사용하여 모든 IPv4 트래픽을 NAT 게이트웨이로 보내는 프라이빗 서브넷에 대한 라우팅 테이블의 경로를 생성합니다. 이 단계 또는 5단계에서 생성한 프라이빗 서브넷의 라우팅 테이블 ID를 사용합니다.

      aws ec2 create-route --route-table-id rtb-id-private --destination-cidr-block 0.0.0.0/0 --gateway-id nat-id
    5. (선택 사항) 5단계에서 프라이빗 서브넷과 라우팅 테이블을 이미 연결한 경우 이 단계를 건너뜁니다. 그렇지 않으면 다음 associate-route-table 명령을 사용하여 라우팅 테이블을 프라이빗 서브넷과 연결합니다. 이 단계 또는 5단계에서 생성한 프라이빗 서브넷의 라우팅 테이블 ID를 사용합니다.

      aws ec2 associate-route-table --route-table-id rtb-id-private --subnet-id subnet-id-private-subnet