1. 서울 서버가 미국 사용자에게 느린 건 당연하다
인터넷은 빛의 속도로 데이터를 전달하지만, 서울에서 뉴욕까지 왕복하는 물리적 거리를 극복하는 데는 한계가 있습니다. 아무리 빠른 서버라도 지구 반 바퀴 거리의 지연 시간(레이턴시)은 줄일 수 없습니다.
해결책은 사용자와 가까운 곳에 콘텐츠를 미리 저장해두는 것입니다. 이것이 **CDN(Content Delivery Network)**의 핵심이고, AWS에서 제공하는 CDN 서비스가 CloudFront입니다.
2. CloudFront란 무엇인가?
AWS CloudFront는 전 세계 450개 이상의 엣지 로케이션(Edge Location)에 콘텐츠를 분산 배포하는 CDN 서비스입니다.
원본 서버(EC2, S3 등)의 콘텐츠를 전 세계 엣지 서버에 캐시해두고 사용자에게 가장 가까운 엣지에서 응답합니다. 서울 서버를 운영하더라도 미국 사용자는 미국 엣지 로케이션에서 빠르게 콘텐츠를 받을 수 있습니다.
3. 엣지 로케이션이 동작하는 방식
CloudFront의 콘텐츠 전달 과정을 순서대로 살펴봅니다.
미국 사용자가 이미지를 요청합니다. CloudFront가 사용자와 가장 가까운 미국 엣지 로케이션을 찾습니다. 해당 엣지에 캐시된 이미지가 있으면 즉시 응답합니다. 캐시가 없으면 서울 원본 서버에서 이미지를 가져와 엣지에 저장하고 사용자에게 전달합니다. 이후 같은 이미지를 요청하는 미국 사용자는 서울까지 가지 않고 미국 엣지에서 바로 받습니다.
캐시 유효 기간은 TTL(Time to Live)로 설정합니다. TTL이 지나면 원본 서버에서 다시 가져옵니다.
4. CloudFront + S3로 정적 파일 서비스하기
S3에 저장한 이미지, CSS, JavaScript를 CloudFront를 통해 서비스하면 속도와 비용 모두 이점이 있습니다. S3에서 직접 서비스하는 것보다 CloudFront를 거치면 원본 서버 요청이 줄어 S3 요청 비용이 절감됩니다.
설정 순서입니다. CloudFront 콘솔에서 배포 생성을 클릭합니다. 원본 도메인으로 S3 버킷을 선택합니다. 뷰어 프로토콜 정책에서 HTTPS로 리다이렉트를 선택합니다. 기본 루트 객체에 index.html을 입력합니다.
배포가 완료되면 d1234abcdef.cloudfront.net 형태의 도메인이 부여됩니다. 여기에 Route 53으로 커스텀 도메인을 연결할 수 있습니다.
S3 버킷을 CloudFront를 통해서만 접근하도록 설정하면 S3 버킷을 비공개로 유지하면서 CloudFront를 통해 파일을 서비스할 수 있어 보안이 더 강화됩니다. 이 기능을 **OAC(Origin Access Control)**라고 합니다.
5. CloudFront가 제공하는 보안 기능
CloudFront는 콘텐츠 배포 외에 다양한 보안 기능도 제공합니다.
무료 HTTPS 인증서: ACM(AWS Certificate Manager)에서 발급한 인증서를 CloudFront에 연결하면 HTTPS를 무료로 적용할 수 있습니다.
DDoS 방어: AWS Shield Standard가 기본 포함되어 일반적인 네트워크 공격을 자동으로 방어합니다.
원본 서버 IP 은닉: CloudFront를 사용하면 원본 서버의 실제 IP 주소가 사용자에게 노출되지 않아 직접 공격을 방지합니다.
지역 제한: 특정 국가의 접근을 허용하거나 차단할 수 있습니다.
6. CloudFront 비용과 프리티어
CloudFront 비용은 두 가지로 구성됩니다. 엣지에서 사용자로 전달하는 데이터량과 HTTP 요청 횟수입니다. 지역에 따라 단가가 다르며 한국 리전 기준 GB당 약 0.114달러입니다.
좋은 소식은 S3와 같은 AWS 리전 간의 데이터 전송은 무료라는 점입니다. 서울 CloudFront가 서울 S3에서 파일을 가져오는 건 비용이 없습니다.
프리티어에서는 첫 12개월간 월 1TB 데이터 전송과 1,000만 건의 HTTP 요청이 무료입니다.
7. 정리 및 다음 단계
오늘 배운 핵심을 정리합니다.
- CloudFront는 전 세계 엣지 로케이션에서 사용자에게 콘텐츠를 빠르게 전달하는 CDN 서비스입니다.
- S3와 연결하면 정적 파일을 전 세계에 빠르게 서비스할 수 있습니다.
- HTTPS 자동 적용, DDoS 방어, 원본 서버 IP 은닉 등 보안 기능도 제공합니다.
- 프리티어에서 월 1TB 데이터 전송이 무료입니다.
다음 글에서는 AWS Route 53으로 DNS와 도메인을 관리하는 방법을 알아보겠습니다.