CloudFront
CloudFront → CDN : Content Delivery Network
웹사이트의 컨텐츠를 서로 다른 엣지 로케이션에 미리 캐싱해 읽기 성능을 높임
: 전세계 사용자들이 낮은 레이턴시로 접근해 사용자 경험 증대
: 컨텐츠가 worldwide하게 저장되어있으므로 DDos 공격으로부터 보호 가능
- Global Edge network
- TTL 을 위해 매일 캐시됨
- 전세계를 대상으로 한 정적 컨텐츠 사용할 때 용이함
CloudFront Origin
- S3 Bucket
- CloudFromt를 통해 파일 분산, 캐싱
- OAC(Origin Access Control)을 통해 CloudFront만 버킷에 접근 가능
- Ingress : 버킷에 데이터 업로드도 가능함
- Custom Origin (HTTP)
- Application Load Balancer
- EC2는 private 가능, LoadBalancer 접근 허용
- LoadBalancer는 Public, Edge Location의 모든 public IP 접근을 허용하는 보안 그룹 설정
- Edge Location는 Public
- EC2 instance
- EC2는 Public, Edge Location의 모든 public IP 접근 허용하는 보안 그룹 설정
- Edge Location는 Public
- S3 website
- Any HTTP backend
- Application Load Balancer
CloudFront Geo Restriction
Allowlist / Blocklist 사용하여 배포판에 접근하는 사용자를 국가에 따라 제한 가능
국가는 Geo-IP DB를 사용해 user IP를 매핑하는 방식으로 결정
CloudFront Pricing
엣지 로케이션마다 데이터 전송 비용이 다름
더 많은 데이터가 전송될수록 GB당 비용은 낮아짐
Price Classes
- Price Class All : 모든 리전 - 최상의 성능
- Price Class 200 : 대부분의 리전 사용, 가장 비싼 리전 제외
- Price Class 100 : 가장 저렴한 리전 사용
CloudFront Cache Invalidation
캐시의 TTL이 만료되면 백엔드 오리진으로부터 업데이트된 콘텐츠를 받음
→ 우리는 최대한 빨리 새 콘텐츠를 받고 싶으므로, 전체 또는 일부의 캐시를 강제로 새로고침해 캐시의 TTL 을 모두 제거할 수 있음 → 이를 위해 Cache Invalidation
모든 파일이나 특정 패스의 파일을 무효화할 수 있음
AWS Global Accelerator
문제 상황
- 우리의 public ALB 는 India에 위치하고 있으나, 글로벌 서비스를 해서 유저가 글로벌하게 존재. America, Europe, Australia
- user가 public ALB에 요청을 보낼 때, public internet을 이용하므로 많은 router를 거쳐가서 hop을 많이 함. → 지연시간이 길어지고, 장애 발생에 취약하며, AWS 인프라에 직접 접근하는 것이 아님.
- 지연 시간을 최소화하기 위해 AWS 네트워크에 접근하는 것이 좋음.
Unicast vs Anycast
- Unicast IP
- 1개의 서버가 1개의 IP주소를 가짐
- Anycast IP
- 모든 서버가 동일한 IP주소를 가짐. 클라이언트는 가장 가까운 서버로 routing됨
Global Accelerator는 Anycast 개념을 사용
: 애플리케이션 라우팅을 위해 AWS 내부 글로벌 네트워크 활용
: 각각의 나라에 가까운 Edge Location 을 통해 private망으로 public ALB에 접근
: 2개의 Anycast IP가 생성되고, 그 Anycast IP가 Edge Location으로 직접적으로 트래픽을 보냄. 엣지 로케이션은 private network 통해 ALB로 트래픽 전송
- Elastic IP, EC2 instance, ALB, NLB, public, private과 사용
- 지능형 라우팅으로 지연시간이 가장 짧은 Edge Location으로 연결됨
- 아무것도 캐시하지 않기에 클라이언트 캐시와 연관 X
- 엣지 로케이션 다음에 내부 AWS 네트워크가 연결되어 internal network 사용
- 상태 확인
- 애플리케이션에 대해 상태 확인
- 애플리케이션 글로벌 여부 확인
- 자동화된 장애 조치
- 보안
- 단 2개의 외부 IP만 존재하므로 보안이 좋음
CloudFront vs Global Accelerator
공통점
- AWS global network 사용, edge location은 전세계에 분포
- AWS Shield와 결합하여 DDos protection 가능
차이점
- CloudFront
- 캐시 가능한 컨텐츠 (이미지, 비디오)에 대한 성능이 좋음
- 동적 컨텐츠 (ex. API 가속화, 동적 사이트 전송) 성능 좋음
- edge로 부터 컨텐츠가 서빙됨
- Global Accelerator
- 캐시가 불가능함
- TCP, UDP 위의 애플리케이션에 대해 성능이 좋음
- 1개 이상의 리전에서 수행중인 애플리케이션에 대해 패킷을 proxing
- non-HTTP / 정적 IP 주소를 요구하는 HTTP use cases 에 좋은 성능
- 재해 복구가 빠름
'AWS 자격증 공부 > AWS SAA-C03' 카테고리의 다른 글
AWS SAA : Decoupling Application : SQS, SNS, Kinesis, Active MQ (1) | 2024.11.24 |
---|---|
AWS SAA : Storage (2) | 2024.11.20 |
AWS SAA : S3 (1) | 2024.11.20 |
AWS SAA : Elastic Beanstalk (2) | 2024.11.19 |
AWS SAA : Route 53 (2) | 2024.11.19 |