AWS Global Accelerator

강재민·2022년 11월 15일
0

AWS실습

목록 보기
12/12

Global Accelerator란?

AWS Global Accelerator는 당신의 글로벌과 로컬한 사용자가 있는 당신의 어플리케이션의 성능을 향상시켜주기 위해 가속화시키는 장치이다. 당신이 선택한 accelerator의 종류에 따라서 추가적인 이로움을 얻을 수 있다.

  • standard accelerator에서, 당신은 글로벌한 audience에 의해 사용되는 당신의 인터넷 어플리케이션의 가용성을 향상시킬 수 있다. standard accelerator에서, Global Accelerator는 고객의 가장 가까운 리젼에 AWS 글로벌 네트워크를 endpoints로 연결시키도록 직접 트래픽을 보낸다.

  • custom routing accelerator에서, 당신은 많은 destinations 사이에서 특정한 destination으로 하나 또는 그 이상의 유저에서 맵핑 할 수 있다.

Global Accelerator는 AWS의 멀티리전에 endpoint를 지원하는 글로벌 서비스이다. 만약 Global Accelerator 또는 다른 서비스들이 현재 특정 AWS리전에서 지원받고 있는지 확인하고 싶다면, 아래 링크의 AWS Reginal Services List를 확인해보고 결정해보자.

https://aws.amazon.com/ko/about-aws/global-infrastructure/regional-product-services/

기본적으로, Global Accelerator는 당신이 사용하고있는 accelerator와 연동된 당신의 static IP Adresses를 제공한다. The static IP addressesAWS edge network로부터의 anycast이다. IPv4에서, Global Accelerator는 2개의 static IPv4 adresses를 제공한다. dual-stack에서, Global Accelerator는 총 4개의 adresses를 제공하는데, 2개의 IPv4 adresses 그리고 2개의 IPv6 adresses이다. IPv4에서, Global Accelerator가 제공한 주소를 사용하는 대신에, BYOIP(Bring Your Own IP) 당신 소유의 IP adress 범위를 entry point로 구성할 수 있다.

중요사항
The static IP adresses는 만약 accelerator가 사용 불가하고 트래픽을 route하거나 accept하지 못하더라도, 존재동안 오래 accelerator에 할당된 상태로 남아있다. 하지만, accelerator를 지울 때, 당신은 할당된 the static IP adresses을 잃는다. 그래서 당신은 더이상 트래픽을 그것들로부터 라우트할 수 없다. 당신은 IAM 정책들을 사용할 수 있다. accelerator를 지우는 권한을 가진 사용자를 제한하기위해 Global Accelerator에 tag에 기반한 권한같은 식으로 정책을 사용할 수 있다.
태그 기반 정책에 대해 더 알아보려면 아래 링크로 접속하면 된다.
https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html#access-control-manage-access-tag-policies

standard accelerators에서, Global Accelerator는 health, client location, 당신의 어플리케이션의 가용성을 늘리기 위한 구성요소에 기반하여 최적의 지역 endpoint에 트래픽을 route하기 위해 the AWS global network를 사용한다. standard accelerator의 Endpoints는 Network Load Balancers, Application Load Balancers, Amazon EC2 instances, 또는 AWS의 한 개 리전 또는 멀티리전에 위치된 Elastic IP addresses가 될 수 있다. 이 서비스는 health 또는 구성의 변경사항에 즉각적으로 반응하여 클라이언트의 인터넷 트래픽이 항상 정상 엔드포인트에 전달되도록 합니다.


AWS Global Accelerator 구성요소

Static IP addresses

기본적으로, Global Accelerator는 당신의 accelerator에 할당한 static IP adresses를 제공합니다. The static IP adressesthe AWS edge network로부터 anycast 됩니다. IPv4에서, Global Accelerator는 2개의 static IPv4 adresses를 제공합니다. dual-stack에서, Global Accelerator는 총 4개의 adresses를 제공합니다 ; 두 개의 static IPv4 adresses 그리고 2개의 static IPv6 adresses입니다. 만약 BYOIP를 사용한다면 (IPv4만 가능) 당신은 당신의 accelerator에 사용자풀로부터 IPv4 adresses를 할당할 수 있습니다.
BYOIP에 대한 더 자세한 정보는 아래 링크에 있습니다.
https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html

The IP addresses는 당신의 clients에게 단일 고정 진입점을 제공합니다. 만약 당신이 이미 Elastic Load Balancing load balancers, Amazon EC2 instances, or 당신의 어플리케이션에 set up 된 Elastic IP adress resources가 이미 있다면, 당신은 쉽게 그것들을 Global Accelerator의 standard accelerator에 추가할 수 있습니다. 이것은 resources에 접근하기 위한 static IP adresses를 사용하는 Global Accelerator를 허용합니다.

