AWS 글로벌 엑셀러레이터(AGA)와 CloudFront 개념
1. 애니캐스트(Anycast)와 유니캐스트(Unicast)의 차이
- 애니캐스트(Anycast):
- 하나의 IP 주소가 여러 개의 서버(리전)에 할당됨
- 사용자의 위치에 따라 가장 가까운 서버로 자동 라우팅됨
- 글로벌 엑셀러레이터(Global Accelerator)가 사용
- 예: 사용자가 한국에서 요청하면 한국에 가까운 AWS 엣지 로케이션을 통해 트래픽이 전달됨
- 유니캐스트(Unicast):
- 하나의 IP 주소가 특정 서버(리전)에만 연결됨
- 사용자의 위치와 관계없이 항상 동일한 서버로 라우팅됨
- 일반적인 네트워크 통신 방식
2. AWS 글로벌 엑셀러레이터(Global Accelerator) 작동 방식
- 사용자가 ALB에 빠르게 접근하도록 AWS 네트워크를 활용
- 공용 인터넷을 거치는 대신 가장 가까운 AWS 엣지 로케이션을 통해 트래픽을 전달
- 애니캐스트 IP를 사용하여 글로벌 트래픽 라우팅
- 장애 발생 시 자동으로 최적의 리전으로 트래픽을 리디렉션
📌 예시
✅ 글로벌 엑셀러레이터 사용 시
- 인도에서 AWS 서비스를 이용하는 경우, 인도의 AWS 엣지 로케이션을 통해 글로벌 네트워크로 들어감
- 공용 인터넷 대신 AWS 내부 네트워크를 이용하여 ALB로 전달됨
- 빠르고 안정적인 네트워크 경로를 확보
✅ 글로벌 엑셀러레이터 미사용 시
- 인도에서 ALB에 접근 시 미국 공용 인터넷을 거쳐 도달
- 네트워크 지연(latency) 및 패킷 손실 발생 가능
3. 탄력적 IP(Elastic IP)의 활용
- EC2, ALB, NLB와 함께 사용 가능
- 상태 확인(Health Check) 기능이 있어 장애 발생 시 자동으로 대체 리소스에 연결
- 재해 복구(DR) 및 가용성 유지에 효과적
- 글로벌 엑셀러레이터와 결합 시 고정된 글로벌 IP 주소 제공
✅ 보안적 장점
- AWS의 글로벌 네트워크를 활용하여 DDoS 공격 방어
- 특정 IP 또는 네트워크 대역을 화이트리스트에 추가 가능
4. AWS 글로벌 엑셀러레이터 vs CloudFront 차이
항목 | AWS 글로벌 엑셀러레이터 | AWS CloudFront |
---|
주요 기능 | 트래픽 최적화 및 라우팅 | 콘텐츠 캐싱 및 가속화 |
적용 대상 | ALB, NLB, EC2 | S3, ALB, 온프레미스 서버 등 |
캐싱 여부 | ❌ 캐싱 불가능 | ✅ 캐싱 가능 |
IP 주소 | 글로벌 고정 IP 제공 | CloudFront 도메인 사용 (고정 IP X) |
트래픽 전달 방식 | 사용자의 가장 가까운 AWS 엣지 로케이션을 통해 최적의 리전에 라우팅 | 정적/동적 콘텐츠를 가장 가까운 엣지 로케이션에서 제공 |
사용 사례 | 글로벌 사용자 대상 ALB, EC2 성능 향상 | 웹사이트, 동영상 스트리밍, API 응답 속도 개선 |
✅ 클라우드프론트(CloudFront) 주요 특징
- 정적 및 동적 콘텐츠 가속
- 대부분의 경우 캐싱된 데이터를 제공하여 성능 향상
- 글로벌 엣지 로케이션을 통해 CDN(Content Delivery Network) 역할 수행
✅ 글로벌 엑셀러레이터(Global Accelerator) 주요 특징
- 글로벌 고정 IP 주소 제공
- 캐싱을 사용하지 않고 실시간 트래픽을 최적의 AWS 리전으로 전달
- 네트워크 지연을 최소화하고 장애 발생 시 자동 복구
📌 결론
- CloudFront: 주로 정적/동적 콘텐츠 캐싱 및 가속화에 사용
- Global Accelerator: ALB, NLB 등의 글로벌 네트워크 트래픽 최적화
5. 캐시 무효화(Cache Invalidation)와 TTL
- CloudFront의 캐시 무효화(Cache Invalidation)
- S3 또는 원본 서버의 파일을 수정하면 캐시된 데이터가 그대로 남아있을 수 있음
- 이를 방지하기 위해 CloudFront 캐시를 무효화해야 함
- 특정 파일 경로로 캐시를 삭제하고 새로운 데이터를 가져오도록 설정 가능
✅ 예시: S3에 새로운 파일 업로드 시 캐시 무효화 적용
aws cloudfront create-invalidation --distribution-id <배포ID> --paths "/images/logo.png"
- 위 명령어는
/images/logo.png
파일에 대해 캐시를 무효화하여 새 파일을 가져오도록 설정
✅ TTL(Time To Live) 조정
- TTL이 너무 길면 오래된 데이터가 캐시에 남아있어 최신 업데이트가 반영되지 않을 수 있음
- 필요 시 TTL을 짧게 설정하거나 수동으로 캐시를 무효화하여 변경 사항을 빠르게 반영