1. 문제: 베트남에서 갑작스러운 느림
지난주, 내 웹사이트는 베트남에서 접근할 때 갑자기 매우 느려졌습니다. 보통 내 페이지는 2초 이내에 로드되지만, 이번에는 10초에서 15초가 걸리거나 아예 타임아웃이 발생했습니다. 내 웹사이트를 호스팅하는 서버는 미국 (us-east-1 지역)에 위치해 있어 아시아의 사용자들은 여러 국제 인터넷 경로를 통해 접근해야 합니다.
조사해보니, 이 지역의 주요 해저 인터넷 케이블 중 하나인 아시아-태평양 게이트웨이 (APG)에 문제가 발생했습니다. 베트남 인터넷 서비스 제공업체의 정보에 따르면, APG 케이블의 관리 유닛이 S3 지점에서 문제가 발생했다고 감지했습니다. 이 지점은 중국 충밍섬에서 약 66킬로미터 떨어진 곳에 위치해 있습니다. 이 지점은 동남아시아의 일부를 일본과 미국으로 연결합니다. 이 사건은 베트남과 국제 목적지 간의 트래픽을 방해하여 연결이 더 긴 경로나 혼잡한 경로로 우회하게 만들었고, 높은 지연 시간과 불안정한 속도를 초래했습니다.

2. 첫 관찰: CDN은 도움이 되었지만 충분하지 않음
내 사이트는 이미 이미지, CSS, JavaScript와 같은 정적 자산을 제공하기 위해 AWS CloudFront를 사용하고 있습니다. 이 파일들은 여전히 빠르게 로드되고 있습니다. 왜냐하면 CloudFront는 베트남과 가까운 엣지 로케이션, 즉 싱가포르에 위치하고 있기 때문입니다.
하지만 내 사이트의 HTML 페이지는 동적으로 생성되어 미국의 웹 서버에서 직접 제공됩니다. 이러한 요청은 여전히 공용 인터넷을 통해 이동해야 했고, 이는 케이블 문제의 영향을 받았습니다. 이로 인해 페이지 렌더링이 느려지고 대기 시간이 길어졌습니다.
더 신뢰할 수 있는 동적 콘텐츠 제공 방법을 찾기 시작했고, 해결책을 발견했습니다: AWS Global Accelerator.
3. AWS Global Accelerator란?
AWS Global Accelerator는 전 세계적으로 애플리케이션의 성능과 가용성을 향상시키는 네트워크 서비스입니다. 이는 사용자 트래픽을 아마존의 개인 글로벌 네트워크를 통해 라우팅하여 예측할 수 없는 공용 인터넷에만 의존하지 않도록 합니다.
AWS는 대륙 간 데이터 센터를 연결하는 세계에서 가장 크고 가장 발전된 개인 백본 네트워크 중 하나를 운영합니다. Global Accelerator를 사용하면 사용자의 요청이 가장 가까운 AWS 엣지 로케이션에서 이 개인 네트워크에 진입하고, AWS의 백본을 통해 직접 서버로 이동합니다. 이는 지연 시간을 크게 줄이고 불안정한 경로를 피합니다.

