Skip to content

Virtual Private Cloud


Virtual Private Cloud(VPC)는 사용자의 AWS 계정 전용 가상 네트워크이다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있다. Amazon EC2 인스턴스 같은 AWS 리소스를 VPC에서 실행할 수 있다.

주제


1. VPC 기초

VPC를 생성할 때 VPC의 IPv4 주소 범위를 CIDR(Classless Inter-Domain Routing) 블록 형태로 지정해야 한다. 예: 10.0.0.0/16. 이것은 VPC의 기본 CIDR 블록이다. 자세한 내용은 IP 주소 지정 섹션을 참조한다.

VPC는 리전의 모든 가용 영역에 적용된다. 다음 다이어그램에서는 새 VPC를 보여준다. VPC를 생성한 후 각 가용 영역에 하나 이상의 서브넷을 추가할 수 있다. 자세한 내용은 VPC의 서브넷 섹션을 참조한다.

001


2. VPC CIDR 블록

Amazon VPC는 IPv4 및 IPv6 주소 지정을 지원한다. VPC에는 이와 연결된 IPv4 CIDR 블록이 있어야 한다. VPC에 여러 개의 IPv4 CIDR 블록과 여러 개의 IPv6 CIDR 블록을 선택적으로 연결할 수 있다. IP 주소에 대한 자세한 내용은 IP 주소 지정 단원을 참조한다.

1) IPv4 VPC CIDR 블록

VPC를 만들 때 VPC의 IPv4 CIDR 블록을 지정해야 한다. 허용된 블록 크기는 /16 넷마스크 (IP 주소 65,536개)~/28 넷마스크(IP 주소 16개)이다. VPC 생성을 마쳤으면 추가 IPv4 CIDR 블록을 VPC에 연결할 수 있다. 자세한 내용은 추가 IPv4 CIDR 블록을 VPC와 연결 섹션을 참조한다.

VPC를 생성하는 경우, 다음과 같이 RFC 1918 규격에 따라 프라이빗 IPv4 주소 범위에 속하는 CIDR 블록을 지정하는 것이 좋다.

RF 1918 범위 CIDR 블록의 예
10.0.0.0 - 10.255.255.255 (10/8 접두사) 10.0.0.0/16
172.16.0.0 - 172.31.255.255 (172.16/12 접두사) 172.31.0.0/16
192.168.0.0 - 192.168.255.255 (192.168/16 접두사) 192.168.0.0/20

RFC 1918에 지정된 프라이빗 IPv4 주소 범위에 속하지 않는 공개적으로 라우팅 가능한 CIDR 블록을 사용하여 VPC를 생성할 수 있다. 하지만 이 설명서에서는 프라이빗 IP 주소는 VPC의 CIDR 범위 내에 있는 프라이빗 IPv4 주소를 말한다.

AWS 서비스와 함께 사용할 VPC를 생성하려면 해당 서비스 설명서를 참조하여 해당 구성에 대한 특정 요구 사항이 있는지 확인한다.

명령줄 도구 또는 Amazon EC2 API를 사용하여 VPC를 생성하면 CIDR 블록이 표준 형식으로 자동 수정된다. 예를 들어 CIDR 블록에 100.68.0.18/18을 지정하면 100.68.0.0/18의 CIDR 블록이 생성된다.

2) VPC에 IPv4 CIDR 블록 관리

보조 IPv4 CIDR 블록을 VPC와 연결할 수 있다. CIDR 블록을 VPC에 연결하면 VPC 라우팅 테이블에 경로가 자동으로 추가되면서 VPC 내에서 라우팅이 가능하게 된다(대상 주소는 CIDR 블록이고 대상은 local).

다음 예에서 VPC에는 기본 및 보조 CIDR 블록이 모두 있다. 서브넷 A와 서브넷 B의 CIDR 블록은 기본 VPC CIDR 블록에서 가져온다. 서브넷 C의 CIDR 블록은 보조 VPC CIDR 블록에서 가져온다.

002

다음 라우팅 테이블은 VPC의 로컬 경로를 보여준다.

대상 주소 대상
10.0.0.0/16 로컬
10.2.0.0/16 로컬

