Amazon EC2 인스턴스 IP 주소 지정
Amazon EC2 인스턴스 IP 주소 지정 (IP addressing)
Amazon EC2와 Amazon VPC는 IPv4와 IPv6 주소 지정 프로토콜을 모두 지원해요. 기본적으로 Amazon VPC는 IPv4 주소 지정 프로토콜을 사용하며, 이 동작은 비활성화할 수 없습니다. VPC를 만들 때 IPv4 CIDR 블록(프라이빗 IPv4 주소 범위)을 지정해야 합니다. 선택적으로 VPC에 IPv6 CIDR 블록을 할당하고 그 블록에서 서브넷의 인스턴스에 IPv6 주소를 할당할 수 있습니다.
출처: 문서
본문
Amazon EC2와 Amazon VPC는 IPv4와 IPv6 주소 지정 프로토콜을 모두 지원합니다. 기본적으로 Amazon VPC는 IPv4 주소 지정 프로토콜을 사용하며, 이 동작은 비활성화할 수 없습니다. VPC를 만들 때 IPv4 CIDR 블록(프라이빗 IPv4 주소 범위)을 지정해야 합니다. 선택적으로 VPC에 IPv6 CIDR 블록을 할당하고 그 블록에서 서브넷의 인스턴스에 IPv6 주소를 할당할 수 있습니다.
EC2 인스턴스를 시작할 때 VPC와 서브넷을 지정합니다. 인스턴스는 서브넷의 CIDR 범위에서 프라이빗 IPv4 주소를 받습니다. 선택적으로 인스턴스에 공용 IPv4 주소와 IPv6 주소를 구성할 수 있습니다. 서로 다른 VPC의 EC2 인스턴스가 공용 IP 주소로 통신하면 트래픽은 AWS 프라이빗 글로벌 네트워크에 머물며 공용 인터넷을 통과하지 않습니다.
프라이빗 IPv4 주소 (Private IPv4 addresses)
프라이빗 IPv4 주소는 인터넷을 통해 연결할 수 없는 IP 주소입니다. 같은 VPC에 있는 인스턴스 간의 통신에 프라이빗 IPv4 주소를 사용할 수 있습니다. 프라이빗 IPv4 주소의 표준과 사양에 대한 자세한 내용은 RFC 1918을 참고하세요. DHCP를 사용해 인스턴스에 프라이빗 IPv4 주소를 할당합니다.
Note
RFC 1918에 지정된 프라이빗 IPv4 주소 범위 밖에 있는 공개적으로 라우팅 가능한 CIDR 블록으로 VPC를 만들 수 있어요. 그러나 이 문서에서는 VPC의 IPv4 CIDR 범위 안에 있는 IP 주소를 프라이빗 IPv4 주소(또는 '프라이빗 IP 주소')라고 부릅니다.
VPC 서브넷은 다음 유형 중 하나일 수 있습니다.
- IPv4 전용 서브넷 – IPv4 주소가 할당된 리소스만 이 서브넷에 만들 수 있습니다.
- IPv6 전용 서브넷 – IPv6 주소가 할당된 리소스만 이 서브넷에 만들 수 있습니다.
- IPv4 및 IPv6 서브넷 – IPv4 또는 IPv6 주소가 할당된 리소스를 이 서브넷에 만들 수 있습니다.
EC2 인스턴스를 IPv4 전용 또는 이중 스택(IPv4 및 IPv6) 서브넷에 시작하면 인스턴스는 서브넷의 IPv4 주소 범위에서 기본 프라이빗 IP 주소를 받습니다. 자세한 내용은 Amazon VPC User Guide의 IP addressing을 참고하세요. 인스턴스를 시작할 때 기본 프라이빗 IP 주소를 지정하지 않으면 서브넷의 IPv4 범위에서 사용 가능한 IP 주소를 선택합니다. 각 인스턴스에는 기본 프라이빗 IPv4 주소가 할당된 기본 네트워크 인터페이스(인덱스 0)가 있습니다. 또한 *보조 프라이빗 IPv4 주소(secondary private IPv4 addresses)*라고 하는 추가 프라이빗 IPv4 주소를 지정할 수 있습니다. 기본 프라이빗 IP 주소와 달리 보조 프라이빗 IP 주소는 한 인스턴스에서 다른 인스턴스로 재할당할 수 있습니다. 자세한 내용은 Multiple IP addresses를 참고하세요.
프라이빗 IPv4 주소는 기본 주소든 보조 주소든, 인스턴스가 중지되고 시작되거나 최대 절전 모드에서 시작될 때 네트워크 인터페이스와 계속 연결되어 있으며, 인스턴스가 종료되면 해제됩니다.
공용 IPv4 주소 (Public IPv4 addresses)
공용 IP 주소는 인터넷에서 연결할 수 있는 IPv4 주소입니다. 인스턴스와 인터넷 간의 통신에 공용 주소를 사용할 수 있습니다.
기본 VPC에서 인스턴스를 시작하면 기본적으로 공용 IP 주소가 할당됩니다. 기본이 아닌 VPC에서 인스턴스를 시작하면 서브넷에는 해당 서브넷에 시작된 인스턴스가 공용 IPv4 주소 풀에서 공용 IP 주소를 받을지 여부를 결정하는 속성이 있습니다. 기본적으로 기본이 아닌 서브넷에 시작된 인스턴스에는 공용 IP 주소를 할당하지 않습니다.
인스턴스가 공용 IP 주소를 받을지 여부를 다음과 같이 제어할 수 있어요.
- 서브넷의 공용 IP 주소 지정 속성을 수정합니다. 자세한 내용은 Amazon VPC User Guide의 Modify the public IPv4 addressing attribute for your subnet을 참고하세요.
- 시작 중에 공용 IP 주소 지정 기능을 활성화 또는 비활성화합니다. 이는 서브넷의 공용 IP 주소 지정 속성을 재정의합니다. 자세한 내용은 Assign a public IPv4 address at launch를 참고하세요.
- 시작 후 인스턴스에서 공용 IP 주소를 할당 해제합니다. 자세한 내용은 Manage the IP addresses for your network interface를 참고하세요.
공용 IP 주소는 Amazon의 공용 IPv4 주소 풀에서 인스턴스에 할당되며 AWS 계정과 연결되지 않습니다. 공용 IP 주소가 인스턴스에서 분리되면 공용 IPv4 주소 풀로 다시 반환되며 재사용할 수 없습니다.
다음 경우에 인스턴스에서 공용 IP 주소를 해제하고 새 주소를 할당합니다.
- 인스턴스가 중지, 최대 절전 모드 전환 또는 종료되면 공용 IP 주소를 해제합니다. 중지되었거나 최대 절전 모드인 인스턴스를 시작하면 새 공용 IP 주소를 할당합니다.
- 인스턴스에 탄력적 IP 주소를 연결하면 공용 IP 주소를 해제합니다. 인스턴스에서 탄력적 IP 주소를 분리하면 새 공용 IP 주소를 할당합니다.
- 인스턴스의 공용 IP 주소를 해제했는데 인스턴스에 보조 네트워크 인터페이스가 있다면 새 공용 IP 주소를 할당하지 않습니다.
- 인스턴스의 공용 IP 주소를 해제했는데 인스턴스에 탄력적 IP 주소와 연결된 보조 프라이빗 IP 주소가 있다면 새 공용 IP 주소를 할당하지 않습니다.
필요에 따라 인스턴스에 연결했다가 분리할 수 있는 영구 공용 IP 주소가 필요하다면 탄력적 IP 주소를 대신 사용하세요.
동적 DNS를 사용해 기존 DNS 이름을 새 인스턴스의 공용 IP 주소에 매핑하면 IP 주소가 인터넷에 전파되는 데 최대 24시간이 걸릴 수 있습니다. 그 결과 종료된 인스턴스가 계속 요청을 받는 동안 새 인스턴스는 트래픽을 받지 못할 수 있습니다. 이 문제를 해결하려면 탄력적 IP 주소를 사용하세요. 자체 탄력적 IP 주소를 할당하고 인스턴스에 연결할 수 있습니다. 자세한 내용은 Elastic IP addresses를 참고하세요.
Amazon VPC IP Address Manager(IPAM)를 사용하면 AWS에서 연속적인 공용 IPv4 주소 블록을 얻어 AWS 리소스에 탄력적 IP 주소를 할당하는 데 사용할 수 있습니다. 연속적인 IPv4 주소 블록을 사용하면 보안 액세스 제어 목록의 관리 오버헤드를 크게 줄이고 AWS에서 확장하는 기업의 IP 주소 할당 및 추적을 간소화할 수 있습니다. 자세한 내용은 Amazon VPC IPAM User Guide의 Allocate sequential Elastic IP addresses from an IPAM pool을 참고하세요.
고려 사항 (Considerations)
- AWS는 실행 중인 인스턴스와 연결된 공용 IPv4 주소 및 탄력적 IP 주소를 포함해 모든 공용 IPv4 주소에 대해 요금을 청구합니다. 자세한 내용은 Amazon VPC 요금 페이지의 Public IPv4 Address 탭을 참고하세요.
- 공용 NAT IP 주소를 통해 다른 인스턴스에 액세스하는 인스턴스는 인스턴스가 같은 리전에 있는지 여부에 따라 리전별 또는 인터넷 데이터 전송 요금이 청구됩니다.
공용 IPv4 주소 최적화 (Public IPv4 address optimization)
AWS는 실행 중인 인스턴스와 연결된 공용 IPv4 주소 및 탄력적 IP 주소를 포함해 모든 공용 IPv4 주소에 대해 요금을 청구합니다. 자세한 내용은 Amazon VPC pricing page의 Public IPv4 Address 탭을 참고하세요.
사용하는 공용 IPv4 주소 수를 최적화하기 위해 취할 수 있는 작업은 다음과 같습니다.
- 공용 IPv4 주소와 인터넷 게이트웨이를 사용하는 대신 AWS PrivateLink를 사용해 AWS 서비스나 다른 AWS 계정이 호스팅하는 서비스에 프라이빗으로 연결합니다.
- 자체 IP 주소 범위(BYOIP)를 AWS로 가져와서 Amazon 소유 공용 IPv4 주소 대신 그 범위를 공용 IPv4 주소로 사용합니다.
- 서브넷에 시작된 인스턴스에 대해 자동 할당 공용 IPv4 주소(auto-assign public IPv4 address)를 끕니다. 이 옵션은 서브넷을 만들 때 VPC에서 기본적으로 비활성화되어 있지만, 기존 서브넷에서 비활성화되어 있는지 확인해야 합니다.
- 공용 IPv4 주소가 필요 없는 EC2 인스턴스가 있다면 인스턴스에 연결된 네트워크 인터페이스에 공용 IP 자동 할당이 비활성화되어 있는지 확인합니다.
- 프라이빗 서브넷의 EC2 인스턴스용 AWS Global Accelerator에 가속기 엔드포인트를 구성해 공용 IP 주소 없이 인터넷 트래픽이 VPC의 엔드포인트로 직접 흐르도록 합니다. 또한 자체 주소를 AWS Global Accelerator에 가져와 가속기의 정적 IP 주소에 자체 IPv4 주소를 사용할 수도 있습니다.
NAT 게이트웨이가 기존 공용 IPv4 주소보다 저렴한지 확인하려면 다음 계산을 사용하세요.
NAT gateway per hour + NAT gateway public IPs + NAT gateway transfer / Existing public IP cost
- NAT 게이트웨이 시간당 요금 = $0.045 * 한 달 730시간 * NAT 게이트웨이가 있는 가용 영역 수
- NAT 게이트웨이 공용 IP = $0.005 * 한 달 730시간 * NAT 게이트웨이와 연결된 IP 수
- NAT 게이트웨이 전송 = $0.045 * 한 달에 NAT 게이트웨이를 통과하는 GB 수
- 기존 공용 IP 비용 = $0.005 * 한 달 730시간 * 공용 IPv4 주소 수
합계가 1보다 작으면 NAT 게이트웨이가 공용 IPv4 주소보다 저렴합니다.
IPv6 주소 (IPv6 addresses)
IPv6 주소는 전 세계에서 고유하며 프라이빗으로 유지하거나 인터넷에서 연결할 수 있도록 구성할 수 있습니다. AWS에서는 공용 및 프라이빗 IPv6 주소 지정이 모두 가능합니다.
- 프라이빗 IPv6 – AWS는 인터넷에서 AWS로부터 광고되지 않거나 광고될 수 없는 IPv6 주소를 프라이빗으로 간주합니다.
- 공용 IPv6 – AWS는 인터넷에서 AWS로부터 광고되는 IPv6 주소를 공용으로 간주합니다.
공용 및 프라이빗 IPv6 주소에 대한 자세한 내용은 Amazon VPC User Guide의 IPv6 addresses를 참고하세요.
다음을 제외한 모든 인스턴스 유형이 IPv6 주소를 지원합니다: C1, M1, M2, M3, T1.
VPC와 서브넷에 IPv6 CIDR 블록이 연결되어 있고 다음 중 하나가 참이라면 EC2 인스턴스가 IPv6 주소를 받습니다.
- 시작 중에 인스턴스에 IPv6 주소를 자동으로 할당하도록 서브넷이 구성되어 있는 경우. 자세한 내용은 Modify the IP addressing attributes of your subnet을 참고하세요.
- 시작 중에 인스턴스에 IPv6 주소를 할당한 경우.
- 시작 후 인스턴스의 기본 네트워크 인터페이스에 IPv6 주소를 할당한 경우.
- 같은 서브넷의 네트워크 인터페이스에 IPv6 주소를 할당하고 시작 후 네트워크 인터페이스를 인스턴스에 연결한 경우.
시작 중에 인스턴스가 IPv6 주소를 받으면 주소는 인스턴스의 기본 네트워크 인터페이스(인덱스 0)와 연결됩니다. 인스턴스의 기본 네트워크 인터페이스에 대한 IPv6 주소를 다음과 같이 관리할 수 있어요.
- 네트워크 인터페이스에서 IPv6 주소를 할당 및 해제합니다. 네트워크 인터페이스에 할당할 수 있는 IPv6 주소 수와 인스턴스에 연결할 수 있는 네트워크 인터페이스 수는 인스턴스 유형에 따라 다릅니다. 자세한 내용은 Maximum IP addresses per network interface를 참고하세요.
- 기본 IPv6 주소를 활성화합니다. 기본 IPv6 주소를 사용하면 인스턴스나 ENI에 대한 트래픽 중단을 피할 수 있습니다. 자세한 내용은 Create a network interface for your EC2 instance 또는 Manage the IP addresses for your network interface를 참고하세요.
IPv6 주소는 인스턴스를 중지하고 시작하거나 최대 절전 모드에서 시작할 때 유지되며, 인스턴스를 종료하면 해제됩니다. IPv6 주소가 다른 네트워크 인터페이스에 할당되어 있는 동안에는 재할당할 수 없습니다. 먼저 할당을 해제해야 합니다.
서브넷의 라우팅을 제어하거나 보안 그룹 및 네트워크 ACL 규칙을 사용해 인스턴스가 IPv6 주소를 통해 연결 가능한지 여부를 제어할 수 있습니다. 자세한 내용은 Amazon VPC User Guide의 Internetwork traffic privacy를 참고하세요.
예약된 IPv6 주소 범위에 대한 자세한 내용은 IANA IPv6 Special-Purpose Address Registry와 RFC4291을 참고하세요.
여러 IP 주소 (Multiple IP addresses)
인스턴스에 대해 여러 프라이빗 IPv4 및 IPv6 주소를 지정할 수 있습니다. 인스턴스에 지정할 수 있는 네트워크 인터페이스와 프라이빗 IPv4 및 IPv6 주소의 수는 인스턴스 유형에 따라 다릅니다. 자세한 내용은 Maximum IP addresses per network interface를 참고하세요.
사용 사례 (Use cases)
- 단일 서버에 여러 SSL 인증서를 사용하고 각 인증서를 특정 IP 주소와 연결해 단일 서버에서 여러 웹사이트를 호스팅합니다.
- 각 네트워크 인터페이스에 여러 IP 주소가 있는 방화벽이나 로드 밸런서 같은 네트워크 어플라이언스를 운영합니다.
- 인스턴스가 실패할 경우 보조 IP 주소를 대기 인스턴스에 재할당해 내부 트래픽을 대기 인스턴스로 리디렉션합니다.
여러 IP 주소의 작동 방식 (How multiple IP addresses work)
- 모든 네트워크 인터페이스에 보조 프라이빗 IPv4 주소를 할당할 수 있습니다.
- IPv6 CIDR 블록이 연결된 서브넷에 있는 네트워크 인터페이스에 여러 IPv6 주소를 할당할 수 있습니다.
- 네트워크 인터페이스의 경우 서브넷의 IPv4 CIDR 블록 범위에서 보조 IPv4 주소를 선택해야 합니다.
- 네트워크 인터페이스의 경우 서브넷의 IPv6 CIDR 블록 범위에서 IPv6 주소를 선택해야 합니다.
- 개별 IP 주소가 아니라 네트워크 인터페이스에 보안 그룹을 연결합니다. 따라서 네트워크 인터페이스에 지정하는 각 IP 주소는 해당 네트워크 인터페이스의 보안 그룹의 적용을 받습니다.
- 실행 중이거나 중지된 인스턴스에 연결된 네트워크 인터페이스에 여러 IP 주소를 할당하고 해제할 수 있습니다.
- 네트워크 인터페이스에 할당된 보조 프라이빗 IPv4 주소는 명시적으로 허용하면 다른 네트워크 인터페이스에 재할당할 수 있습니다.
- IPv6 주소는 다른 네트워크 인터페이스에 재할당할 수 없습니다. 먼저 기존 네트워크 인터페이스에서 IPv6 주소를 할당 해제해야 합니다.
- 명령줄 도구나 API를 사용해 네트워크 인터페이스에 여러 IP 주소를 할당할 때 IP 주소 중 하나를 할당할 수 없으면 전체 작업이 실패합니다.
- 기본 프라이빗 IPv4 주소, 보조 프라이빗 IPv4 주소, 탄력적 IP 주소, IPv6 주소는 보조 네트워크 인터페이스가 인스턴스에서 분리되거나 인스턴스에 연결될 때 보조 네트워크 인터페이스와 함께 유지됩니다.
- 기본 네트워크 인터페이스는 인스턴스에서 분리할 수 없지만, 기본 네트워크 인터페이스의 보조 프라이빗 IPv4 주소는 다른 네트워크 인터페이스에 재할당할 수 있습니다.
자세한 내용은 Secondary IP addresses for your EC2 instances를 참고하세요.
EC2 인스턴스 호스트 이름 (EC2 instance hostnames)
EC2 인스턴스를 만들면 AWS가 해당 인스턴스에 대한 호스트 이름을 만듭니다. 호스트 이름의 유형과 AWS가 호스트 이름을 프로비저닝하는 방법에 대한 자세한 내용은 EC2 instance hostnames and domains을 참고하세요. Amazon은 Amazon 제공 호스트 이름을 IPv4 및 IPv6 주소로 확인하는 DNS 서버를 제공합니다. Amazon DNS 서버는 VPC 네트워크 범위의 베이스에 2를 더한 위치에 있습니다. 자세한 내용은 Amazon VPC User Guide의 DNS attributes for your VPC를 참고하세요.
링크-로컬 주소 (Link-local addresses)
Amazon EC2는 EC2 인스턴스에서만 액세스할 수 있는 서비스를 위해 특정 IPv4 링크-로컬 주소를 예약합니다. 이러한 서비스는 인스턴스가 아닌 기본 호스트에서 실행됩니다. 이러한 서비스의 예약된 링크-로컬 주소에 액세스하면 Xen 하이퍼바이저나 Nitro 컨트롤러와 통신하게 됩니다. 기본 호스트는 고객이 구성한 경로에 따라 전달하는 대신 이러한 예약된 주소에 대한 트래픽을 처리합니다. 보안 그룹과 네트워크 ACL은 이 트래픽을 필터링하지 않습니다.
AWS는 169.254.0.0/16의 모든 IPv4 주소를 예약하지는 않습니다. 이 범위의 예약되지 않은 주소에 대한 트래픽은 적용 가능한 VPC 경로를 따릅니다. 보안 그룹과 네트워크 ACL이 이 트래픽을 필터링할 수 있습니다.
링크-로컬 주소 범위 (Link-local address ranges)
- IPv4 – 169.254.0.0/16 (169.254.0.0 ~ 169.254.255.255)
- IPv6 – fe80::/10
링크-로컬 주소로 액세스하는 서비스 (Services that you access using link-local addresses)
- Instance Metadata Service – 169.254.169.254
- Amazon Route 53 Resolver(Amazon DNS 서버라고도 함) – 169.254.169.253
- Amazon Time Sync Service – 169.254.169.123
- AWS KMS 서버