4. 작동 방식 (간단한 설명)
웹사이트에 AWS Global Accelerator를 활성화하면, AWS는 두 개의 정적 Anycast IP 주소를 제공합니다. 이 주소는 전 세계적으로 귀하의 전체 애플리케이션을 나타냅니다.
누군가 귀하의 사이트를 방문할 때 발생하는 일은 다음과 같습니다:
- 베트남의 사용자가 브라우저에 귀하의 도메인 이름을 입력합니다.
- DNS가 귀하의 도메인을 AWS Global Accelerator에서 제공하는 Anycast IP 중 하나로 해석합니다.
- 이 IP들은 전 세계의 여러 AWS 엣지 로케이션에서 광고되므로, 사용자의 요청은 자동으로 가장 가까운 AWS 엣지 노드(예: 싱가포르)로 라우팅됩니다.
- 그 엣지 노드에서 요청은 AWS의 개인 글로벌 네트워크를 통해 미국의 애플리케이션 서버로 안전하게 이동합니다.
- 응답은 동일한 최적화된 경로를 따라 다시 전송됩니다.
이로 인해 홉 수가 최소화되고 혼잡한 국제 경로를 피할 수 있어, 사용자들은 글로벌 인터넷 중단 상황에서도 훨씬 빠르고 안정적인 연결을 경험할 수 있습니다.
5. Anycast IP란?
전통적인 설정에서는 서버가 하나의 IP 주소를 가지고 있으며, 이 주소는 하나의 물리적 위치에 호스팅됩니다. 전 세계의 모든 사용자는 그 주소에 직접 연결됩니다. 사용자가 얼마나 멀리 떨어져 있든지 상관없이 말이죠.
하지만 Anycast를 사용하면 동일한 IP 주소가 서로 다른 지역의 여러 서버(이를 엣지 노드라고 함)에서 발표됩니다. 인터넷 라우팅 프로토콜은 각 사용자의 요청을 네트워크 거리 측면에서 가장 가까운 엣지 노드로 자동으로 전송합니다.
여러 개의 "앞문"이 있는 것처럼 상상할 수 있습니다. 하나는 싱가포르에, 하나는 도쿄에, 하나는 런던에, 하나는 미국에 위치해 있으며, 모두 동일한 IP 주소를 공유합니다. 사용자는 항상 가장 가까운 문에 연결하고, AWS의 개인 네트워크가 나머지 경로를 귀하의 원본 서버로 운반합니다.
이로 인해 다음과 같은 결과가 발생합니다:
- 원본 서버에서 멀리 떨어진 사용자에게 더 낮은 지연 시간.
- 더 예측 가능한 네트워크 성능.
- 하나의 엣지 노드가 사용 불가능해지면 트래픽이 빠르게 다른 경로로 우회할 수 있어 더 나은 장애 허용.
6. 결과: 눈에 띄는 개선
AWS Global Accelerator를 설정한 후, 차이는 분명했습니다.
내 웹 서버는 여전히 미국에 있지만, 베트남, 태국, 싱가포르, 인도네시아의 사용자들은 이제 불안정한 공용 인터넷 경로를 통과하는 대신 가장 가까운 AWS 엣지 로케이션을 통해 연결됩니다.
- 평균 지연 시간이 약 350 ms에서 160 ms로 감소했습니다.
- 페이지 로드 시간이 10초 이상에서 약 2초로 개선되었습니다.
- 가용성이 증가했습니다. 하나의 AWS 엣지 경로가 혼잡해지거나 실패하면 트래픽이 자동으로 다른 경로로 우회합니다.
사실, 사이트는 이제 케이블 사건 이전보다 더 빠르게 로드됩니다.
AWS Global Accelerator 속도 테스트로 직접 확인해보세요.
AWS Global Accelerator가 귀하의 연결에 어떤 차이를 만들 수 있는지 보려면, 공식 AWS Global Accelerator 속도 테스트 를 시도해보세요: https://speedtest.globalaccelerator.aws/.
7. 비용 및 실용적인 노트
AWS Global Accelerator의 가격은 간단합니다:
- $0.025 per hour for the accelerator (around $18 per month).
- $0.015 per GB for data processed through the accelerator (in addition to regular AWS data transfer rates).
여러 대륙의 사용자에게 서비스를 제공하는 사이트의 경우, 개선된 속도와 신뢰성은 이 비용을 쉽게 정당화합니다.
8. 결론
AWS Global Accelerator는 대규모 기업 시스템만을 위한 것이 아닙니다. 한 지역에서 사이트를 운영하지만 전 세계 사용자에게 서비스를 제공하는 모든 사람에게 실용적인 도구입니다.
귀하의 주요 서버가 미국에 있고 아시아, 유럽 또는 다른 지역에서 방문자가 있다면, Global Accelerator는 사용자를 AWS의 고속 개인 네트워크를 통해 라우팅하여 성능을 극적으로 개선할 수 있습니다.