Amazon VPC 작동 방식 - Amazon Virtual Private Cloud

Amazon VPC 작동 방식

Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사합니다.

VPC 및 서브넷

Virtual Private Cloud(VPC)는 사용자의 AWS 계정 전용 가상 네트워크입니다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있습니다. VPC의 IP 주소 범위를 지정하고 서브넷과 게이트웨이를 추가하고 보안 그룹을 연결합니다.

서브넷은 VPC의 IP 주소 범위입니다. Amazon EC2 인스턴스와 같은 AWS 리소스를 서브넷으로 실행할 수 있습니다. 서브넷을 인터넷, 다른 VPC 및 자체 데이터 센터에 연결하고 라우팅 테이블을 사용하여 서브넷으로/서브넷에서 트래픽을 라우팅할 수 있습니다.

기본 VPC와 기본이 아닌 VPC

계정이 2013년 12월 4일 이후에 생성된 경우 각 리전에 기본 VPC가 함께 제공됩니다. 기본 VPC가 구성되어 사용할 준비가 되었습니다. 예를 들어, 리전의 각 가용 영역에 기본 서브넷, 연결된 인터넷 게이트웨이, 모든 트래픽을 인터넷 게이트웨이로 보내는 기본 라우팅 테이블의 경로, EC2 인스턴스에 퍼블릭 IP 주소 및 DNS 호스트 이름을 제공하는 DNS 설정이 있습니다. 따라서 기본 서브넷에서 시작된 EC2 인스턴스는 자동으로 인터넷에 액세스할 수 있습니다. 리전에 기본 VPC가 있고 해당 리전에서 EC2 인스턴스를 시작할 때 서브넷을 지정하지 않으면 기본 서브넷 중 하나가 선택되고 해당 서브넷에서 인스턴스가 시작됩니다.

자체 VPC를 생성하고 필요에 따라 구성할 수도 있습니다. 이를 기본이 아닌 VPC라고 합니다. 기본이 아닌 VPC에 만든 서브넷과 기본 VPC에 만든 추가 서브넷은 기본이 아닌 서브넷이라고 합니다.

자세히 알아보기

IP 주소 지정

IP 주소가 있으면 VPC 내의 리소스가 서로 통신하고, 인터넷을 통해 다른 리소스와 통신할 수 있습니다.

CIDR(Classless Inter-Domain Routing) 표기법은 IP 주소 및 네트워크 마스크를 나타내는 방법입니다. 이러한 주소의 형식은 다음과 같습니다.

  • 개별 IPv4 주소는 32비트로, 최대 3개의 십진수로 구성된 그룹 4개를 포함합니다. 예를 들어 10.0.1.0입니다.

  • IPv4 CIDR 블록에는 마침표로 구분된 최대 3개의 십진수 0~255로 구성된 4개 그룹이 있으며, 그 뒤에 슬래시와 0~32의 숫자가 따라옵니다. 예: 10.0.0.0/16.

  • 개별 IPv6 주소는 128비트로, 4개의 16진수로 구성된 그룹 8개를 포함합니다. 예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

  • IPv6 CIDR 블록에는 콜론으로 구분된 최대 4개의 16진수로 구성된 4개 그룹이 있으며, 그 뒤에 이중 콜론, 슬래시, 1~128의 숫자가 차례로 따라옵니다. 예: 2001:db8:1234:1a00::/56.

자세한 내용은 Wikipedia의 Classless Inter-Domain Routing을 참조하십시오.

VPC를 생성할 때 VPC에 IPv4 CIDR 블록(프라이빗 IPv4 주소 범위), IPv6 CIDR 블록 또는 IPv4 및 IPv6 CIDR 블록 둘 다(듀얼 스택)를 할당해야 합니다.

프라이빗 IPv4 주소는 인터넷에 접속할 수 없습니다. IPv6 주소는 전역적으로 고유하며 프라이빗으로 유지되거나 인터넷으로 접속하도록 구성할 수 있습니다.

VPC는 이중 스택 모드에서 작동할 수 있습니다. 즉, 리소스가 IPv4, IPv6 또는 IPv4와 IPv6 모두를 통해 통신할 수 있습니다. IPv4 및 IPv6 주소는 서로 독립적입니다. IPv4 및 IPv6에 대해 별도의 경로와 보안 그룹 규칙을 추가해야 합니다.

IPv4 및 IPv6 비교

