글로벌 애플리케이션을 서비스 하고 싶다.
그러나 우리 애플리케이션은 오직 한 리전에 배치되어 있다.
전세계의 사용자들은 애플리케이션에 접근할 때 공용 인터넷을 통하게 되는데 라우터를 거치는 동안의 수많은 홉으로 상당한 지연이 발생할 수 있다.
지연 시간을 최소화 하기 위해 최대한 빨리 AWS 네트워크를 통해야 한다. 이때 AWS Global Accelerator를 사용한다
유니캐스트 IP vs 애니캐스트 IP
- 유니캐스트 : 하나의 서버가 하나의 IP주소를 가짐.
- 애니캐스트 : 모든 서버가 동일한 IP주소를 가진다. 클라이언트는 가장 가까운 서버로 라우팅 된다.
Global Accelerator는 애니캐스트 IP개념을 사용한다.
애플리케이션을 라우팅하기 위해 AWS 내부 글로벌 네트워크를 활용한다.
가장 가까운 엣지 로케이션으로부터 내부 AWS 네트워크를 거쳐 ALB나 EC2등의 리소스로 연결된다. 요점은 애니캐스트 IP사용.
애니캐스트 IP는 사용자와 가장 가까운 엣지 로케이션으로 트래픽을 직접 전송한다.
그러면 엣지 로케이션은 훨씬 안정적이고 지연 시간이 적은 사설 AWS 네트워크를 거쳐 트래픽을 전송한다.
Global Accelerator는 어떤 애플리케이션에 대해서도 전 세계의 유저들에게 두 개의 고정 IP 주소를 제공한다.
👉🏻 CloudFront는 이미지나 비디오처럼 캐시 가능한 내용과 API 가속 및 동적 사이트 전달 같은 동적 내용 모두에 대해 엣지 로케이션으로부터 제공되어 성능을 향상시킨다.
CloudFront는 캐시된 내용을 엣지로부터 가져와서 전달한다.
즉 사용자들은 엣지로부터 내용을 받는 것이다.
👉🏻 Global Accelerator는 TCP나 UDP상의 다양한 애플리케이션 성능을 향상시킨다. 그러나 패킷은 엣지 로케이션으로부터 하나 이상의 AWS 리전에서 실행되는 애플리케이션으로 프록시된다. 이 경우에는 모든 요청이 애플리케이션 쪽으로 전달된다. 캐싱은 불가능하다. 따라서 게임이나 IoT 또는 Voice over IP 같은 비 HTTP를 사용할 경우에 매우 적합하다. 글로벌하게 고정 IP를 요구하는 HTTP를 사용할 때도 매우 유용하다. 또는 결정적이고 신속한 리전 장애 조치가 필요할 때도 좋다.
무료가 아님. 과금주의.
Global Accelerator는 어떤 리전에서 생성되든 상관없다. 이미 구성된 리전으로 가기 때문에.
이름을 입력하고 리스너를 설정한다.
리스닝 하게 될 포트와 프로토콜을 설정한다.
클라이언트 밀접성(Client affinity)은 글로벌 밸런서에 고정을 원할 때 설정한다. (동일한 사용자가 동일한 엔트포인트로 돌아가도록 할 때 사용)
원한다면 다수의 리스너를 설정할 수도 있다.
리전별로 엔드 포인트를 그룹화하는 것이다.
트래픽 다이얼은 가중치인데 가중치별로 트래픽이 해당 리전으로 간다.
그리고 상태 체크를 설정한다.(ALB가 엔드포인트일 경우 ALB의 상태 확인을 활용한다.)
엔드 포인트를 여러개 만들 수 있다.(EC2 인스턴스가 일본에 하나, 서울에 하나일 때 엔드포인트를 리전마다 하나씩 생성)
생성을 마치면 두개의 고정 IP주소를 볼 수 있다. 이 두 IP주소는 애플리케이션에 접근하기 위한 글로벌 애니캐스트 IP주소가 된다.
Global Accelerator가 계정에서 실행되는 동안 삭제되기 전까지 0.025달러를 지불한다.
전송요금도 있다. 리전과 목적지에 따라 GB당 0.01달러에서 매우 비싼 요금까지 유동적으로 과금될 수 있다.