The static IP adresses는 만약 accelerator가 사용불가능하고 트래픽을 route하거나 accept하지 않아도 존재하는 한, 당신의 accelerator에 할당된 채로 남아있습니다. 하지만, accelerator를 삭제했을 때, 당신은 할당했던 static IP adresses들을 잃어버리게 됩니다. 그러면 더이상 그것들을 사용해서 트래픽을 route할 수 없습니다. 그래서 당신은 더이상 트래픽을 그것들로부터 라우트할 수 없다. 당신은 IAM 정책들을 사용할 수 있다. accelerator를 지우는 권한을 가진 사용자를 제한하기위해 Global Accelerator에 tag에 기반한 권한같은 식으로 정책을 사용할 수 있다.
태그 기반 정책에 대해 더 알아보려면 아래 링크로 접속하면 된다.
https://docs.aws.amazon.com/global-accelerator/latest/dg/auth-and-access-control.html#access-control-manage-access-tag-policies

Accelerator

Accelerator는 AWS 글로벌 네트워크를 통해 최적의 엔드 포인트로 트래픽을 전달하여 인터넷 애플리케이션의 가용성과 성능을 향상시킵니다.

DNS name

Global Accelerator는 각각의 accelerator에 기본 DNS이름을 할당합니다. 마치 a1234567890abcdef.awsglobalaccelerator.com 이런 형태입니다. 이 주소는 당신 또는 BYOIP 범위에서 당신이 선택한것으로 할당합니다. static IP addresses로 연결합니다. If you have a dual-stack accelerator, Global Accelerator also assigns you a dual-stack DNS name, similar to a1234567890abcdef.dualstack.awsglobalaccelerator.com that points to the four static IP addresses for your dual-stack accelerator.

Network Zone

물리적인 인프라 기반의 격리된 네트워크 영역으로 AWS 가용 영역과 유사하며, Accelerator에 2개의 고정 IPv4 주소를 제공합니다.

Listener

Listener는 프로토콜(TCP/UDP)과 포트(1-65535)를 기반으로 accelerator로 들어오는 인바운드 트래픽을 처리합니다. 각 listener에는 하나 이상의 엔드포인트 그룹을 포함하여 그룹내의 최적의 엔드포인트로 트래픽을 분배할 수 있습니다.

Endpoint group

엔드포인트 그룹은 사용자가 지정한 특정 AWS 리전과 연결(1:1 매핑)한다. 엔드포인트 그룹에는 하나 이상의 엔드포인트가 포함되며, 트래픽 다이얼 설정으로 엔드포인트 그룹으로 전달되는 트래픽의 비율을 백분율 기준으로 늘리거나 줄일 수 있습니다. 이를 이용하여 A/B 테스트, 블루/그린 배포를 손쉽게 수행할 수 있습니다.

Endpoint

Accelerator와 연결될 EIP, NLB, ALB를 말합니다. 엔드포인트의 상태와 가중치 같은 옵션을 포함한 여러 가지 요소를 기반으로 엔드포인트로 트래픽을 라우팅합니다.


장점

AWS Global Accelerator 사용하지 않을 경우


AWS Global Accelerator를 사용하지 않을 경우, 애플리케이션을 이용하기 위해 수많은 네트워크를 거칠 수 있습니다. 애플리케이션을 오가는 경로 또한 서로 다를 수있습니다. 이러한 현상으로 생기는 각 hop들은 전체 성능에 영향을 주며 위험을 초래할 수 있습니다.

AWS Global Accelerator 사용할 경우


AWS Global Accelerator를 사용할 경우 위에서 언급한 비효율적인 부분을 제거할 수 있습니다. Global AWS 네트워크를 활용하여 성능을 개선할 수 있습니다.


활용 분야 및 사례

즉각적인 리전별 장애 조치

자동으로 애플리케이션의 상태를 확인하고 사용자의 트래픽을 정상적인 애플리케이션 엔드포인트로만 라우팅합니다. 상태가 변경되거나 구성을 업데이트하는 경우, AWS Global Accelerator가 즉각적으로 대응하여 사용자를 다음 가용 엔드포인트로 라우팅합니다.

고가용성

AWS Global Accelerator 를 프로비저닝하면 독립적 네트워크 영역에서 서비스되는 2 개의 IPv4 고정 IP 주소가 할당됩니다. 격리된 네트워크 영역에서 고유한 IP 서브넷에 고정 IP 주소가 제공되어, 1 개의 IP를 사용할 수 없을 경우 AWS Global Accelerator 가 다른 격리된 네트워크 영역의 정상적인 고정 IP 주소로 다시 라우팅하는 과정을 통해 클라이언트 애플리케이션에 내결함성을 제공합니다.

IP 주소를 캐싱하는 클라이언트에 따라 달라지지 않음

AWS Global Accelerator 는 클라이언트 디바이스의 IP 주소 캐싱 설정에 의존하지 않습니다. 이는 변경된 사항을 전파하는 수 초내로 가능하므로 애플리케이션의 가동 중단 시간을 최소화할 수 있습니다.

지연 시간에 민감한 애플리케이션 가속화 및 성능 개선