다음 표에는 Amazon EC2와 Amazon VPC의 IPv4 및 IPv6 간 차이점이 요약되어 있습니다.

특성 IPv4 IPv6
VPC 크기 /16~/28 /56으로 고정됨
서브넷 크기 /16~/28 /64로 고정됨
주소 선택 VPC용 IPv4 CIDR 블록을 선택하거나 Amazon VPC IP 주소 관리자(IPAM)에서 CIDR 블록을 할당할 수 있습니다. 자세한 내용은 Amazon VPC IPAM 사용 설명서IPAM이란 무엇인가?를 참조하세요. 자체 IPv6 CIDR 블록을 VPC용으로 AWS로 가져오거나, Amazon 제공 IPv6 CIDR 블록을 선택하거나, Amazon VPC IP 주소 관리자(IPAM)에서 CIDR 블록을 할당할 수 있습니다. 자세한 내용은 Amazon VPC IPAM 사용 설명서IPAM이란 무엇인가?를 참조하세요.
탄력적 IP 주소 지원 지원되지 않음
NAT 게이트웨이 지원 지원되지 않음
VPC 엔드포인트 지원 지원되지 않음
EC2 인스턴스 모든 인스턴스 유형에 대해 지원됨 모든 현재 세대 인스턴스와 C3, R3 및 I2 인스턴스에서 지원됨
AMI 모든 AMI에서 지원됨 DHCPv6에 맞게 구성된 AMI에서 지원됨
DNS 이름 인스턴스는 Amazon에서 제공한 IPBN 또는 RBN 기반 DNS 이름을 받습니다. DNS 이름은 인스턴스에 대해 선택한 DNS 레코드로 확인됩니다. 인스턴스는 Amazon에서 제공한 IPBN 또는 RBN 기반 DNS 이름을 받습니다. DNS 이름은 인스턴스에 대해 선택한 DNS 레코드로 확인됩니다.

프라이빗 IPv4 주소

프라이빗 IPv4 주소(이 단원에서는 프라이빗 IP 주소로도 표시)는 인터넷을 통해 액세스할 수 없고, VPC의 인스턴스 간 통신에 사용할 수 있습니다. VPC에서 인스턴스를 시작할 경우, 서브넷의 IPv4 주소 범위에 속한 주 프라이빗 IP 주소는 인스턴스의 주 네트워크 인터페이스(eth0)에 할당됩니다. 또한 각 인스턴스에는 인스턴스의 프라이빗 IP 주소를 확인하는 프라이빗(내부) DNS 호스트 이름이 할당됩니다. 호스트 이름은 리소스 기반 또는 IP 기반의 두 가지 유형이 될 수 있습니다. 자세한 내용은 EC2 인스턴스 이름 지정을 참조하세요. 주 프라이빗 IP 주소를 지정하지 않으면 서브넷 범위에서 사용 가능한 IP 주소가 선택됩니다. 네트워크 인터페이스에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서탄력적 네트워크 인터페이스를 참조하십시오.

보조 프라이빗 IP 주소인 추가 프라이빗 IP 주소를 VPC에서 실행 중인 인스턴스에 할당할 수 있습니다. 주 프라이빗 IP 주소와 달리, 보조 프라이빗 IP 주소는 한 네트워크 인스턴스에서 다른 네트워크 인스턴스로 재할당할 수 있습니다. 인스턴스가 중지 및 재시작될 때 프라이빗 IP 주소는 네트워크 인터페이스와 계속해서 연동되고 인스턴스가 종료되면 연동이 해제됩니다. 주 IP 주소와 보조 IP 주소에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서여러 IP 주소를 참조하십시오.

프라이빗 IP 주소란 VPC의 IPv4 CIDR 범위 내 IP 주소를 말합니다. 대부분의 VPC IP 주소 범위는 RFC 1918에서 지정된 프라이빗(비공개적으로 라우팅 가능) IP 주소 범위 내에 들어가지만 VPC에 대해 공개적으로 라우팅이 가능한 CIDR 블록을 사용할 수 있습니다. VPC의 IP 주소 범위에 상관없이 공개적으로 라우팅 가능한 CIDR 블록을 포함해 VPC의 CIDR 블록에서 인터넷으로 직접 액세스하는 것은 지원하지 않습니다. 인터넷 게이트웨이, 가상 프라이빗 게이트웨이, AWS Site-to-Site VPN 연결 또는 AWS Direct Connect와 같은 게이트웨이를 통한 인터넷 액세스를 설정해야 합니다.

