2024. 1. 17. 22:14ㆍaws 시험대비/AWS 공인 솔루션 아키텍트
AWS CLoudFront
Content Delivery Network (CDN)

- Improves read performance, content is cached at the edge
- 컨텐츠를 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높이는것입니다. - Improves user experience
- 컨텐츠가 네트워크 전체에 캐싱되므로 전세계 사용자들은 낮은 레이턴시로 접근할 수 있어서 사용자 경험 증대 - 216 Point of Presene globally (edge locations) - 계속 추가 중
- DDoS protection (because worldwide), integration with shield, AWS Web Application Firewall
- 컨텐츠가 전체적으로 분산되어 있어 DDoS 공격에서 보호를 받을 수 있음.

CloudFront - Origins 원본 제공 방식
S3 bucket
- For distributing files and caching them at the edge
- CloudFront를 통해 엣지 로케이션으로 파일을 분산하고 캐싱할 수 있 - Enhaced security withe CloudFront Origin Access Control (OAC)
- 버킷에는 클라우드프런트만 접근할 수 있게 보 - OAC is replacing Origin Access Identity (OAI)
- OAI를 대체 - CloudFront can be used as an ingress (to upload files to S3)

Custom Origin (HTTP)
또 다른 원본 제공 방식으로 HTTP 백엔드와 같은 사용자 정의 원본을 쓸 수 있다. 원본의 종류는 아래와 같다.
- Application Load Balancer
- EC2 instance
- S3 website ( enable the bucket as a static S3 website)
CloudFront 기능
1. HTTPS 지원 기능
2. 특정 지역 콘텐츠 접근 제한 기능
3. Signed URL 기능( S3 pre-signed url과 비슷한 기능)
4. Signed Cookie기능
Pre-Signed URL (미리 서명된 url) 이란?
디폴트로 S3의 객체는 비공개이며 소유자만이 접근할 수 있다.
하지만 필요할 경우 소유자의 보안 자격 증명을 사용해 일정기간 동안 효력이 있는 URL을 생성할 수 있다.
이 URL을 미리 서명된 URL (pre-signed url)이며 이를 통해 다른 사용자는 임시적으로 해당 객체에 접근할 수 있게 된다.
참고로 pre-signed url은 이를 생성한 사용자의 권한에 의해 일부 제한된다고 하니 다음 링크를 참조해보자.
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/using-presigned-url.html#who-presigned-url
CloudFront vs S3 cross region replication
CloudFront | S3 cross region replication | |
특징 | 엣지 로케이션에 캐시 | 여러리진에 S3 복사본 존재, 실시간 업데이트 |
사용목적 | 정적컨텐츠의 빠른 로딩 | 읽기전용으로 읽기 속도향상 |
사용처 | 캐시를 이용한 성능향상 | 동적컨텐츠 로드 |
CloudFront vs AWS Global Accelerator
두 서비스 모두
글로벌 네트워크로 전세계의 엣지로케이션을 사용한다는 것과
DDos 보호를 위해 AWS Shield를 사용한다.
CloudFrontAWS | Global Accelerator | |
특징 | HTTP,HTTPS 컨텐츠 캐시로 빠른 전송 | TCP, UDP의 모든 트래픽에 대해 빠른 전송 |
접근방식 | DNS를 통한 실시간 최적의 엣지 로케이션 IP 제공 | Anycast IP를 통한 클라이언트의 접근 |
요청처리 | 엣지로케이션, 캐시없을 경우 어플리케이션 | 어플리케이션 |
사용목적 | 캐시를 이용한 성능향상 | 네트워크 라우팅에 의한 지연 최소화, 신속한 리전 장애 조치가 필요할때 |
사용처 | 이미지, 동영상같은 정적컨텐츠 로딩 | 캐시불가, 게임이나 IoT, Voice Over Ip 등에 사용 |
Unicast IP와 Anycast IP
Unicast IP : 하나의 서버가 하나의 IP 주소를 가지는 것
Anycast IP : 모든 서버가 동일한 IP 주소를 가지며 클라이언트가 접근시 가장 가까운 서버로 라우팅 됨.
Edge locations - Regional edge caches

