AWS Global Accelerator 인터넷 프로토콜 버전 6(IPv6) 지원 시작
지난 몇 년 동안 IPv6 도입은 특히 모바일 네트워크에서 지속적으로 증가했습니다. IPv6로 전환해야 하는 주요 이유는 다음과 같습니다.
- IPv4 주소의 제한된 가용성으로 인해 공용 웹 및 애플리케이션 서버를 스케일 업하는 능력이 제한될 수 있습니다.
- 모바일 네트워크의 IPv6 사용자는 네트워크 트래픽이 IPv6에서 IPv4로의 변환을 관리할 필요가 없을 때 더 나은 성능을 경험할 수 있습니다.
- IPv6를 통해 특정 인터넷 트래픽을 실행하려면 규제 규칙(예:미국 연방 취득 규정)을 준수해야 할 수 있습니다.
이를 바탕으로 AWS Global Accelerator에 IPv6 지원을 추가하여 고객이 애플리케이션에 접속하는 데 사용하는 네트워크 경로를 개선하는 데 도움이 될 수 있음을 확인했습니다. Global Accelerator는 AWS 글로벌 네트워크를 사용하여 네트워크 트래픽을 라우팅하고 패킷 손실, 지터 및 대기 시간을 일관적으로 낮게 유지합니다. Atlassian, New Relic 및 SkyScanner와 같은 고객은 이미 Global Accelerator를 사용하여 애플리케이션의 글로벌 가용성과 성능을 개선하고 있습니다.
Global Accelerator는 애플리케이션의 고정된 진입점 역할을 하는 글로벌 정적 퍼블릭 IP 2개를 제공합니다. 사용자 측 IP 주소 변경 없이 애플리케이션 엔드포인트를 업데이트할 수 있습니다. 둘 이상의 애플리케이션 엔드포인트를 구성하는 경우 Global Accelerator는 자동으로 트래픽을 가장 가까운 위치의 사용 가능한 정상 엔드포인트로 재라우팅하여 엔드포인트 장애를 완화합니다.
오늘부터 Global Accelerator를 통해 AWS 리전에서 실행 중인 애플리케이션 엔드포인트로 IPv6 트래픽을 라우팅하여 더 나은 네트워크 성능을 제공할 수 있습니다. Global Accelerator는 이제 이중 스택과 IPv4 전용, 두 가지 유형의 액셀러레이터를 지원합니다. 이중 스택 액셀러레이터를 사용하면 IPv4 및 IPv6 트래픽을 모두 처리할 수 있는 IPv4 및 IPv6 글로벌 정적 IP주소 쌍이 제공됩니다.
기존 IPv4 전용 액셀러레이터의 경우 IPv4 및 IPv6 트래픽을 모두 처리하도록 액셀러레이터를 이중 스택으로 업데이트할 수 있습니다. 이번 업데이트를 통해 액셀러레이터가 IPv6 트래픽을 처리할 수 있으며 액셀러레이터가 제공하는 기존 IPv4 트래픽에는 영향을 주지 않습니다.
IPv6 및 IPv4 트래픽을 모두 지원하는 이중 스택 액셀러레이터는 백엔드에 이중 스택 엔드포인트가 필요합니다. 예를 들어 Application Load Balancer(ALB)는 IP 주소 유형을 IPv4 전용 또는 이중 스택으로 구성하여 IPv4 또는 IPv6 클라이언트 연결을 모두 허용할 수 있습니다. 오늘, 듀얼 스택 ALB는 듀얼 스택 액셀러레이터의 엔드포인트로 지원됩니다.
이중 스택 애플리케이션 배포
이 새로운 기능을 테스트하려면 ALB 진입점이 있는 듀얼 스택 애플리케이션이 필요합니다. 애플리케이션은 Amazon Virtual Private Cloud(VPC)에 배포되어야 하며 IPv6 트래픽을 지원해야 합니다. 내 계정에 IPv6 지원 VPC가 없습니다. 다음 지침에 따라 IPv4만 지원하는 기존 VPC를 IPv6로 마이그레이션하거나 IPv6 주소 지정을 지원하는 VPC를 생성할 수 있습니다. 본 게시물에서는 VPC를 생성하기로 결정했습니다.
AWS Management Console에서 Amazon VPC 대시보드로 이동합니다. [VPC 마법사 시작(Launch VPC Wizard)]을 선택합니다. 마법사에서 Name 태그의 값을 입력합니다. 이 값은 VPC의 모든 리소스에 대해 Name 태그를 자동 생성하는 데 사용됩니다. 그런 다음 [Amazon에서 제공하는 IPv6 CIDR 블록(Amazon-provided IPv6 CIDR block)]을 연결하는 옵션을 선택합니다. 다른 모든 옵션은 기본값으로 두고 [VPC 생성(Create VPC)]을 선택합니다.
1분 이내에 VPC가 준비됩니다. 두 퍼블릭 서브넷의 설정을 편집하여 [자동 할당 IP 설정(Auto-assign IP settings)]을 활성화하여 이 서브넷의 새 네트워크 인터페이스에 대해 퍼블릭 IPv4 주소와 IPv6 주소를 자동으로 요청합니다.
이제 이 VPC에 애플리케이션을 배포하려고 합니다. 애플리케이션이 제 액셀러레이터의 엔드포인트가 될 것입니다. CloudFormation 설명서의 샘플 솔루션 섹션에서 확장 가능하고 내구성이 뛰어난 WordPress AWS CloudFormation 템플릿을 보고 다운로드합니다. 이 템플릿은 ALB 뒤에 전체 WordPress 웹 사이트를 배포합니다. 웹 티어는 확장 가능하며 EC2 오토 스케일링으로 구현됩니다. MySQL 데이터베이스는 Amazon 관계형 데이터베이스 서비스(RDS)가 관리합니다.
스택을 배포하기 전에 템플릿을 편집하여 몇 가지 사항을 변경합니다. 먼저 DBSubnetGroup
에 리소스를 추가합니다.
"DBSubnetGroup" : {
"Type": "AWS::RDS::DBSubnetGroup",
"Properties": {
"DBSubnetGroupDescription" : "DB subnet group",
"SubnetIds" : { "Ref" : "Subnets"}
}
},
그런 다음 DBSubnetGroupName
속성을 DBInstance
리소스에 추가합니다. 이렇게 하면 템플릿에 의해 생성된 데이터베이스가 웹 서버와 동일한 서브넷(및 VPC)에 배포됩니다.
"DBSubnetGroupName" : { "Ref" : "DBSubnetGroup" },
마지막 변경 사항에서는 IpAddressType
속성을 ApplicationLoadBalancer
리소스에 추가하여 IPv6 주소가 있고 Global Accelerator의 새로운 이중 스택 옵션과 함께 사용할 준비가 된 이중 스택 로드 밸런서를 생성합니다.
"IpAddressType": "dualstack",
IpAddressType
이 이중 스택(dualstack)
으로 설정되어 있기 때문에 스택에 의해 생성된 ALB에도 IPv6 주소가 있으며 Global Accelerator의 새로운 이중 스택 옵션과 함께 사용할 수 있습니다
CloudFormation 콘솔에서 스택을 생성하고 방금 편집한 템플릿을 업로드합니다. 템플릿 파라미터에서 사용할 데이터베이스 사용자 및 암호를 입력합니다. VpcId 파라미터로 방금 생성한 IPv6 지원 VPC를 선택합니다. Subnets 파라미터로는 동일한 VPC의 퍼블릭 서브넷 두 개를 선택합니다. 그런 다음, 다음 단계로 이동하여 스택을 생성합니다.
몇 분 후 스택 생성이 완료됩니다. 웹 사이트에 액세스하려면 로드 밸런서에 대한 네트워크 액세스를 열어야 합니다. EC2 콘솔에서 HTTP 및 HTTPS 프로토콜(포트 80 및 443)을 사용하여 퍼블릭 액세스를 허용하는 보안 그룹을 생성합니다.
탐색 창에서 [로드 밸런서(Load balancers)]를 선택하고 나의 애플리케이션에서 사용하는 ALB를 선택합니다. [보안(Security)] 섹션에서 [보안 그룹 편집(Edit security groups)]을 선택하고 방금 만든 보안 그룹을 추가하여 웹 액세스를 허용합니다.
이제 로드 밸런서의 듀얼 스택(A 또는 AAAA 레코드) DNS 이름을 찾습니다. 브라우저를 열고 DNS 이름을 사용하여 연결하여 WordPress 구성을 완료합니다.
엔드포인트에 다시 연결하면 새로운(비어 있는) WordPress 웹사이트가 보입니다.
IPv6 및 IPv4 트래픽을 모두 지원하는 이중 스택 액셀러레이터 사용
이제 애플리케이션이 준비되었으므로 듀얼 스택 ALB 앞에 듀얼 스택 액셀러레이터를 추가합니다. Global Accelerator 콘솔에서 액셀러레이터 생성(Create accelerator)을 선택합니다. 액셀러레이터의 이름을 입력하고 [표준(Standard)] 액셀러레이터 유형을 선택합니다.
이 액셀러레이터를 통해 IPv4와 IPv6를 모두 라우팅하려면 IP 주소 유형으로 이중 스택 옵션을 선택합니다.
그런 다음 TCP 프로토콜을 사용하여 포트 80에 대한 리스너를 추가합니다.
이 리스너의 경우 애플리케이션이 배포된 AWS 리전에 엔드포인트 그룹을 구성합니다.
[엔드포인트 유형(Endpoint type)]으로 [Application Load Balancer]를 선택하고 CloudFormation 스택에서 ALB를 선택합니다.
그런 다음 [액셀러레이터 생성하기(Create accelerator)]를 선택합니다. 몇 분 후 액셀러레이터가 배포되고 클라이언트가 사용하는 네트워크에 따라 IPv4 또는 IPv6를 사용하여 ALB에 도달하는 이중 스택 DNS 이름이 있습니다.
이제 고객은 IPv4 및 IPv6 주소 또는 더 나은 액셀러레이터의 이중 스택 DNS 이름을 사용하여 WordPress 웹 사이트에 연결할 수 있습니다. 고객이 WordPress REST API에 연결하는 데 사용하는 프런트 엔드 또는 모바일 애플리케이션이 있는 경우 클라이언트가 선호하는 IPv4 또는 IPv6 경로를 사용하여 연결하도록 이중 스택 DNS 이름을 사용할 수 있습니다.
Global Accelerator와 ALB 간의 통신이 작동하는지 이해하기 위해 새로운 FlowsDrop Amazon CloudWatch 지표를 모니터링할 수 있습니다. 이 지표는 Global Accelerator가 엔드포인트를 통해 IPv6 트래픽을 라우팅할 수 없는지 여부를 알려줍니다. 예를 들어 액셀러레이터를 만든 후 ALB 구성이 IPv4만 사용하도록 업데이트되는 경우 이러한 상황이 발생할 수 있습니다.
가용성 및 요금
AWS Management Console, AWS Command Line Interface(CLI) 및 AWS SDK를 사용하여 듀얼 스택 액셀러레이터를 구성할 수 있습니다. 듀얼 스택 액셀러레이터를 사용하여 상용 AWS 리전에 배포된 애플리케이션에 대한 액세스를 최적화할 수 있습니다.
프로토콜 변환은 지원되지 않으며 IPv4에서 IPv6로의 변환이나 IPv6에서 IPv4로의 변환도 지원되지 않습니다. 예를 들어 Global Accelerator에서는 IPv4 전용 ALB 엔드포인트가 있는 듀얼 스택 액셀러레이터를 구성할 수 없습니다. 또한 IPv6 ALB 엔드포인트의 경우 클라이언트 IP 보존을 사용하도록 설정해야 합니다.
듀얼 스택 액셀러레이터를 사용하는 데 드는 추가 비용은 없습니다. 액셀러레이터와 주고받는 트래픽에서 사용되는 주요 방향의 데이터 전송 시간 및 양에 대한 비용을 지불합니다. 데이터 전송 비용은 고객의 위치와 애플리케이션을 실행하는 AWS 리전에 따라 다릅니다. 자세한 내용은 Global Accelerator 요금 페이지를 참조하세요.
— Danilo