BLOG

AWS Global Accelerator 기능 활용하기: 간단한 방식으로 프라이빗 ALB 및 EC2 인스턴스에 액세스
작성일: 2020-05-15

많은 CDN (Content Distribution Network)은 일반적으로 origin cloaking이라고 하는 기능을 통해 소스 출처를 감추는 기능을 제공합니다. AWS Global Accelerator 와 Client IP Address Preservation를 사용하면 유사한 기능을 쉽게 구현하실 수 있습니다. Global Accelerator를 통해 Private Application Load Balancers (ALB) 및 private EC2 instances에 안전하고 단순화된 방식으로 액세스할 수 있습니다.

 

AWS Global Accelerator는 AWS 글로벌 네트워크를 사용하여 글로벌 애플리케이션 가용성 및 성능을 향상시키는 AWS 서비스입니다. Client IP Address Preservation 기능을 사용하면 Global Accelerator를 단일 또는 여러 AWS 리전에서 실행되는 애플리케이션의 단일 인터넷 연결 액세스 포인트로 만들 수 있습니다. 애플리케이션은  AWS Shield를 통해 분산 서비스 거부 (DDoS) 공격으로부터 중앙에서 보호됩니다. 최종 사용자가 응용 프로그램에 도달하는 방법을 보다 강력하게 제어할 수도 있습니다.

 

이 블로그 게시물에서는 구현 모범 사례를 살펴보고 제어된 환경에서 클라이언트 IP 주소 보존 기능을 사용하는 방법을 안내합니다. 또한 origin cloaking기능이 적합하지 않을 수 있는 규제되거나 통제된 환경에서 액세스를 제한하는 방법에 대해서도 설명합니다.

 

 

AWS Global Accelerator에서의 작동 방식

AWS Global Accelerator의 IP 보존 기능은 origin cloaking기능을 위한 핵심입니다. IP 보존에 관한 Jeff Barr의 blog 포스트에 ALB (Application Load Balancer) 기능을 구현하는 방법이 나와 있습니다.

 

기본적으로 elastic network interface (ENI)는 프라이빗 ALB 또는 프라이빗 인스턴스를 포함하는 각 가용 구역 내에 생성됩니다. 트래픽은 AWS Global Accelerator elastic network interface백엔드 인스턴스 또는 ALB로 이동합니다. 연결이 모니터링되고 리턴 트래픽은 AWS Global Accelerator elastic network interface를 통해 동일한 경로를 따릅니다. ALB에 대한 트래픽 흐름은 아래 다이어그램에 나와 있습니다.

 

 

프라이빗 인스턴스의 데이터 흐름은 유사하며 아래 다이어그램에 나와있습니다.

 

 

두 데이터 흐름에서 인스턴스는 인터넷으로 라우팅 되지 않고 비공개로 유지됩니다. Global Accelerator ENI 및 인스턴스는 동일한 서브넷에 표시되지만 보다 세분화된 트래픽 제어를 위해 별도의 라우팅 테이블이 필요한 경우 여러 서브넷에 있을 수 있습니다. 다음 섹션에서는 프라이빗 VPC 리소스에 대한 액세스를 제한하는 방법에 대해 자세히 알아보겠습니다.

 

 

프라이빗 VPC 리소스 액세스를 제한하는 방법

인터넷 트래픽이 실수로 프라이빗 서브넷으로 유입되는 것을 방지하려면 client address-preserving accelerator가 생성될 때 인터넷 게이트웨이가 리소스가 포함된 VPC에 연결되어 있어야 합니다. 인터넷 게이트웨이에 관련 서브넷 경로 테이블 또는 해당 문제에 대한 서브넷 경로 테이블에 경로가 필요하지 않습니다. 서브넷은 기본적으로 개인용으로 유지됩니다. (즉, 인터넷 게이트웨이로 라우팅되지 않음) 이를 통해 기존의 IGW 점검을 수행한 조직은 네트워크 보안 경계를 유지하고 감사할 수 있습니다.

 

생성된 Global Accelerator ENI는 AWS Global Accelerator 서비스와의 트래픽만 허용합니다. 인터넷에 대한 모든 유형의 광범위한 액세스를 허용하지 않습니다. 연결이 논리적인 경우에도 (예: UDP 트래픽의 경우) 인바운드 연결만 허용합니다. ALB 또는 인스턴스에 대한 액세스는 보안 그룹 및 네트워크 액세스 제어 목록 (NACL)에 의해 계속 관리됩니다. NACL 및 보안 그룹은 트래픽을 허용하기 위해 세분화된 제어를 제공합니다. 보안 그룹을 사용하면 특정 공용 IP 주소를 허용된 것으로 정의될 수 있습니다. NACL을 사용하면 트래픽이 특정 아웃 바운드 IP 주소에 대한 액세스를 명시적으로 거부할 수도 있습니다.

 

Global Accelerator로 IP 클라이언트 보존을 구현하는 모범 사례는 여기를 참고하세요.

 

 

기능을 비활성화하는 방법

조직 차원에서 VPC에 대한 인터넷 연결을 제한하고 제어하고자 하는 고객을 위한 몇 가지 옵션을 제공합니다. AWS Organization은 SCP (서비스 제어 정책)를 지원합니다. 이를 통해 조직 단위 (OU) 차원에서 정책을 적용하여 AWS 리소스에 대한 액세스를 관리할 수 ​​있습니다.

 

인터넷에서 액세스할 수 있는 작업을 방지하기 위해 SCP를 만들 수 있습니다. 이러한 정책의 예시는 여기에서 확인하시면 됩니다. 제한된 계정에서의 Global Accelerator액세스를 방지하기 위해서 globalaccelerator:Create* and globalaccelerator:Update*와 같은 작업은 SCP에 거부되어야 합니다.

 

 

결론

Global Accelerator로 IP address source를 보존하면 글로벌 애플리케이션을 배포하기 위한 새로운 기능을 사용하실 수 있습니다. 인터넷에 노출되는 단일 액세스 지점을 허용하기 위해 Global Accelerator를 통해 orgins을 숨길 수 있습니다.

 

 

 

원문URL: https://aws.amazon.com/ko/blogs/networking-and-content-delivery/accessing-private-application-load-balancers-and-instances-through-aws-global-accelerator/

** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.