퍼블릭 IPv4 주소

모든 서브넷은 해당 서브넷에서 생성된 네트워크 인터페이스가 퍼블릭 IPv4 주소(이 단원에서는 퍼블릭 IP 주소로도 표시함)를 받을 것인지 여부를 결정하는 속성을 갖습니다. 따라서 이 속성이 활성화된 서브넷에서 인스턴스를 시작할 경우, 퍼블릭 IP 주소는 인스턴스에 대해 생성된 주 네트워크 인터페이스(eth0)에 할당됩니다. 퍼블릭 IP 주소는 NAT(Network Address Translation)를 통해 주 프라이빗 IP 주소로 매핑됩니다.

다음을 수행하여 인스턴스가 퍼블릭 IP 주소를 수신할지 여부를 제어할 수 있습니다.

  • 서브넷의 퍼블릭 IP 주소 지정 속성 수정. 자세한 내용은 서브넷의 퍼블릭 IPv4 주소 지정 속성 수정 단원을 참조하십시오.

  • 인스턴스를 시작하는 동안 퍼블릭 IP 주소 지정 기능을 활성화하거나 비활성화하면 서브넷의 퍼블릭 IP 주소 지정 속성을 재정의합니다.

퍼블릭 IP 주소는 Amazon의 퍼블릭 IP 주소 풀로부터 할당되며 계정과는 관련이 없습니다. 인스턴스에서 퍼블릭 IP 주소의 연결이 해제되면 이 주소는 풀로 돌아가지만 더 이상 사용할 수 없습니다. 퍼블릭 IP 주소는 수동으로 연결하거나 해제할 수 없습니다. 어떤 경우에는 Amazon에서 귀하의 인스턴스로부터 퍼블릭 IP 주소를 해제하거나 새 인스턴스에 할당합니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서퍼블릭 IP 주소를 참조하십시오.

필요에 따라 인스턴스에 할당하거나 인스턴스에서 제거가 가능한, 계정에 할당된 영구 퍼블릭 IP 주소가 필요한 경우, 그 대신에 탄력적 IP 주소를 사용하십시오. 자세한 내용은 탄력적 IP 주소를 VPC의 리소스와 연결 단원을 참조하십시오.

VPC에서 DNS 호스트 이름을 지원하는 경우, 퍼블릭 IP 주소 또는 탄력적 IP 주소를 받는 각 인스턴스에도 퍼블릭 DNS 호스트 이름이 할당됩니다. Amazon은 퍼블릭 DNS 호스트 이름을 인스턴스 네트워크 외부에서는 인스턴스의 퍼블릭 IP 주소로 변환하고 인스턴스 네트워크 내부에서는 인스턴스의 프라이빗 IP 주소로 변환합니다. 자세한 내용은 VPC의 DNS 속성 단원을 참조하십시오.

IPv6 주소

IPv6 CIDR 블록을 VPC 및 서브넷에 연결할 수도 있습니다. 자세한 정보는 IPv6 CIDR 블록을 서브넷에 연결을 참조하십시오.

IPv6 CIDR 블록이 VPC와 서브넷에 연결되어 있고 다음 중 하나가 true이면 VPC의 인스턴스는 IPv6 주소를 받습니다.

  • 서브넷은 인스턴스가 시작되는 과정에서 인스턴스의 주 네트워크 인터페이스에 IPv6 주소를 자동 할당하도록 구성되어 있습니다.

  • 시작하는 과정에서 인스턴스에 IPv6 주소를 수동으로 할당합니다.

  • 시작을 완료한 후에 인스턴스에 IPv6 주소를 할당합니다.

  • 동일 서브넷에서 네트워크 인터페이스에 IPv6 주소를 할당하고 시작을 완료한 후에 인스턴스에 네트워크 인터페이스를 연결합니다.

시작하는 과정에서 인스턴스가 IPv6 주소를 받는 경우, 해당 주소는 인스턴스의 주 네트워크 인터페이스(eth0)와 연결됩니다. 주 네트워크 인터페이스에서 IPv6 주소 연결을 해제할 수 있습니다. 인스턴스에 대해서는 IPv6 DNS 호스트 이름을 지원하지 않습니다.