게임, 미디어, 모바일 애플리케이션 및 금융 애플리케이션과 같은 대다수 애플리케이션은 지연 시간이 매우 낮아야 더 나은 사용자 경험을 제공할 수 있습니다. 사용자 환경을 개선하기 위해 AWS Global Accelerator는 사용자 트래픽을 가장 가까운 애플리케이션 엔드포인트로 클라이언트로 직접 전달함으로써 인터넷 대기 시간과 지터를 줄입니다. Anycast를 통해 트래픽을 가장 가까운 엣지 로케이션으로 라우팅한 다음 AWS 글로벌 네트워크 전체에서 가장 가까운 리전 엔드포인트로 라우팅합니다. AWS Global Accelerator는 네트워크 성능의 변화에 빠르게 대응하여 사용자 애플리케이션 성능을 개선합니다.

관리 용이성

고정 IP 주소는 변경되지 않으며 애플리케이션에 단일 진입점으로 제공됩니다. 이는 DNS 구성을 업데이트하거나 클라이언트 애플리케이션을 변경하지 않고도 가용 영역 간에 또는 AWS 리전 간에 엔드포인트를 손쉽게 이동할 수 있게 합니다. 이를 활용하여 A/B 테스트, 블루/그린 배포, 장애 조치 시뮬레이션,등의 작업을 편리하게 할 수 있습니다. 또한 Amazon IP 주소 풀의 고정 IP 주소를 사용하거나 AWS Global Accelerator에서 기존 보유 IP 주소를 사용(BYOIP)할 수 있습니다.

세분화된 제어

AWS Global Accelerator 를 사용하면 리전별 엔드포인트 그룹에 가중치를 설정할 수 있습니다. 이를 활용하면 특정 AWS 리전에 대한 트래픽의 양을 늘리거나 줄일 수 있어 애플리케이션 업데이트 릴리즈, A/B 테스트 등을 진행할 때 트래픽 제어가 쉬워집니다


제약사항

일반 제약 사항

당신의 AWS 계정은 AWS Global Accelerator와 연관된 limits로 알려진 특정한 제약사항이 있다.

Service Quotas 콘솔은 Global Accelerator 제약사항에 대한 정보를 제공한다. 기본 제약사항 보기에 따라서, 당신은 조절가능한 할당량의 할당량 증가를 요청하기위해 Service Quotas 콘솔을 사용할 수 있다.

https://us-east-1.console.aws.amazon.com/servicequotas/home/services/globalaccelerator/quotas

기억해라 당신은 Global accelerator에 할당량 증가를 요청할 때 US East에 위치한 상태여야 한다.

자세한 내용은 아래 링크를 확인해라.
https://docs.aws.amazon.com/global-accelerator/latest/dg/limits-global-accelerator.html

사용 가능 리전

아래 링크를 통해 해당 리전에서 서비스가 사용 가능한지 확인할 수 있다.

https://aws.amazon.com/ko/about-aws/global-infrastructure/regional-product-services/


AWS Global Accelerator의 요금

AWS Global Accelerator에서, 당신은 오직 사용한 만큼만 지불합니다. 시간 단위 그리고 당신 계정의 각 accelerator의 data 전송 비용에 따라 비용이 변경됩니다. 더 많은 정보를 원한다면 아래 링크를 들어가보세요

https://aws.amazon.com/ko/global-accelerator/pricing/


Architecture

Training Architecture

  • EC2를 엔드포인트로 설정 - Step 2
  • EIP를 엔드포인트로 설정 - Step 3
  • ALB를 엔드포인트로 설정 - Step 4
  • NLB를 엔드포인트로 설정 - Step 5

Global Accelerator 시작하기

지금까지 AWS Global Accelerator의 개념, 구성요소 등에 대해 살펴보았습니다. 다음으로, AWS Global Accelerator를 실제 구성하는 과정을 알아보겠습니다. 과정은 AWS console을 통해 진행하였으며, 구축 테스트를 진행하실 때의 화면과 다를 수 있습니다.


Step 0. 사전 준비

AWS Global Accelerator를 구성하기 전에 아래의 리소스를 사전에 구성하도록 합니다.

VPC 관련 리소스

  • Public Subnet 2개 (서로 다른 가용영역)
  • Private Subnet 2개 (서로 다른 가용영역)
  • NAT Gateway (Public Subnet에 배치)
  • Security Group (상세 설정은 하단에서 설명)
  • EIP

EC2 관련 리소스 (인스턴스 엔드포인트의 경우 퍼블릭, 프라이빗 서브넷에 따른 제약사항 존재X)

  • Public Subnet에 EC2 인스턴스 2대 (Amazon Linux 2, t2.micro, EIP 연결, apache 설치 및 실행)
  • Private Subnet에 EC2 인스턴스 2대 (Amazon Linux 2, t2.micro, apache 설치 및 실행)
  • Load Balancers: ALB (Target Group: Private instance-1), NLB 배치 (Target Group: Private instance-2)

예제는 알아서.. 써보세요ㅎㅎ

0개의 댓글