Amazon Web Serivce 자격증 쉽게 공부하기/AWS Solutions Architect Associate 핵심
SAA-C03 핵심 #6, Cloudfront
네트워크 엔지니어 환영
2023. 11. 7. 22:08
반응형
Cloudfront의 개요와 Edge Location
- CDN(Content Delivery Network) 서비스
- HTTP / HTTPS를 이용하여 S3 Bucket 및 ALB, EC2, 외부 서버 등을 캐시하고 보다 빠른 속도로 콘텐츠를 전달하는 캐시 서버
- 캐시의 대상이 되는 서버를 Origin Server라 부름
- 전 세계 각지에 퍼져 있는 216개 Edge Location 주변에 존재하는 Origin Server의 콘텐츠를 Edge Location에 캐싱하고 각 Edge Location간 공유를 통해 콘텐츠를 전달
- Distribution은 Origin Server와 Edge 사이에서 콘텐츠를 배포하는 역할을 수행하는 Cludfront의 단위
- 각 Edge Location간에는 아마존의 백본 네트워크를 통하기 때문에 매우 빠른 속도로 전달 가능
- ALB , EC2, S3 Website 등의 AWS 서비스뿐만 아니라 외부의 서버도 캐싱 가능(이를 Custom Origin이라 함)
- TTL을 조절하여 캐시 주기를 통제할 수 있음
Cloudfront의 콘텐츠 제공 방법
- 사용자가 웹 사이트 혹은 앱에 액세스하고 이미지 혹은 HTML 파일을 요청함(정적 데이터)
- DNS가 요청에 대한 응답을 최적으로 제공할 수 있는 Cloudfront Edge Location으로 요청을 라우팅함
- Edge Location에서 해당 캐시에 요청된 파일이 있는지 확인하고 없으면 오리진 서버에 요청하여 확보 후 전달, 그리고 캐시 적재
OAI(Origin Access Identity)
- S3를 Origin Server로 사용시, Cloudfront를 제외하고 다른 경로로 S3를 접근하는 것을 막는 방법
- OAI를 설정하게 되면 각각의 Distribution이 별도의 Identity를 갖게 되며, S3의 버킷 정책을 수동 혹은 자동으로 수정할 수 있음
- OAI가 적용된 S3의 버킷정책은 다음과 같이 수정됨
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity xxx"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
OAC(Origin Access Control)
- OAI의 제한된 기능(KMS를 이용한 서버측 암호화 제한, PUT/POST/DELETE 요청 불가 등) 때문에 새로운 대안으로 사용되는 접근 제한 기능
- OAI와 동일하게 Origin Server에 접근하는 방법을 제공함
- KMS를 활용한 SSE-KMS, POST를 포함한 HTTP Method, 단기 자격 증명 등의 기능을 지원
- 요청 및 응답 WorkFlow
1. 클라이언트가 Cloudfront에 HTTP(HTTPS) 요청을 보냄
2. Cloudfront Edge Location이 이를 수신하고 아직 캐시되지 않았을 경우 OAC 서명 프로토콜을 사용해 요청에 서명
3. S3 버킷 정책에 의해 승인 혹은 거부
Geolocation Restriction
- Distribution에 접근하는 사용자를 제한할 수 있는 기능
- Allowlist 혹은 Blocklist를 통해 제어 가능
- 국가를 지정하여 해당 국가에서 사용하는 IP의 사용자는 접근이 제한됨
Presigned URL
- 인증된 사용자만이 해당 Distribution를 사용할 수 있도록 제어하는 기능
- 만료 날짜 및 시간까지 설정 가능
- Cloudfront 설정시 Presigned URL 사용과 Cloudfront Key Pair를 계정의 보안자격증명에서 생성해야 함
- 이를 조합하여 URL 서명을 생성하고 해당 URL을 통해 Cloudfront에 접근할 수 있음
Cache Invalidation
- 캐시를 강제로 새로고침하여 캐시 중인 Origin Server의 업데이트를 즉시 받아오는 기능
- Cloudfront가 캐시하고 있는 Origin Server에 변화가 생길 경우 TTL(Time to live) 만료시간까지 기다렸다가 업데이트하는 단점을 지님
- 이를 해결하기 위해 Cache Invalidation을 실시하여 업데이트 공백을 메움
- 특정 파일 경로 무효화(/images/*) 혹은 전체 파일(*) 등을 무효화할 수 있음
Cloudfront의 비용
- Edge location마다 전송 비용이 상이하기 때문에 비교적 싼 리전을 사용해야 비용 절감 실현 가능
- 비용 절감을 위한 3가지 가격 등급이 존재
1. Price Class All : 모든 리전의 Edge Location을 사용하여 성능을 최대로 발휘하지만 비용이 높음
2. Price Class 200 : 가장 가격이 높은 리전을 제외하고 나머지 리전의 Edge Location 사용
3. Price Class 100 : 가장 저렴한 리전의 Edge Location 사용