웹 서비스의 성능과 안정성을 높이기 위해 사용하는 핵심 기술인 CDN과 글로벌 네트워크 최적화 기술에 대해 정리한다.
💡 CDN (Content Delivery Network)이란
- CDN은 전 세계 사용자에게 빠르고 안정적으로 콘텐츠를 전달하기 위한 네트워크 구조이다.
- 사용자의 위치에서 가까운 서버를 통해 콘텐츠를 제공하므로, 통신의 물리적 거리를 줄이고 지연 시간(latency)을 낮출 수 있다.
- Netflix, YouTube와 같은 대규모 서비스가 대표적인 활용 사례이다.

🌍 Edge Location (엣지 로케이션)
- 엣지 로케이션은 AWS가 전 세계에 분산해 둔 캐시 서버 위치를 의미한다.
- 사용자는 가까운 엣지 서버를 통해 콘텐츠를 제공받기 때문에, 빠른 응답 속도를 기대할 수 있다.
- 결과적으로 사용자와 오리진 서버 간의 대기 시간을 최소화할 수 있다.

📦 CloudFront란?
AWS에서 제공하는 대표적인 CDN 서비스이다.
- CloudFront는 전 세계 사용자에게 데이터, 동영상, 앱, API를 빠르고 안전하게 전달하는 서비스이다.
- 엣지 로케이션의 캐시 서버를 활용해 콘텐츠를 사용자에게 더 빠르게 배포한다.
- 오리진으로는 S3, EC2, ALB 등이 사용될 수 있다.

CloudFront의 작동 방식
- 콘텐츠가 엣지 로케이션에 이미 캐시되어 있다면, 해당 위치에서 직접 제공된다.
- 캐시되어 있지 않다면, 오리진 서버에서 콘텐츠를 가져와 캐시 후 사용자에게 전달된다.

✅ CloudFront의 주요 특징
- 사용자 가까운 엣지 로케이션에서 콘텐츠 제공 → 빠른 응답
- 글로벌 분산 배포 → 전 세계 사용자에게 안정적인 경험 제공
- 레이턴시 최소화 → 사용자 경험 향상
- 콘텐츠 캐싱 → 오리진 서버 부하 감소
- 헤더 정보 기반 캐싱 → 다양한 사용자 요청에 유연하게 대응
🧱 CloudFront의 오리진 구성
1. Origin Group
- 장애 대응을 위한 구조이다.
- 기본 오리진과 보조 오리진으로 구성되며, 기본이 실패할 경우 자동으로 보조 오리진으로 전환된다.

2. Origin Shield
- 캐시 계층을 한 단계 더 추가하는 구조이다.
- 이를 통해 오리진에 대한 요청 횟수 감소, 캐시 적중률 향상, 성능 최적화를 기대할 수 있다.

🧠 CloudFront에서 사용하는 엣지 함수
1. Lambda@Edge
- Node.js 또는 Python 코드를 엣지 로케이션에서 실행하는 서버리스 엣지 컴퓨팅 기능
- 오리진 요청/응답, 뷰어 요청/응답 등 다양한 시점에 코드를 실행할 수 있다.
- ms~s 단위의 실행함수
ex) 데이터의 전송 비용을 줄이기 위해, 오리진 요청 이벤트가 발생할 때마다 사용자에게 전송되는 파일을 압축하는 함수
2. CloudFront Function
- 경량 JavaScript 코드를 엣지 로케이션에서 실행할 수 있는 서버리스 엣지 컴퓨팅 기능
- 오직 뷰어 요청/응답 단계에서만 동작한다.
- 서브 ms 단위의 단기 실행 경량 함수
ex) 사용자의 요청 정보에 따라 다른 페이지로 리다이렉트시키는 함수
🔐 CloudFront 보안 기능
1. 뷰어/오리진 프로토콜 정책
- HTTP ↔ HTTPS 간 전송 방식 제어가 가능하다.

2. OAI (Origin Access Identity)
- OAI를 통해 S3 버킷 콘텐츠를 CloudFront를 통해서만 접근 가능하도록 제한하는 기능이다.

🌐 Global Accelerator란?
글로벌 사용자에게 지연 없이 안정적인 서비스를 제공하기 위한 서비스이다.
- 사용자를 가장 가까운 엣지 로케이션으로 라우팅하여 인터넷 대기 시간을 줄이고 전송 성능을 향상시킨다.
- AWS의 전용 네트워크 백본을 통해 지리적으로 멀리 있는 리전까지 빠르게 요청을 전달할 수 있다.

Anycast 방식
- Anycast IP는 가장 가까운 Node와 통신하는 라우팅 방식
- Global Accelerator는 2개의 고정 Anycast IP 주소를 생성한다.
- 사용자는 이 IP로 요청하고, AWS는 가장 가까운 글로벌 엣지 로케이션으로 자동 라우팅한다.
- EC2, ALB, NLB 등의 AWS Endpoint와 연결하여 사용 가능
🔄 CloudFront vs Global Accelerator
| 항목 | CloudFront | Global Accelerator |
|---|
| 목적 | 콘텐츠 전송 최적화 (정적 콘텐츠 중심) | TCP/UDP 트래픽 가속 (애플리케이션 전체) |
| 사용 대상 | HTML, CSS, 이미지, 비디오, API | ALB, EC2, NLB 등 |
| 엣지 서버 | 캐시를 통한 응답 | AWS 네트워크 백본으로 라우팅 |
| 주요 장점 | 콘텐츠 캐싱, 비용 절감 | 빠른 장애 복구, 글로벌 라우팅 최적화 |
✅ 정리하며
- CloudFront는 정적 콘텐츠 전송에 최적화된 CDN 서비스이며, 전 세계 사용자에게 빠르고 안정적인 콘텐츠 제공이 가능하다.
- Global Accelerator는 모든 애플리케이션 트래픽을 빠르게 전달하기 위한 네트워크 전송 가속 서비스이다.
- 둘은 용도가 다르며, 함께 사용하면 더 강력한 글로벌 서비스를 구축할 수 있다.
끝!