인스턴스를 중지하고 시작할 때에는 IPv6 주소가 지속되다가 인스턴스를 종료하면 해제됩니다. IPv6 주소는 다른 네트워크 인터페이스에 할당되는 동안에는 재할당할 수 없으므로 먼저 할당을 해제해야 합니다.

인스턴스에 연결된 네트워크 인터페이스에 IPv6 주소를 할당함으로써 인스턴스에 추가 IPv6 주소를 할당할 수 있습니다. 네트워크 인터페이스에 할당할 수 있는 IPv6 주소의 개수, 그리고 인스턴스에 연결할 수 있는 네트워크 인터페이스의 개수는 인스턴스 유형에 따라 달라집니다. 자세한 내용은 Amazon EC2 사용 설명서인스턴스 유형별/네트워크 인터페이스당 IP 주소를 참조하세요.

IPv6 주소는 전역적으로 고유하며 프라이빗으로 유지되거나 인터넷으로 접속하도록 구성할 수 있습니다. 서브넷에 대한 라우팅을 제어하거나 보안 그룹 및 네트워크 ACL 규칙을 사용함으로써 인스턴스가 IPv6 주소를 통해 접속이 가능하도록 할지 여부를 제어할 수 있습니다. 자세한 내용은 Amazon VPC의 인터네트워크 트래픽 프라이버시 단원을 참조하십시오.

예약된 IPv6 주소 범위에 대한 자세한 정보는 IANA IPv6 Special-Purpose Address RegistryRFC4291을 참조하십시오.

고유 IP 주소 사용

AWS 계정으로 고유 퍼블릭 IPv4 주소 범위 또는 IPv6 주소 범위의 일부 또는 전체를 가져올 수 있습니다. 주소 범위를 계속해서 소유할 수 있지만 AWS에서는 기본적으로 인터넷에 이러한 주소 범위를 알립니다. 주소 범위를 AWS(으)로 가져오고 나면 이러한 주소가 계정에 주소 풀로 나타납니다. IPv4 주소 풀에서 탄력적 IP 주소를 생성할 수 있으며, IPv6 주소 풀의 IPv6 CIDR 블록을 VPC와 연결할 수 있습니다.

자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서고유 IP 주소 가져오기(BYOIP)를 참조하세요.

라우팅 테이블

라우팅 테이블에는 VPC의 네트워크 트래픽을 전달할 위치를 결정하는 데 사용되는 라우팅이라는 규칙 집합이 포함되어 있습니다. 서브넷을 특정 라우팅 테이블과 명시적으로 연결할 수 있습니다. 그렇지 않으면 서브넷이 기본 라우팅 테이블과 암시적으로 연결됩니다.

라우팅 테이블의 각 라우팅은 트래픽을 전달할 IP 주소 범위(대상 주소)와 트래픽을 전송할 게이트웨이, 네트워크 인터페이스 또는 연결(대상)을 지정합니다.

자세히 알아보기

인터넷 액세스

VPC에서 시작한 인스턴스가 VPC 외부의 리소스를 어떻게 액세스할지를 제어할 수 있습니다.

기본 VPC에는 인터넷 게이트웨이가 포함되며, 각각의 기본 서브넷은 퍼블릭 서브넷입니다. 기본 서브넷에서 시작한 각 인스턴스에는 프라이빗 IPv4 주소와 퍼블릭 IPv4 주소가 있습니다. 이러한 인스턴스는 인터넷 게이트웨이를 통해 인터넷과 통신할 수 있습니다. 인터넷 게이트웨이를 통해 인스턴스는 Amazon EC2 네트워크 엣지를 통해 인터넷에 연결할 수 있습니다.

기본적으로 기본이 아닌 서브넷에서 시작한 각 인스턴스에는 프라이빗 IPv4 주소가 있으며, 시작 시 특별히 지정하거나 서브넷의 퍼블릭 IP 주소 속성을 수정하지 않는 한 퍼블릭 IPv4 주소는 없습니다. 이러한 인스턴스는 서로 통신할 수는 있지만 인터넷에 액세스할 수는 없습니다.

기본이 아닌 서브넷에서 시작한 인스턴스에 대해 해당 VPC에 인터넷 게이트웨이를 추가하고(해당 VPC가 기본 VPC가 아닐 경우) 인스턴스에 탄력적 IP 주소를 연결하여 인터넷 액세스를 가능하게 할 수 있습니다.

