Global users for our application
- AWS Global Accelerator에 대해 설명하기 전에 우리가 해결할 문제가 무엇인지 그리고 어떻게 해결 할 수 있는지 먼저 이야기 해봅시다.
- 우리는 애플리케이션을 배치했고, 글로벌 애플리케이션이고 글로벌 사용자들이 직접 접근하려고 합니다. 그러나 우리 애플리케이션은 오직 한 리전에만 배치되어 있습니다.
- 예를 들면, 인도에서 공용 애플리케이션 로드 밸런서를 배치했다고 하자.
반면에 사용자들을 전 세계에 걸쳐 있다. 미국에도 있고, 유럽과 오스트레일리아에도 있다. 사용자들이 애플리케이션에 접근할 땐느 공용 인터넷을 통하게 되는데 라우터를 거치는 동안의 수 많은 홉으로 인해 상당한 지연이 발생할 수 있다. - 미국을 보면, 인도의 공용 ALB에 도달하기 전에 다섯 개의 홉, 즉 라우터 또는 서버들이 있다. 이는 공용 인터넷을 거치기 때문이다. 오스트레일리아에도 많은 홉이 있고 유럽도 마찬가지이다.
- 이 홉들은 위험 요소가 될 수 있다. 연결이 끊길 수 있기 때문이다. 또한 지연시간도 발생하게 된다. Amazon 인프라에 최대한 직접적으로 접근하는 것도 아니다.
따라서 지연 시간을 최소화하기 위해 최대한 빨리 AWS 네트워크를 통하는 것이 좋다.
이를 위해서는 Global Accelerator를 사용한다.
Unicast IP vs Anycast IP
Unicast IP(유니캐스트 IP)
- 하나의 서버가 하나의 IP 주소를 가진다. 따라서 클라이언트가 두 개의 서버와 통신할 때 왼편 서버의 IP 주소는 숫자 12로 시작하고, 반대편은 98로 시작한다. 우리가 12로 시작하는 IP주소를 참조한다면 왼편의 서버로 연결되고 반대편 IP를 사용하면 오른편의 서버로 연결될 것이다.
Anycast IP(애니캐스트 IP)
- 모든 서버가 동일한 IP 주소를 가지며 클라이언트는 가장 가까운 서버로 라우팅된다. 그리 직관적이진 않지만 위의 이미지처럼 작동한다. 클라이언트와 두 개의 서버가 있고 위에처럼 이 두 개의 서버는 아래 쪽에 있는데 IP가 동일하다. 클라이언트가 이 애니캐스트 IP로 접속을 시도하면 자신과 가장 가까운 서버로 연결된다.
- Global Accelerator는 이 애니캐스트 IP 개념을 사용한다.
AWS Global Accelerator
- 애플리케이션을 라우팅하기 위해 AWS 내부 글로벌 네트워크를 활용한다.
- 사용자들이 전 세계에 걸쳐 있고 우리는 인도로 라우팅 하고 싶다. 그리고 미국의 공용 인터넷을 거쳐서 보내는 대신에 가장 가까운 엣지 로케이션과 통신할 것이다. 엣지 로케이션으로부터 내부 AWS 네트워크를 거쳐 ALB로 곧장 연결된다. 오스트레일리아도 동일하다. 오스트레일리아 인근의 엣지 로케이션으로 가서 사설 AWS 네트워크를 거쳐 ALB에 도달한다. 유럽도 마찬가지이다.
- 즉, 요점은 애니캐스트 IP를 사용한다는 것이다. 사실, 애플리케이션을 위해 두 개가 생성되는데 둘 다 글로벌하다.
- 애니캐스트 IP는 사용자와 가장 가까운 엣지 로케이션으로 트래픽을 직접 전송한다.
= 이 부분이 애니캐스트 IP의 장점이다. - 엣지 로케이션은 훨씬 안정적이고 지연 시간이 적은 사설 AWS 네트워크를 거쳐 애플리케이션 로드 밸런서로 트래픽을 전송한다. Global Accelerator는 어떤 애플리케이션에 대해서도 전 세계의 유저들에게 두 개의 고정 IP 주소를 제공할 수 있도록 해준다는 점에서 매우 독특하다.
- 위의 예시는 한 리전에 있는 한 ALB만 보여드렸지만 이는 글로벌해 질 수 있으며 다수의 ALB나 리전이 될 수도 있다.
Global Accelerator은 무엇과 함께 작동할까?
- 탄력적 IP, EC2 인스턴스, ALB, NLB, 공용 or 사설과 함께 작동할 수 있다. 네트워크를 거치기 때문에 안정적인 성능을 보여준다.
- 지능형 라우팅으로 지연 시간이 가장 짧은 엣지 로케이션으로 연결되며 뭔가 잘못된 경우에는 신속한 리전 장애 조치가 이루어질 것이다. 우리가 사용하는 두 개의 애니캐스트 IP는 변하지 않는다. 엣지 로케이션 다음에 내부 AWS 네트워크가 오기때문에 완벽하다.
- 상태 확인
- Global Accelerator가 애플리케이션에 대해 상태 확인을 실행할 것이다.
- 애플리케이션이 글로벌한지도 확인한다. 한 리전에 있는 한 ALB에 대해 상태 확인을 실패하면 자동화된 장애 조치가 1분 안에 정상 엔드 포인트로 실행된다.
- 재해 복구에 특히 뛰어나다. - 보안
- 클라이언트가 화이트리스트에 포함하는 단 두 개의 외부 IP만 존재하기 때문에 보안 측면에서도 매우 안전하다.
- DDoS 보호도 자동으로 받게 된다.
Global Accelerator vs CloudFront
- 둘 다 동일한 글로벌 네트워크를 사용한다.
- 둘 다 AWS가 생성한 전 세계의 엣지 로케이션을 사용한다.
- 둘 다 DDoS 보호를 위해 둘 다 AWS Shield와 통합된다.
CloudFront
- 이미지나 비디오처럼 캐시 가능한 내용과 API 가속 및 동적 사이트 전달 같은 동적 내용 모두에 대해 성능을 향상시킨다. 그리고 이 내용은 엣지 로케이션으로부터 제공된다. 따라서 엣지 로케이션은 가끔 한번씩 출처로부터 내용을 가져올 것이다.
- 대부분의 경우에 CloudFront는 캐시된 내용을 엣지로부터 가져와서 전달한다. 즉, 사용자들은 엣지로부터 내용을 받는 것이다.
Global Accelerator
- TCP나 UDP상의 다양한 애플리케이션 성능을 향상시킨다.
- 패킷은 엣지 로케이션으로부터 하나 이상의 AWS 리전에서 실행되는 애플리케이션으로 프록시된다. 이 경우에는 모든 요청이 애플리케이션 쪽으로 전달되고 캐싱은 불가능하다.
- 따라서 우리가 게임이나 IoT 또는 Voice over IP 같은 비 HTTP를 사용할 경우에 매우 적합하다. - 글로벌하게 고정 IP를 요구하는 HTTP를 사용할 때도 매우 유용하다.
- 결정적이고 신속한 리전 장애 조치가 필요할 때도 좋다.
'AWS(Amazon Web Service)' 카테고리의 다른 글
[AWS] AWS 스토리지 추가 기능 - Amazon FSx (0) | 2024.11.16 |
---|---|
[AWS] AWS 스토리지 추가 기능 - Snow Family (5) | 2024.11.15 |
[AWS] CloudFront (1) | 2024.11.13 |
[AWS] Amazon S3 - Object Lambda (0) | 2024.11.12 |
[AWS] Amazon S3 - Access Points (0) | 2024.11.11 |