AWS, Azure 및 GCP의 IPv6
클라우드 인프라에서 IPv6를 활성화하세요. AWS, Azure 및 Google Cloud Platform에 대한 실용적인 구성 가이드입니다.
대부분의 클라우드 워크로드는 여전히 IPv4 전용으로 실행됩니다. 이것이 문제가 되고 있습니다.
TL;DR - 빠른 요약
핵심 포인트:
- 모바일 네트워크는 IPv6 우선입니다: 변환을 강제하면 대부분의 사용자에게 대기 시간이 추가됩니다
- IPv4 주소는 클라우드에서 비용이 드는 반면 IPv6는 무료입니다
- 구성은 듀얼 스택 지원으로 AWS, Azure 및 GCP에서 유사합니다
- Kubernetes 클러스터는 모든 주요 클라우드 제공업체에서 듀얼 스택으로 실행할 수 있습니다
바로가기: AWS 구성 | Azure 구성 | GCP 구성 | Kubernetes
클라우드에서 IPv6를 활성화하는 이유#
모바일 네트워크는 수년 동안 IPv6 우선이었습니다. 모바일 사용자가 서비스에 접속하면 IPv6 주소에서 옵니다. IPv4 전용을 실행하면 경로 어딘가에서 변환을 강제하여 대기 시간과 복잡성을 추가합니다.
일부 ISP는 레거시 IPv4 서비스용 NAT64가 있는 IPv6 전용 네트워크로 이동했습니다. IPv6를 통해 연결할 수 없으면 이러한 사용자에게 추가 변환 홉을 추가하는 것입니다.
IPv4 주소는 이제 비용이 듭니다. 클라우드 제공업체는 대부분의 지역에서 공용 IPv4 주소에 요금을 청구합니다. IPv6 주소는 무료이며 풍부합니다.
아키텍처도 더 간단합니다. NAT, 포트 포워딩 규칙, 관리할 주소 고갈이 없습니다. 모든 인스턴스가 전역적으로 라우팅 가능한 주소를 얻습니다.
AWS IPv6 구성#
AWS는 대부분의 서비스에서 강력한 IPv6 지원을 제공합니다. VPC부터 시작하세요.
VPC 듀얼 스택 설정#
기존 VPC에 IPv6 CIDR 블록을 추가합니다:
aws ec2 associate-vpc-cidr-block \
--vpc-id vpc-abc123 \
--amazon-provided-ipv6-cidr-blockAWS는 /56 블록을 할당합니다. 각 가용 영역에 /64 서브넷을 연결합니다:
aws ec2 associate-subnet-cidr-block \
--subnet-id subnet-xyz789 \
--ipv6-cidr-block 2600:1f13:123:4500::/64라우팅 테이블을 업데이트합니다. IPv6에는 인터넷 게이트웨이에 대한 자체 라우트가 필요합니다:
aws ec2 create-route \
--route-table-id rtb-abc123 \
--destination-ipv6-cidr-block ::/0 \
--gateway-id igw-xyz789EC2 IPv6 주소 지정#
기존 인스턴스는 자동으로 IPv6를 얻지 않습니다. 수동으로 주소를 할당합니다:
aws ec2 assign-ipv6-addresses \
--network-interface-id eni-abc123 \
--ipv6-address-count 1듀얼 스택 서브넷의 새 인스턴스는 시작 시 --ipv6-address-count 1을 설정하면 자동으로 IPv6를 얻습니다.
인스턴스 내부에서 IPv6가 구성되어 있는지 확인합니다. Amazon Linux 및 Ubuntu는 cloud-init을 통해 자동으로 처리하지만 ip -6 addr show로 확인하세요.
보안 그룹#
IPv6 트래픽은 별도의 규칙을 사용합니다. 0.0.0.0/0에 대한 HTTP 규칙이 있으면 IPv6에 적용되지 않습니다. ::/0을 추가합니다:
aws ec2 authorize-security-group-ingress \
--group-id sg-abc123 \
--ip-permissions IpProtocol=tcp,FromPort=443,ToPort=443,Ipv6Ranges='[{CidrIpv6=::/0}]'일반적인 실수: IPv6 규칙을 추가하는 것을 잊고 연결이 실패하는 이유를 궁금해합니다.
로드 밸런서#
Application 및 Network Load Balancer는 듀얼 스택을 지원합니다. ip-address-type을 dualstack으로 설정합니다:
aws elbv2 set-ip-address-type \
--load-balancer-arn arn:aws:elasticloadbalancing:... \
--ip-address-type dualstack로드 밸런서는 A 및 AAAA 레코드를 자동으로 얻습니다.
Route 53 DNS#
IPv6 주소를 가리키는 AAAA 레코드를 만듭니다:
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890ABC \
--change-batch file://add-aaaa.jsonRoute 53은 로드 밸런서 및 CloudFront 배포에 유용한 별칭 레코드에 대해서도 IPv6를 지원합니다.
Azure IPv6 구성#
Azure의 접근 방식은 유사하지만 다른 용어를 사용합니다.
가상 네트워크 듀얼 스택#
VNet에 IPv6 주소 공간을 추가합니다:
az network vnet update \
--resource-group myResourceGroup \
--name myVNet \
--address-prefixes "10.0.0.0/16" "fd00:db8::/56"서브넷에 IPv6 추가:
az network vnet subnet update \
--resource-group myResourceGroup \
--vnet-name myVNet \
--name mySubnet \
--address-prefixes "10.0.1.0/24" "fd00:db8:1::/64"GCP IPv6 구성#
Google Cloud는 IPv6 채택이 AWS 및 Azure보다 느렸지만 지원이 크게 개선되었습니다.
VPC IPv6 구성#
서브넷 생성 시 활성화:
gcloud compute networks subnets create mysubnet \
--network=myvpc \
--region=us-central1 \
--range=10.0.1.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=EXTERNALKubernetes 및 IPv6#
주요 관리형 Kubernetes 서비스는 이제 듀얼 스택 클러스터를 지원합니다.
듀얼 스택 클러스터#
클러스터 생성 중 활성화:
# EKS
eksctl create cluster --name mycluster --ip-family ipv4,ipv6
# GKE
gcloud container clusters create mycluster \
--enable-ip-alias \
--stack-type=IPV4_IPV6일반적인 문제#
애플리케이션 지원#
대부분의 최신 언어 및 프레임워크는 IPv6를 지원하지만 오래된 애플리케이션은 그렇지 않을 수 있습니다.
모니터링 격차#
일부 모니터링 도구는 기본적으로 IPv4 메트릭만 수집합니다. CloudWatch, Azure Monitor 및 Cloud Monitoring은 IPv6를 지원하지만 사용자 지정 대시보드에 업데이트가 필요할 수 있습니다.
클라우드 IPv6 테스트#
작동한다고 가정하지 마세요. IPv6 전용 네트워크에서 테스트하세요.
로컬 시스템에서 IPv4를 일시적으로 비활성화:
# Linux
sudo ip addr del <your-ipv4-address> dev eth0
# macOS
sudo ifconfig en0 inet delete서비스에 액세스를 시도합니다. 실패하면 구성 문제가 있습니다.
관련 기사#
- IPv6 마이그레이션: 듀얼 스택, 터널링 및 NAT64 - 클라우드 배포를 위한 마이그레이션 전략 및 모범 사례를 알아보세요.
- IPv6 배포: 네트워크 관리자를 위한 체크리스트 - 클라우드 IPv6 배포가 모범 사례를 따르는지 확인하세요.
직접 해보세요
IPv6 Ping 도구를 사용하여 클라우드 인스턴스의 IPv6 연결을 테스트하세요.