VPC에 CIDR 블록을 추가할 경우 다음 규칙이 적용된다.

  • 허용된 블록 크기는 /28 넷마스크~/16 넷마스크이다.

  • CIDR 블록은 VPC에 연결된 기존 CIDR 블록과 겹치지 않는다.

  • 사용 가능한 IPv4 주소 범위에 제한이 있다. 자세한 내용은 IPv4 CIDR 블록 연결 제한 단원을 참조한다.

  • 기존 CIDR 블록의 크기를 늘리거나 줄일 수 없다.

  • VPC에 연결할 수 있는 CIDR 블록의 수와 라우팅 테이블에 추가할 수 있는 경로의 수에는 할당량이 있다. 할당량을 초과하는 경우에는 CIDR 블록을 연결할 수 없다. 자세한 내용은 Amazon VPC 할당량 단원을 참조한다.

  • CIDR 블록은 모든 VPC 라우팅 테이블에서 경로의 대상 CIDR 범위보다 작아야 한다. 예를 들어, 기본 CIDR 블록이 10.2.0.0/16인 VPC에서 가상 프라이빗 게이트웨이에 대한 대상이 10.0.0.0/24인 라우팅 테이블에 기존 라우팅이 있다. 10.0.0.0/16 범위의 보조 CIDR 블록을 연결하려고 한다. 기존 경로 때문에 10.0.0.0/24 이상의 CIDR 블록을 연결할 수 없다. 그러나 10.0.0.0/25 이하의 보조 CIDR 블록은 연결할 수 있다.

  • ClassicLink에서 VPC를 활성화하면 10.0.0.0/1610.1.0.0/16 범위의 CIDR 블록은 연결할 수 있지만, 10.0.0.0/8 범위의 기타 CIDR 블록은 연결할 수 없다.

  • VPC 피어링 연결에 포함된 VPC에 IPv4 CIDR 블록을 추가할 때 다음 규칙이 적용된다.

    • VPC 피어링 연결이 active인 경우, 피어 VPC의 CIDR 블록과 겹치지 않으면 VPC에 CIDR 블록을 추가할 수 있다.

    • VPC 피어링 연결이 pending-acceptance인 경우, 수락자 VPC의 CIDR 블록과 겹치는지 여부에 관계 없이 요청자 VPC의 소유자가 VPC에 CIDR 블록을 추가할 수 없다. 수락자 VPC의 소유자가 피어링 연결을 수락하거나, 요청자 VPC의 소유자가 VPC 피어링 연결 요청을 삭제하고 CIDR 블록을 추가한 다음 VPC 피어링 연결을 새로 요청해야 한다.

    • VPC 피어링 연결이 pending-acceptance인 경우, 수락자 VPC이 소유자는 VPC에 CIDR 블록을 추가할 수 있다. 보조 CIDR 블록이 요청자 VPC의 CIDR 블록과 겹치는 경우에는 VPC 피어링 연결 요청이 실패하고 요청을 수락할 수 없게 된다.

  • AWS Direct Connect를 사용하여 Direct Connect 게이트웨이를 통해 여러 VPC에 연결하는 경우 Direct Connect 게이트웨이에 연결된 VPC에는 중첩되는 CIDR 블록이 있으면 안 된다. Direct Connect 게이트웨이와 연결된 VPC 중 하나에 CIDR 블록을 추가한 경우 새로운 CIDR 블록이 다른 연결된 VPC에 있는 기존 CIDR 블록과 중첩되어서는 안 된다. 자세한 내용은 AWS Direct Connect 사용 설명서의 Direct Connect 게이트웨이를 참조한다.

  • CIDR 블록을 추가하거나 제거하는 경우, associating | associated | disassociating | disassociated | failing | failed와 같은 다양한 상태를 통과할 수 있다. 사용자가 CIDR 블록을 사용할 수 있는 상태가 되면 associated 상태가 된다.

VPC에 연결한 CIDR 블록은 연결 해제가 가능하지만, 원래 VPC(기본 CIDR 블록)를 생성한 CIDR 블록은 연결을 해제할 수 없다. Amazon VPC 콘솔에서 VPC의 기본 CIDR을 보려면 Your VPCs(사용자 VPC)를 선택하고 자신의 VPC의 확인란을 선택한 다음 CIDRs 탭을 선택한다. AWS CLI을 사용하여 기본 CIDR을 보려면 다음과 같이 describe-vpcs 명령을 사용한다. 기본 CIDR은 최상위 CidrBlock element로 반환된다.