1. 사용자가 어플리케이션에 요청을 한다.
2. DNS는 사용자에게 적합한 Edge Location으로 라우팅 한다.
3. Edge Location에서 캐시를 확인하고 있으면 이것을 사용자에게 반환한다.
4. 없으면 가장 가까운 REC로 캐시가 있는지 요청한다.
5. 없으면 CloudFront는 오리진으로 요청을 전달한다.
6. 오리진은 '오리진 > REC > Edge Location > CloudFront가 사용자에게 전달' 수순을 밟는다. (캐시도 추가된다)
7. REC에 캐시가 있다면 REC는 콘텐츠를 요청한 Edge Location으로 반환한다.
8. REC로부터 콘텐츠의 첫 번째 바이트가 도착하는 즉시 Edge Location은 이를 사용자에게 반환한다.
7. Edge Location은 나중을 위해 이 콘텐츠 캐시를 저장한다.
CloudFront 과금 방식
나라마다 과금 방식이 다르다


https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/CloudFrontPricing.html
CloudFront 요금 - Amazon CloudFront
CloudFront 요금 Amazon CloudFront는 사용자가 선불 요금을 지불하거나 얼마나 많은 콘텐츠를 보유할지 약정하지 않아도 되도록 설계되었습니다. 기타 AWS 서비스와 마찬가지로 사용할 때, 사용한 내역
docs.aws.amazon.com
https://aws.amazon.com/ko/cloudfront/pricing/
Amazon CloudFront CDN - 요금제 및 요금 - 무료 체험
Origin Shield 요청 중앙화된 캐싱 계층으로 Origin Shield를 설정하는 경우 Amazon CloudFront 엣지 로케이션 지원 콘텐츠가 아닌, Origin Shield 리전으로 구성한 AWS 리전에 기반하여 요청 요금이 부과됩니다. O
aws.amazon.com
CloudFront - ALB or EC2 as an origin

CloudFront Geo Restriction (지리적 제한 기능)
https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/georestrictions.html
콘텐츠의 지리적 배포 제한 - Amazon CloudFront
CloudFront에서는 서드 파티 데이터베이스를 사용하여 사용자의 위치를 확인합니다. IP 주소 및 국가 간 매핑 정확도는 리전에 따라 다릅니다. 최근 테스트에 따르면 전반적인 정확도는 99.8%입니다.
docs.aws.amazon.com
[AWS] CloudFront의 Geo-location(지리적 제한) 설정 방법
CloudFront의 Geo-location(지리적 제한)이용한 허용외 지역에 에러코드 반환 구현 이미지와 간단한 html파일이 업로드된 S3를 준비 S3 버킷을 오리진으로 CloudFront 생성 Route53에 새로운 도메인을 생성하
velog.io
CloudFront 무효화
엣지에서 캐시된 파일은 TTL 이 있어서 TTL 이 만료되기 전까지 특별한 요청이 없으면 Origin 파일을 요청하지 않습니다.
CloudFront Invalidation을 실행시켜 일부 또는 전체를 강제로 새롭게 캐쉬할 수 있다.

