Amazon Cloud Front

김명래·2023년 5월 23일
0

Amazon Cloud Front 란?

Amazon에서 제공하는 CDN Service이다.

이미지나, 동영상을 캐싱하여 엣지 로케이션에 두고 사용자에게 제공하여 먼 거리에 있는 사용자라더라도
빠르게 데이터를 전송할 수 있는것이다.

동작방식

요청 받은 컨텐츠가 있다면 바로 전달하고 없다면 Origin 에서 받아온뒤 캐싱하고 제공한다.

Origin은 EC2나 on-premise server가 될것.

구성

Origin : 실제 컨텐츠가 존재한 근원이다. (S3, EC2, ELB, Route, 53, on-premise)
Distribution : CloudFront의 CDN 구분 단위이다.( 여러 엣지 로케이션으로 구성된 컨텐츠 제공 채널)
TTL : 캐싱된 아이템이 살아 있는 시간이다. TTL 시간 이후 캐싱된 아이템이 삭제된다.
파일 무효화 : TTL 이전에 캐싱된 아이템을 삭제하는것. -> 해당 방식을 사용하면 비용이 발생한다. (한달에 천건은 무료.)
Cache Key : 어떤 기준으로 컨텐츠를 캐싱할 것인지 결정한다. 기본적으로 URL 이 되며 이후 Header와 Cookie, 쿼리스트링등을 사용 가능하다.
(Header 와 Cookie를 사용하여 국가별로 다른 컨텐츠를 보여줄 수 있다.)
정책(policy) :

정적 / 동적

정적 : server에서 처리할 것이아닌 client가 직접 보여주는 내용들 ( image ,CSS)
동적 : 로그인 / 게시판 처럼 실시간 데이터

정적 / 동적 데이터를 분기처리하여 S3(정적 데이터) 나 EC2에서 가져올 수 있다.

정적 컨텐츠 : 캐싱으로 접근 속도 최적화
동적 컨텐츠 : 네트워크 최적화, 연결 유지, 압축등을 사용한다.

HTTPS 지원

origin에서 https 를 지원하지 않아도 https통신을 지원할 수 있도록 구성이 가능하다.
사용자 정의 인증서(SSL)을 사용하려면 반드시 SSL 이 us-east1 region에 있어야 한다.

어떻게 구성이 가능한가 ?

client가 AWS Certificate Manager (ACM)을 사용하여 cloud front 에 접근하고 cloud front는 http 통신을 통해 오리진에서 데이터를 가져오는것이다.

지리적 제한

지리적 제한이 가능하다.

Lambda@Edge

Lambda@Edge를 사용하여 edge location에서의 작업을 수행할 수 있다.

Lambda@Edge를 사용할 수 있는 부분은 4단계로 나뉜다.
1.client 가 clount front에 요청을 보내기 전에.
2.cloud front가 origin에 요청을 보내기 전에.
3.origin이 cloudfront에 응답을 보내기 전에.
4.cloudfront가 client에게 응답을 보내기 전에.

CloudFront Function

Lambda@eage 의 1/6 비용으로 js 실행.
사용 사례 : 캐싱, 헤더 조작.

URL

URL에는 시작시간, 종료시간, IP, 파일명, URL의 유효기간 등의 정보를 담을 수 있다.
이 URL의 접근 이외의 접근을 먹고 허용된 유저에게 URL을 전달하여 컨텐츠 제공을 제어 가능하다.

여러 제약 사항 설정 가능하고 다수의 파일 및 스트리밍 접근 허용이 가능하다.

Origin Access Identity

S3의 컨텐츠를 CloudFront를 사용해서만 볼 수 있도록 제한하는 방법
CloudFront만 권한을 가지고 나머지는 권한을 가지지 않는다.
S3 Buket Policy로 cloud Front의 접근을 허용해야 한다.

Filed Level Encryption

Cloud Front와 origin 사이에 통신을 암호화 하는 방법.

해당 포스팅은 https://www.youtube.com/watch?v=6C9284C-zP4 에 의존하고 있습니다.

profile
독자보다 필자를 위해 포스팅합니다

0개의 댓글