본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

AWS Ambassador

AWS Global Accelerator의 설정에 따른 상세 구성 및 고려 사항

2023.02.01

1. 개요

AWS Global Accelerator 서비스는 가속 기능을 가진 서비스로, 원래는 서비스의 이름에서 알 수 있듯이 로컬 및 글로벌 사용자가 이를 통해 애플리케이션의 성능을 향상시키거나 custom routing accelerator를 사용하여 하나 이상의 사용자를 여러 대상 중에 특정 대상에 매핑하는 형태로 사용할 수 있는 서비스입니다. 기본적으로 서비스와 연결하기 위한 두 개의 static IP 주소를 제공하며, 해당 static IP는 AWS edge Network 의 Anycast IP입니다.

AWS의 자원 중에 몇 안 되는 static IP 주소 제공이 가능한 특성으로 인해, Application LoadBalancer 가 구성된 애플리케이션에 대한 서비스 Domain의 record를 CNAME와 같이 URL 형태로 등록하지 못하고 A record (IP로 등록) 등록해야 하는 CASE 나 Application LoadBalancer가 구성된 어플리케이션에 대해 방화벽 등의 보안 정책 허용을 도메인 기반이 아닌 IP로만 허용해야 하는 CASE 등에서 Global Accelerator를 활용하여 애플리케이션의 성능 + 아키텍처 설계 상 이점을 얻을 수 있습니다.

  • DNS 동작 방식에 의해 lgcns.com처럼 root domain의 경우 CNAME 설정 불가

이번 포스팅에서는 Global Accelerator 활용 시 설정에 따른 상세 구성을 CASE 별로 TEST 하여 확인하고, 이에 따른 구성 시 고려 사항을 알아보도록 하겠습니다.

2. TEST 구성

2.1 개념도

2.2 설정
기타 VPC 등 기본적인 자원들을 모두 생성한 후, Application LoadBalancer의 경우 아래와 같이 생성 시 internet-facing으로 생성할지, internal로 생성할지 선택하여 각각 TEST를 진행합니다.

Application LoadBalancer까지 생성되었다면, Global Accelerator를 생성합니다. Application LoadBalancer를 Internet-facing으로 생성한 경우 Application LoadBalancer의 DNS Name으로 서비스가 정상인지 사전에 확인이 가능합니다. (이번 TEST에서는 실제 서비스 트래픽이 도착한 최종 EC2 의 AZ를 웹페이지로 띄워주는 단순한 HTTP 80 웹서비스를 구성하였습니다.)

1) Global Accelerator 생성

2) 생성된 Global Accelerator 상태 및 static IP 확인

3) Global Accelerator static IP로 서비스됨을 확인

2.3 설정 후 상세 구성 확인
1) GA (Preserve Client IP Disable) -> Internet-facing ALB
VPC에 추가 AWS 자원이 생성되지 않습니다.

2) GA (Preserve Client IP Enable) -> Internet-facing ALB
아래와 같이 Application LoadBalancer가 속한 Subnet에 Elastic Network Interface가 각각 생성됩니다.

이 밖에도 생성된 Elastic Network Interface에 신규 Security Group이 할당되어 있으나, 별도 Inbound rule은 없고 이 상태에서도 Global Accelerator 서비스 제공에는 이상이 없습니다.

3) GA (with IGW) -> Internal ALB
Internal Application Load Balancers를 Global Accelerator의 endpoint로 등록하는 경우, client IP address preservation은 항상 Enable 되며 이를 Disable 할 수는 없습니다. 아래와 같이 Application LoadBalancer가 속한 Subnet에 Elastic Network Interface가 각각 생성됩니다.

이 밖에도 생성된 Elastic Network Interface에 신규 Security Group 이 할당되어 있으나, 별도 Inbound rule 은 없고 이 상태에서도 Global Accelerator 서비스 제공에는 이상이 없습니다.

4) GA (without IGW) -> Internal ALB
Internet Gateway 가 attach 되어 있지 않은 VPC의 자원을 endpoint로 선택할 수 없습니다.

3. TEST 결과

3.1 결과 정리

3.2 고려 사항
Preserve Client IP 설정에 따라 ALB Subnet에 GA 용 ENI 생성 여부가 결정됩니다. 따라서 ALB가 속한 Subnet에 IP가 부족한 경우, GA 구성이 불가능하므로 사전에 이를 고려하여 설정을 진행해야 합니다.

또한 구성에 따라 ALB 의 SG에 어떤 IP를 허용해야 하는지 고려하여 사전에 SG 설정에 허용해야 할 IP 대역을 허용하는 rule을 등록한 후 GA 설정을 진행하도록 합니다. 특별한 경우가 아니라면 Clinet IP를 GA 백엔드에서 확인할 수 있도록 GA 의 Preserve Client IP 설정은 Enable 하는 것을 권고합니다.

4. 결론

이번 포스팅에서는 Application LoadBalancer가 구성된 애플리케이션에 대해 static IP를 사용해야 하는 요구 조건에서 Global Accelerator를 활용하여 아키텍처 설계/구축 시 설정에 따른 상세 구성 및 고려 사항에 대하여 알아보았습니다.

현재는 static IP를 제공하는 Network LoadBalancer의 Target으로 Application LoadBalancer를 선택할 수 있기 때문에 단지 static IP가 필요하여 Global Accelerator를 반드시 구성해야 할 필요는 없으나, 글로벌 서비스로 세계 여러 지역의 사용자에게 해당 애플리케이션으로 서비스를 제공하는 경우 Global Accelerator 를 활용하면 AWS 의 edge Network 을 사용하면서 custom routing 등 다양한 방식으로 효율적인 서비스 구성이 가능합니다.

따라서 앞서 살펴보았던 상세 구성에 따른 고려 사항을 숙지하여 이를 활용하면 다양한 이점이 얻을 수 있겠습니다.

5. 참고

https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html
https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints.sipp-caveats.html

챗봇과 대화를 할 수 있어요