aws ec2 describe-vpcs --vpc-id vpc-1a2b3c4d --query Vpcs[*].CidrBlock

출력의 예는 다음과 같다.

[
           "10.0.0.0/16", 
       ]

3) IPv4 CIDR 블록 연결 제한

다음 표에서는 허용 및 제한된 VPC CIDR 블록 연결에 대한 개요를 제공한다. 제한 이유는 일부 AWS 서비스가 AWS 서비스 측에서 충돌하지 않는 CIDR 블록이 필요한 교차 VPC 및 교차 계정 기능을 사용하기 때문이다.

IP 주소 범위 제한된 연결 허용된 연결
10.0.0.0/8 다른 RFC 1918* 범위(172.16.0.0/12 및 192.168.0.0/16)의 CIDR 블록이다.
VPC에 연결된 CIDR 블록 중 하나가 10.0.0.0/15 범위(10.0.0.0~10.1.255.255)에 해당되면 10.0.0.0/16 범위(10.0.0.0~10.0.255.255)의 CIDR 블록을 추가할 수 없다.
198.19.0.0/16 범위의 CIDR 블록이다.
제한되지 않는 10.0.0.0/8 범위의 기타 모든 CIDR 블록이다.
공개적으로 라우팅이 가능한 모든 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.
172.16.0.0/12 다른 RFC 1918* 범위(10.0.0.0/8 및 192.168.0.0/16)의 CIDR 블록이다.
172.31.0.0/16 범위의 CIDR 블록이다.
198.19.0.0/16 범위의 CIDR 블록이다.
제한되지 않는 172.16.0.0/12 범위의 기타 모든 CIDR 블록이다.
공개적으로 라우팅이 가능한 모든 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.
192.168.0.0/16 다른 RFC 1918* 범위(10.0.0.0/8 및 172.16.0.0/12)의 CIDR 블록이다.
198.19.0.0/16 범위의 CIDR 블록이다.
192.168.0.0/16 범위의 기타 모든 CIDR 블록이다.
공개적으로 라우팅이 가능한 모든 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.
198.19.0.0/16 RFC 1918* 범위의 CIDR 블록이다. 공개적으로 라우팅이 가능한 모든 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.
공개적으로 라우팅이 가능한 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록 RFC 1918* 범위의 CIDR 블록이다.
198.19.0.0/16 범위의 CIDR 블록이다.
공개적으로 라우팅이 가능한 모든 다른 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.

* RFC 1918 범위는 RFC 1918에 지정된 프라이빗 IPv4 주소 범위이다.

4) IPv6 VPC CIDR 블록

새 VPC를 생성할 때 단일 IPv6 CIDR 블록을 계정의 기존 VPC와 연결하거나 기존 VPC를 수정하여 최대 5개까지 연결할 수 있다. CIDR 블록은 /56의 고정 접두사 길이이다. Amazon의 IPv6 주소 풀에서 IPv6 CIDR 블록을 요청할 수 있다. 자세한 내용은 IPv6 CIDR 블록을 VPC와 연결 섹션을 참조한다.

IPv6 CIDR 블록을 VPC와 연결한 경우, IPv6 CIDR 블록을 VPC의 기존 서브넷 또는 새로 생성한 서브넷과 연결할 수 있다. 자세한 내용은 IPv6에 대한 서브넷 크기 조정 섹션을 참조한다.

예를 들어, VPC를 생성하고 이 VPC에 Amazon이 제공하는 IPv6 CIDR 블록을 연결하도록 지정한다. Amazon은 VPC에 IPv6 CIDR 블록 2001:db8:1234:1a00::/56을 할당한다. IP 주소 범위는 직접 선택할 수 없다. 서브넷을 생성하고 이 범위에 속하는 IPv6 CIDR 블록을 연결할 수 있다(예: 2001:db8:1234:1a00::/64).

VPC에서 IPv6 CIDR 블록을 연결 해제할 수 있다. VPC에 연결된 IPv6 CIDR 블록을 분리한 후 나중에 다시 VPC에 IPv6 CIDR 블록을 연결하는 경우, 동일한 CIDR을 받을 것으로 기대할 수는 없다.


References