CloudFront & AWS Global Accelerator

AWS CloudFront
- Content Delivery Network (CDN)
- 웹사이트의 컨텐츠를 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높이는 것
- 네트워크 전체에 캐싱되므로 전세계 사용자들이 낮은 레이턴시로 접근할 수 있다
- 캐싱이 되어있다면 엣지 로케이션에서 데이터를 가져가고 없다면 오리진에서 캐싱한다
- 컨텐츠가 전체적으로 분산되어 있어 DDoS (모든 서버가 공격을 받는 방식)공격에서 보호를 받을 수 있다
CloudFront - Origins
- S3 bucket
- CloudFront를 통해 파일을 분산하고 캐싱할 수 있게 한다
- 버킷에는 CloudFront만 접근할 수 있게 보장
- CloudFront를 통해 버킷에 데이터를 보내는 방법 (Ingress)
- Origin Access Control (OAC)와 S3 bucket policy로 보호를 받는다
- Custom Origin (HTTP Server)
- ALB
- EC2 instance
- S3 Website
CloudFront vs Cross Region Replication
- CloudFront
- 전세계에 걸친 CDN 네트워크
- 전세계의 엣지 네트워크를 이용
- 216개의 엣지 로케이션에 하루 동안 파일들이 캐싱된다
- 전세계를 대상으로 한 정적 컨텐츠를 사용하고자 할 때 용이
- Cross Region Replication
- 다른 리전으로의 버킷 복제
- 복제를 원하는 각 리전에 이 설정이 되어 있어야 한다 (전세계가 아니다)
- 파일은 실시간으로 갱신된다
- 캐싱이 아닌 읽기 전용으로만 설정 가능하다
- 일부 리전을 대상으로 동적 컨텐츠를 낮은 지연 시간으로 제공하고자 할 때
CloudFront - ALB or EC2 as an origin
- CloudFront는 퍼블릭으로 설정된 사용자 지정 HTTP 백엔드 (EC2 instance, ALB)에도 접근할 수 있다
- CloudFront에는 가상 프라이빗 클라우드가 없기 때문에 EC2 instance는 퍼블릭으로 무조건 설정이 되어 있어야 한다
- ALB로 들어오는 설정은 퍼블릭으로 열어줘야 하지만 ALB 뒷단의 EC2 instance는 private으로 설정할 수 있다
CloudFront Geo Restriction
- 사용자들이 지역에 따라 배포 객체 접근을 제한할 수 있다
- 접근이 가능한 국가 목록
- 국가 목록은 third party Geo-DB에서 설정한 것으로 사용자의 IP가 어떤 국가에 해당하는지를 확인할 수 있다
CloudFront - Pricing
- 엣지 로케이션마다 데이터 전송 비용이 다르다
- CloudFront에서 더 많은 데이터가 전송될수록 비용은 낮아진다
CloudFront - Price Classes
- 비용 절감을 위해 CloudFront를 분산할 전 세계 엣지 로케이션 수를 줄이는 방법이 있다
- 세 가지 price classes가 존재
- Price class All
- Price class 200
- 대부분의 리전을 사용할 수 있지만 가장 비싼 리전은 제외
- Price class 100
CloudFront - Cache Invalidations
- 캐시의 TTL이 만료가 되면 백엔드 오리진으로부터 업데이트된 컨텐츠를 받는다
- 만약 최대한 빨리 새 콘텐츠를 받고 싶으면 어떻게 해야 할까?
- 전체 또는 일부의 캐시를 강제로 새로코침해서 TTL을 모두 제거
- 특정 파일 경로를 전달 (/images/*와 같은)
- 특정 파일 (/index.html)을 지우거나 모든 이미지 (/images/*)를 지우는 것과 같이 2가지 경로를 무효화 할 수 있다
AWS Global Accelerator
- 여러 hops들을 거치는 것이 아닌 최대한 빨리 AWS 네트워크를 통하게 함
- Unicast IP
- Anycast IP
- 모든 서버가 동일한 IP를 가지며 클라이언트는 가장 가까운 서버로 라우팅
- Global Accelerator은 Anycast IP 개념을 사용한다
- 애플리케이션을 라우팅하기 위해 AWS 내부 글로벌 네트워크를 활용
- 가장 가까운 엣지 로케이션을 통해 AWS 네트워크에 접근
- 애플리케이션에 대해 health check가 가능하다
- DDoS 보호도 자동으로 가능하다
AWS Global Accelerator vs CloudFront
- 동일한 점은 AWS가 생성한 전 세계의 엣지 로케이션을 사용하며 DDoS 보호를 위해 AWS Shield를 사용
- CloudFront
- 이미지나 비디오처럼 캐시 가능한 내용과 API 가속 및 동적 사이트 전달 같은 동적 내용 모두에 성능을 향상
- 캐시된 내용을 사용자가 확인할 수 있음
- Global Accelerator
- TCP나 UDP상의 다양한 애플리케이션 성능을 향상
- 캐싱은 불가능
좋은 정보 감사합니다