클라우드/AWS

CloudFront와 AWS Global Accelerator

codingreewon 2026. 7. 14. 15:33

(Stephane Maarek의 Udemy AWS Certified Solutions Architect Associate 강의를 참고했습니다.)

1. CloudFront

CloudFront 동작 구조도

 

CloudFront는 AWS에서 제공하는 CDN(Content Delivery Network) 서비스로, 사용자에게 콘텐츠를 더 빠르고 안전하게 전달하기 위한 서비스이다. 좀 더 자세히 살펴보면, CloudFront는 원본 서버(Origin)에 있는 콘텐츠를 전 세계에 퍼져 있는 수백 개의 Edge Location(Points of Presence, PoP)에 캐싱하여 사용자에게 가장 가까운 위치에서 콘텐츠를 제공한다. 즉, 사용자가 콘텐츠를 요청하면 가장 가까운 Edge Location에서 캐시된 데이터를 전달하고, 없다면 Origin에서 가져온 후 캐시에 저장하여 이후 요청부터는 더욱 빠르게 제공할 수 있도록 하는 것이다.

 

CloudFront는 읽기 성능 및 User Experience의 향상과 전 세계 네트워크를 활용한 DDoS 공격 완화 및 AWS Shield 등과의 통합으로 더 강화된 보안을 제공한다.

 

CloudFront을 지원하는 Origin의 종류로는 S3 버킷과 VPC, 커스텀 Origin (HTTP)가 있다. S3 버킷은 가장 많이 사용하는 Origin으로, S3 내 파일을 CloudFront가 캐싱하여 제공한다. 반대로 CloudFront를 통해 S3에 업로드하기도 하며, OAC (Origin Access Control)를 이용하여 S3 공개 없이 CloudFront만 접근하도록 설정할 수 있다. VPC Origin은 Private Subnet 내 애플리케이션을 위한 것이며, 마찬가지로 인터넷에 직접 공개하지 않고 CloudFront가 접근하여 콘텐츠를 제공한다. 마지막으로 Custom Origin (HTTP)은 S3 Static Website부터 Public ALB와 같은 Public HTTP 서버까지 CloudFront 앞에 거의 모든 웹 서버를 둘 수 있다.

 

CloudFront는 S3 Cross Region Replication (CRR)과 엄연히 다른 서비스이다. CloudFront가 글로벌 엣지 네트워크를 사용한 캐시 기반 서비스라면, CRR은 리전별 별도 설정이 필요하며 데이터를 실제 다른 리전으로 복제한 서비스이다. CloudFront가 정적 콘텐츠 제공에 적합한 것과 달리 CRR은 동적으로 데이터를 공유하여 다중 리전 운영에 적합하다는 차이점도 있다.

ALB를 활용한 CloudFront 동작

 

ALB를 활용하는 경우 위 사진과 같이 설계할 수 있다. ALB는 엣지 Location의 Public IP를 모두 허용한 Public 상태여야 하며, 이때에는 EC2 인스턴스는 Private로 설정해도 괜찮다.

 

CloudFront의 Geo Restriction 기능을 사용하면 국가 단위로 접근을 제어할 수 있다. Allowlist와 Blocklist를 통해 국가의 접근 설정을 제어하며, 사용자의 IP 주소를 Geo-IP 데이터베이스와 매칭하여 국가를 판단한다. 저작권, 라이선스, 국가별 서비스 제한과 같은 요구사항을 구현할 때 사용하는 기능이다.

 

Edge Location에 따라서 청구되는 비용도 달라진다. 북미와 유럽은 저렴한 편이며, 아시아/오세아니아 등으로 갈수록 비싸진다. 사용사용자는 전체 Edge Location을 사용하는 Price Class All, 비싼 일부 지역은 제거하는 Price Class 200, 그리고 가장 저렴한 Prices Class 100 중에 선택할 수 있다.

 

만약 사용자가 백엔드 Origin에서 파일을 업데이트하더라도, CloudFront는 TTL이 만료되어 다시 콘텐츠를 받을 때까지 이를 알지 못한다. 하지만 CloudFront Invalidation을 수행하여 TTL이 남아 있더라도 강제로 캐시를 무효화하여 전체 또는 일부 캐시를 새로 고침 할 수 있다. 캐시 무효화 시, 전체 파일에 대해서(*)도 가능하며 '/images/*'처럼 특정 경로를 지정할 수도 있다.

