Amazon CloudFront
Cloudfront 는?
Cloudfront 는 AWS 에서 제공하는 CDN(컨텐츠 전송 네트워크)입니다.
CDN 서비스를 이용하면 서비스 대기 시간과 성능이 개선되어
이미지, 오디오, 비디오 및 일반 웹 페이지 등을 최종 사용자에게 빠르게 제공할 수 있습니다.
서비스를 하는 곳이 S3 에서 설정한 같은 리전이면 데이터를 빠르게 전송할 수 있지만,
다른 리전일 경우 아무래도 같은 지역에 비해 비교적 지연 시간이 있을 수 있습니다.
CloudFront 는 오리진 서버에 위치한 원본 파일을 전세계에 위치한 에지 로케이션으로 배포하고
에지 로케이션은 이 데이터를 캐싱하며 사용자는 자신의 위치와 가까운 에지 로케이션에서
캐싱된 데이터를 제공 받으므로 이런 문제를 어느 정도 해결할 수 있습니다.
오리진 서버는 S3 버킷, EC2 혹은 ELB(Elastic Load Balancer)와 같은
다른 AWS 이거나 자체 오리진 서버일 수 있습니다.
Cloudfront 사용법
S3 에서 버킷을 생성하고 파일을 업로드를 다 마쳤다는 전제하에 순서를 써보자면 아래와 같습니다.
- CloudFront 는 Storage & Content Delivery 내부에 있으며 CloudFront 를 클릭하여 이동합니다.
- CloudFront Distribution 은 CloudFront 의 독립적 단위입니다. Create Distribution 버튼을 클릭합니다.
- Web 아래쪽에 있는 Get Started 버튼을 클릭합니다.
- Origin Settings 에 항목을 채워 넣습니다. 각 항목에 대한 설명입니다.
항목 | 설명 |
---|---|
Origin Domain Name | 오리진의 도메인 이름입니다. 인풋 박스를 클릭하면 현재 사용할 수 있는 항목이 나오는데 S3 의 버킷을 사용할 것이므로 그에 맞게 해당 항목을 클릭합니다 |
Origin Path | Orgin Path 로 입력된 디렉토리 명을 실제 접근 시 생략할 수 있습니다. 가령 blockoBucket 이라는 S3 버킷이 있고 내부에 src 라는 디렉토리와 그 내부에 index.html 파일이 존재한다고 가정했을 때 Origin Path 가 /src 라면 blockoBucket/index.html 으로 접근 시 CloundFront 는 blockoBucket/src/index.html 파일을 제공합니다. |
Origin ID | 오리진을 구분하는 ID 이며, Origin Domain Name 이 입력되면 자동으로 채워집니다. |
Restrict Bucket Access | S3 버킷에 CloudFront 만 접근할 수 있도록 설정하는 옵션입니다. |
Origin Access Identity | 오리진에 접근 시 사용할 식별자입니다. 새로 생성하거나 이미 있는 것을 사용할 수 있습니다. |
Comment | Origin Access Identity 에서 새로운 식별자 생성을 클릭할 경우 식별자를 생성 시 사용할 이름입니다. 새로 사용할 식별자의 이름을 적어주면 됩니다. |
Grant Read Permissions on Bucket | CloudFront 가 S3 에 접근할 수 있는 권한을 버킷의 Policy 에 업데이트하는 지에 대한 설정입니다. Yes 로 설정하면 다른 모든 접속은 제한되고 CloudFront 만 접근할 수 있도록 버킷에 Bucket Policy 가 설정됩니다. |
- 아래에 계속 Default Cache Behavior Settings 를 채워 넣습니다.
항목 | 설명 | ||
---|---|---|---|
Path Pattern | CloudFront 로 파일을 가져올 규칙입니다. 기본값은 *로 설정되어 있어서 모든 파일을 가져오게 됩니다. 이 부분은 여기서는 수정할 수 없고 배포를 생성한 뒤 따로 추가할 수 있습니다. |
||
Viewer Protocol Policy | CloudFront 로 보여질 프로토콜 정책 입니다. HTTP and HTTPS: HTTP 와 HTTPS 를 둘 다 사용합니다. Redirect HTTP to HTTPS: 모든 HTTP 접속을 HTTPS 로 리다이렉트 합니다. HTTPS Only: HTTPS 만 사용합니다. |
||
Allowed HTTP Methods | 허용하는 HTTP 메서드 종류입니다. GET, HEAD: 파일을 읽기만 할 때 선택합니다. GET, HEAD, PUT, POST, PATCH, DELETE, OPTIONS: 동적 콘텐츠 전송을 사용할 때 선택합니다. |
||
Object Caching | 파일의 캐시 유지 시간을 설정합니다. 유지 시간이 지나면 CloudFront 에서 파일이 삭제됩니다. Use Origin Cache Headers: 오리진 HTTP 헤더의 캐시 설정(Cache-Control)을 따릅니다. 각 파일마다 캐시 설정을 다르게 할 수 있는 장점이 있습니다. 캐시 설정이 없으면 기본 캐시 유지 시간은 24 시간 입니다. Customize: 기본 캐시 유지 시간을 따로 설정합니다. - Minimum TTL: 최소 캐시 유지시간 입니다. 초 단위로 설정해야 합니다. 이 Minimum TTL 설정 시간과 오리진 HTTP 헤더의 캐시 설정(Cache-Control) 시간 중 긴 시간이 적용됩니다. |
||
Forward Cookies | 오리진의 쿠키를 CloudFront 를 거쳐 사용자에게 전달할지 설정합니다. None: 쿠키를 전달하지 않습니다. 캐시 성능이 좀더 향상됩니다. Whitelist: 쿠키를 선별하여 전달합니다. (Whitelist Cookies: 전달할 쿠키 이름을 설정합니다. 각 쿠키는 새 줄로 구분합니다.) |
Forward Query Strings | CloudFront 에서 오리진으로 쿼리 문자열을 전달합니다. 오리진에서 쿼리 문자열에 따라 파일을 구분하여 보여주고 싶을 때 설정합니다. 설정하지 않으면 캐시 성능이 향상됩니다. |
Smooth Streaming | 실시간 스트리밍 프로토콜인 Microsoft Smooth Streaming 을 사용하고 싶을 때 설정합니다. | ||
Restrict Viewer Access | Signed URL 로 CloudFront 사용을 제한하고 싶을 때 설정합니다. |
- 아래에 계속해서 Distribution Settings 를 채워 넣습니다.
항목 | 설명 |
---|---|
Price Class | 요금 그리고 사용 지역을 설정합니다. Use All Edge Locations 를 지정하면 세계 모든 에지 로케이션을 이용할 수 있고 그만큼 좋은 성능을 보여줄 수 있으나 대신 다른 옵션보다 가격이 높습니다. Use Only US and Europe: 미국과 유럽의 에지 로케이션만 사용합니다. Use Only US, Europe and Asia: 미국과 유럽, 아시아의 에지 로케이션만 사용합니다. Use All Edge Locations: 모든 에지 로케이션을 사용합니다. 위의 두 옵션보다는 요금이 많이 나옵니다. |
Alternate Domain Names | Route 53 에서 도메인을 연결하려면 이 부분을 설정해야 합니다. 여러 도메인이라면 새 줄로 구분하고 최대 10 개까지 설정할 수 있습니다. 각자 구입한 도메인 이름을 설정하면 됩니다. |
SSL Certificate | HTTPS 프로토콜을 사용하기 위한 인증서 설정입니다. Default CloudFront Certificate: CloudFront 의 인증서를 사용합니다. Custom SSL Certificate: 사용자가 구입한 도메인과 인증서를 사용하고 싶을 때 설정합니다. 인증서 저장은 IAM 에서 할 수 있습니다. |
Custom SSL Client Support | 커스텀 SSL 클라이언트 설정입니다. 앞에서 Custom SSL Certificate 를 설정해야 합니다. All Clients: 전용 IP 사용자 지정 SSL 설정입니다. Only Clients that Support Server Name Indication: 서버 이름 표시(SNI)를 설정합니다. |
Default Root Object | CloudFront 배포 도메인의 최상위(Root)로 접속했을 때 기본적으로 보여줄 파일 이름입니다. |
Logging | CloudFront 접속 로그 설정입니다. Bucket for Logs: CloudFront 로그를 저장할 S3 버킷을 선택합니다. Log Prefix: S3 버킷에 로그를 저장할 때, 디렉터리 명을 설정합니다. |
Comment | 메모입니다. 추가적인 설명을 기록하고 싶을 때 사용합니다 |
Distribution State | 배포를 생성한 뒤 배포 상태 설정입니다. Enabled 로 설정하면 곧바로 사용할 수 있는 상태가 되며 Disabled 로 설정하면 그냥 배포만 생성하고 비활성화 상태로 둡니다. |
위의 순서대로 하면 Cloudfront 배포가 생성되었습니다.
Status 를 보면 inProgress 로 표시되며 인디케이터가 회전하고 있을 것입니다.
보통 배포가 모든 에지 로케이션에 전파되기까지 약 15~20 분이 소요됩니다.
모든 에지 로케이션에 전파가 완료되면 Status 가 Deployed 로 바뀝니다.
Domain Name 에 CloudFront 배포의 도메인이 표시됩니다.
웹 브라우저에서 접속하여 확인하고 이상이 없으면 끝입니다.
배포 삭제하는 방법
CloudFront 배포를 삭제하려면 배포 목록에서 배포를 선택한 뒤
Disable 버튼을 클릭하여 동작을 정지시킵니다.
모든 에지 로케이션에 전파되기까지 15~20 분 정도 걸립니다.
Status 가 Deployed 로 바뀌었다면 Delete 버튼을 클릭하여 배포를 삭제합니다.