또는 VPC의 인스턴스가 인터넷으로 아웃바운드 연결을 시작할 수 있도록 하지만 인터넷으로부터의 원치 않는 인바운드 연결은 차단하려면 네트워크 주소 변환(NAT) 디바이스를 사용하면 됩니다. NAT는 여러 개의 프라이빗 IPv4 주소를 하나의 퍼블릭 IPv4 주소에 매핑합니다. 탄력적 IP 주소로 NAT 디바이스를 구성하고 인터넷 게이트웨이를 통해 인터넷에 연결할 수 있습니다. 프라이빗 서브넷의 인스턴스를 NAT 디바이스를 통해 인터넷에 연결할 수 있으며, 이렇게 하면 인스턴스의 트래픽이 인터넷 게이트웨이로 라우팅되고, 모든 응답은 인스턴스로 라우팅됩니다.

IPv6 CIDR 블록을 VPC와 연결하고 인스턴스에 IPv6 주소를 할당하면 인스턴스가 IPv6으로 인터넷 게이트웨이를 통해 인터넷에 연결할 수 있습니다. 또는 인스턴스는 외부 전용 인터넷 게이트웨이를 사용하여 IPv6를 통해 인터넷에 대한 아웃바운드 연결을 시작할 수 있습니다. IPv6 트래픽은 IPv4 트래픽에서 분리되어 있으므로, 라우팅 테이블에는 IPv6 트래픽에 대한 별도의 경로가 포함되어야 합니다.

회사 또는 홈 네트워크에 액세스

원할 경우 IPsec AWS Site-to-Site VPN 연결을 사용하여 VPC를 회사의 데이터 센터에 연결함으로써 회사 데이터 센터를 AWS 클라우드로 확장할 수 있습니다.

Site-to-Site VPN 연결은 AWS 측의 가상 프라이빗 게이트웨이 또는 전송 게이트웨이와 데이터 센터의 고객 게이트웨이 디바이스 간 두 개의 VPN 터널로 구성됩니다. 고객 게이트웨이는 Site-to-Site VPN 연결에서 고객 측이 구성하는 물리적 디바이스 또는 소프트웨어 애플리케이션입니다.

VPC 및 네트워크 연결

두 VPC 간에 VPC 피어링 연결을 생성하여 비공개적으로 두 VPC 간에 트래픽을 라우팅할 수 있습니다. 동일한 네트워크에 속하는 경우와 같이 VPC의 인스턴스가 서로 통신할 수 있습니다.

또한 전송 게이트웨이를 생성하고 사용해 VPC와 온프레미스 네트워크를 상호 연결할 수 있습니다. 전송 게이트웨이는 VPC, VPN 연결, AWS Direct Connect 게이트웨이, 전송 게이트웨이 피어링 연결 등 연결 간에 이동하는 트래픽에 대해 리전 가상 라우터 역할을 합니다.

AWS 프라이빗 글로벌 네트워크 고려 사항

AWS는 고객의 네트워킹 요구 사항을 지원하는 안전한 클라우드 컴퓨팅 환경을 제공하기 위해 고성능, 낮은 대기 시간의 프라이빗 글로벌 네트워크를 운영합니다.AWS 리전은 여러 인터넷 서비스 제공업체(ISP)와 연결되는 것은 물론 프라이빗 글로벌 네트워크 백본과도 연결되어 고객으로부터 전송되는 교차 리전 트래픽을 향상된 네트워크 성능으로 처리합니다.

다음 사항을 고려하십시오.

  • 모든 리전에서 특정 가용 영역 내부 또는 가용 영역 간 트래픽은 AWS 프라이빗 글로벌 네트워크를 통해 라우팅됩니다.

  • 리전 간 트래픽은 중국 리전을 제외하면 항상 AWS 프라이빗 글로벌 네트워크를 통해 라우팅됩니다.

네트워크 패킷 손실은 네트워크 흐름 충돌, 낮은 수준(계층 2) 오류 및 기타 네트워크 오류를 비롯한 여러 요인으로 인해 발생할 수 있습니다. AWS는 패킷 손실을 최소화하기 위해 네트워크를 엔지니어링하고 운영합니다. 또한 AWS 리전을 연결하는 글로벌 백본에서 PLR(패킷 손실률)을 측정합니다. 백본 네트워크를 운영하여 0.0001% 미만의 시간당 PLR 중 p99를 목표로 합니다.