2. AWS Global Accelerator

Global Accelerator을 사용하지 않을 때

 

만약, 사용자가 애플리케이션을 배포했는데, 전 세계의 유저들이 접근한다고 하자. 각 지역에서는 애플리케이션으로 올 때까지 여러 hop들을 통과해야하 하므로 고장에 취약하다. 이때 Global Accelerator는 Anycast IP 개념을 활용해 이를 해결한다.

Global Accelerator 작동 구조도

 

Unicast IP는 우리가 흔히 아는 방식으로 하나의 서버가 하나의 IP 주소를 가리키는 방식이며, Anycast IP는 여러 위치에 있는 네트워크 엔드포인트가 동일한 IP 주소를 광고하며, 네트워크 라우팅을 통해 사용자가 가장 가까운 엔드포인트로 연결되는 방식이다. Global Accelerator는 2개의 고정된 Anycast IP 주소를 제공하여 사용자는 변경되지 않는 해당 IP 주소로 접속하고, 실제 트래픽은 내부적으로 가장 가까운 Edge Location으로 전달된다. 따라서 엔드포인트가 변경되어도 IP 주소는 유지할 수 있으며, 방화벽 설정이 단순해진다.

 

보안 측면에서도 외부에서는 2개의 고정 IP만 허용하면 되므로 접근 제어가 간편하고, AWS Shield와 통합되어 DDoS 공격으로부터 애플리케이션을 보호할 수 있다. 엔드포인트는 EC2 인스턴스, ALB, NLB, Elastic IP 등 다양한 AWS 리소스가 가능하며, 사용자의 트래픽은 AWS 글로벌 네트워크로 진입하여 AWS 전용 백본 네트워크를 통해 엔드포인트까지 전달된다. 따라서 인터넷 구간을 최소화하여 더 안정적이고 일관된 성능을 제공한다.

 

Global Accelerator는 애플리케이션의 상태를 지속적으로 확인하기 위해 헬스 체크를 수행한다. 만약 현재 연결된 리전이나 엔드포인트에 장애가 발생하면, 헬스 체크를 통해 장애를 감지하고 정상 동작하는 다른 리전이나 엔드포인트로 자동 전환하는 과정이 보통 1분 이내로 이루어진다.

3. CloudFront vs. Global Accelerator

CloudFront와 Global Accelerator는 AWS 글로벌 네트워크를 사용하고, 전 세계에 퍼져있는 Edge Location을 활용하며 AWS Sheild와 통합되어 DDoS 공격을 방어한다는 공통점을 가진다. 그리고 두 기능 모두 전 세계 사용자에게 더 빠르고 안전한 서비스를 제공하기 위한 서비스이다.

 

하지만 분명한 차이점이 존재한다. CloudFront콘텐츠를 캐싱하여 사용자에게 빠르게 전달하는 것이 목적이다. 따라서 이미지나 도영상처럼 캐시 가능한 정적인 콘텐츠에 매우 효과적이며, API 응답처럼 캐시하지 않는 동적 콘텐츠도 가속 가능하다. 또한 HTTP/HTTPS 전용으로, TCP와 UDP는 지원하지 않는다.

 

반면, Global Accelerator는 캐시를 하지 않는 대신 패킷을 가장 좋은 엔드포인트까지 빠르게 전달하는 서비스이다. 또한 HTTP와 HTTPS 뿐만 아니라, TCP/UDP도 지원한다. 따라서 HTTP가 아닌 서비스, 예를 들어 UDP를 주로 사용하는 게임이나 음성 통화, TCP 기반의 IoT 서비스에서는 Global Accelerator를 사용하며, HTTP 서비스 중에서도 정적인 IP 주소가 필요한 서비스나 장애 조치를 빠르게 수행해야 하는 서비스에 대해서는 Global Accelerator를 사용한다.

'클라우드 > AWS' 카테고리의 다른 글

디커플링 애플리케이션(SQS, SNS, Kinesis)  (0) 2026.07.16
AWS 스토리지 추가 기능  (0) 2026.07.15
S3에 대해서 알아보자  (0) 2026.07.13
Elastic Beanstalk란?  (0) 2026.07.12
Route 53에 대해 알아보자  (0) 2026.07.12