https://charming-kyu.tistory.com/8
AWS Lambda를 사용한 CloudFront 무효화 자동화 설정하기
CloudFront Cache Amazon CloudFront를 사용하면 사용자의 요청을 Edge Location에서 캐시 값을 검사하여 24시간 동안에는 사용자에게 다시 파일을 제공하지 않고 캐시 된 값을 빠르게 제공한다. 서비스의 종
charming-kyu.tistory.com
https://kiwinam.com/posts/42/remove-cache-cloud-front/
[AWS] CloudFront 캐시 삭제, CDN 캐시 무효화 :: 키위남
TR;DR AWS Cloudfront 콘솔 접속 Distribution 중 캐시 무효화 할 것 선택 상단 탭 중 ‘Invalidations’ 선택 Create Invalidation Object Paths 에 전체 경로 무효화 선언 /* 요즘 제가 개발하는 서비스의 홈페이지는 AWS
kiwinam.com
https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html
파일 무효화 - Amazon CloudFront
아직 진행 중인 무효화를 복사하고 무효화 경로의 목록을 업데이트하여 업데이트된 무효화를 실행하는 경우, CloudFront에서는 복사한 무효화를 중단하거나 삭제하지 않습니다. 무효화 경로가 원
docs.aws.amazon.com
AWS Global Accelerator

- 애플리케이션을 배포한 상태에서 글로버 유저들이 접근을 바로 한다
- 공용 인터넷을 타고 넘어와 많은 hops를 지나쳐 온다.
- hops가 많으면 위험이 커진다. 지연시간도 커진다.
- AWS 네트워크를 통해 최대한 빨리 접근하여 지연시간을 최소화 한다.
Unicast IP와 Anycast IP
Unicast IP : 하나의 서버가 하나의 IP 주소를 가지는 것
Anycast IP : 모든 서버가 동일한 IP 주소를 가지며 클라이언트가 접근시 가장 가까운 서버로 라우팅 됨.
- 애니캐스트 IP처럼 작동한다.
- AWS 내부 네트워크를 통해 리전에 배포된 애플리케이션으로 연결된다.(캐시가 안된다)
- 사용자와 가장 가까운 엣지 로케이션으로 트래픽을 직접 전송
- 엣지 로케이션은 안정적이고 빠른 AWS 네트워크를 통해 애플리케이션(or로드밸런서)까지 전

- 글로벌 액셀러레이터에는 2개의 Anycast 퍼블릭 고정 IP가 생성됨 (IP 주소 연결 방식)
- Anycast는 네트워크 트래픽을 가장 가까운 노드로 전송하는 라우팅 방식
- Elastic IP, EC2인스턴스, ALB, NLB 등의 AWS 엔드포인트를 연결하여 사용 가능
- 애플리케이션의 Health Check기능을 통해 하나의 서버 장애 발생시 다른 서버로 라우팅 가능

참고사이트
https://real-dongsoo7.tistory.com/86
[AWS 파헤치기] #2 CloudFront(CDN)가 뭐야?
시작하기 전에 해당 블로그에 작성되는 글은 주인장의 지극히 주관적인 생각이 다수이며, 대부분의 지식은 구글링을 통해 얻고 있기 때문에 옳지 않은 정보가 있습니다. 잘못된 부분이나 수정
real-dongsoo7.tistory.com
[AWS] 📚 CloudFront 개념 원리 & 사용 세팅 💯 정리
CloudFront 클라우드프론트는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(C
inpa.tistory.com
https://aws.amazon.com/ko/cloudfront/
CDN 서비스 | CloudFront | Amazon Web Services
aws.amazon.com
https://bosungtea9416.tistory.com/entry/AWS-CloudFront
[AWS] CloudFront 에 대하여
AWS CloudFront 란 AWS CloudFront는 AWS의 CDN (Content Delivery Network) 서비스다. CDN 서비스란 Client의 콘텐츠 요청으로 서버에서 받아온 콘텐츠를 캐싱하고 이후 같은 요청이 왔을 때, 그 캐싱해 둔 것을 제공
bosungtea9416.tistory.com
https://velog.io/@rokwon_k/CloudFront-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0
CloudFront 살펴보기
짧은 지연시간과 빠른 속도로 데이터, 동영상, 애플리케이션 및 API를 전송하는 고속 콘텐츠 전송 네트워크(CDN) 💡 CDN(Content Delivery Network)페이지, 이미지, 동영상 서버에서 받아와 캐싱빠른 컨텐
velog.io
9. 글로벌 전송 (CloudFront,Global Accelerator)
CloudFront • 콘텐츠 전송 네트워크 서비스 (CDN, Contents Delivery Network)• 엣지 로케이션의 콘텐츠 캐싱을 이용해 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 서비스• 전세계에 배포된 200개
velog.io