Wisdom’s Cloud

[AWS] 20. Amazon CloudFront 본문

AWS/Beginner

[AWS] 20. Amazon CloudFront

지혜로운지혜쓰 2021. 3. 11. 00:28

구분 내용
서비스명 Amazon CloudFront
설명 고도로 프로그래밍 가능하고 안전한 콘텐츠 전송 네트워크(CDN)
주요 특징 - 정적/동적 콘텐츠 가속 서비스
- HTTP/HTTPS 서비스, Custom SSL 지원
- 커스텀 오류 응답
- 쿠키/헤더 오리진 서버 전달
- 다양한 통계 보고서
- 콘텐츠 보안: Signed URL, Signed Cookie
- API 호출 감시: CloudTrail 연계
- 업로드 가속
프리티어(Free Tier) 데이터 송신 50GB와 HTTP/S 요청 2백만 건

 

 

CloudFront 특징
  • Amazon CloudFront Global Edge 서비스: Amazon CloudFront는 글로벌 사용자를 대상으로 보다 적은 지연 시간으로 콘텐츠를 제공하기 위해 42개국 84개 도시에서 216개 CDN PoP의 글로벌 네트워크를 보유하고 있다. 전세계 모든 글로벌 CDN 서비스 벤더 중 가장 빠르게 성장하고 있는 글로벌 CDN 서비스 제공자이다.
  • Amazon CloudFront 연결 가능한 Origins 서비스: Amazon CloudFront는 오리진으로 여러 AWS 리소스와 Custom 시스템 사용을 지원한다. 예를 들어 Amazon S3 버킷이나 Amazon EC2 Instance, Elastic Load Balancer 또는 사용자 지정 오리진(다른 위치에 서비스 중인 HTTP 웹 서버 등)을 지정할 수 있다.
  • CloudFront 콘텐츠 제공 방식
  1. 사용자가 웹 사이트 또는 애플리케이션에 액세스하고 이미지 파일 및 HTML 파일 같은 하나 이상의 객체를 요청한다.
  2. DNS가 요청을 최적으로 서비스할 수 있는 CloudFront 엣지 로케이션으로 요청을 라우팅한다. 이 위치는 일반적으로 지연 시간과 관련해 가장 가까운 ClouFront 엣지 로케이션이며, 요청을 해당 위치로 라우팅한다.
  3. 엣지 로케이션에서 CloudFront는 해당 캐시에 요청된 파일이 있는지 확인한 후, 파일이 캐시에 있으면 CloudFront는 파일을 사용자에게 반환하고, 파일이 캐시에 없으면 다음을 수행한다.
  4. CloudFront는 배포의 사양과 요청을 비교하고 파일에 대한 요청을 해당 파일 형식에 적절한 오리진 서버로 전달한다. 오리진 서버는 파일을 다시 CloudFront 엣지 로케이션으로 보낸고, 오리진에서 첫 번째 바이트가 도착하면 CloudFront가 파일을 사용자에게 전달하기 시작한다. CloudFront는 다른 사용자가 해당 파일을 요청할 때 엣지 로케이션의 캐시에 파일을 추가한다.

 

 

CloudFront 주요 기능
  • 정적 콘텐츠에 대한 캐싱 서비스와 비디오 스트리밍 서비스
  • 동적 콘텐츠에 대한 캐싱 서비스
  • 다양한 보안 서비스
  • 비용 최적화를 통한 비용 절감

 

 

실습: Amazon S3 정적 웹 사이트 구성하기

 

1. AWS 계정으로 로그인한 후 서비스 메뉴에서 스토리지의 [S3]로 이동한다. 그리고 버킷에서 [버킷 만들기] 버튼을 클릭한다.
2. 버킷 만들기 페이지에서 버킷 이름은 "bk20210310"으로 작성하고, AWS 리전은 "아시아 태평양(서울)"로 선택한 후 [버킷 만들기] 버튼을 클릭한다.
3. 생성한 버킷을 클릭한다.
4. 생성한 버킷의 객체에서 [폴더 만들기] 버튼을 클릭한다.
5. 폴더 만들기 페이지에서 폴더 이름을 "CloudFront_test"로 입력하고 [폴더 만들기] 버튼을 클릭한다.
6. 업로드를 위한 테스트 이미지를 다운로드 받은 후 생성된 폴더로 이동하여 [업로드] 버튼을 클릭한다.
7. 업로드 페이지에서 [파일 추가] 버튼을 눌러 다운로드 받은 이미지 파일을 선택한 후 [업로드] 버튼을 클릭한다.
8. 업로드한 파일로 이동한 후 권한 탭에서 [편집] 버튼을 클릭하여 퍼블릭 액세스에 권한을 부여를 한다.
9. 그리고 속성 탭으로 이동한 후 링크를 클릭하여 이미지가 정상적으로 웹 브라우저에서 출력되는지 확인한다.

 

 

실습: CloudFront 웹 배포 생성 후 S3와 연결하기

 

1. 서비스 메뉴에서 네트워킹 및 콘텐츠 전송의 [CloudFront]로 이동한다.
2. Amazon CloudFront - Get started 페이지에서 [Create Distribution] 버튼을 클릭한다.
3. Select a delivery method for your content 페이지에서 [Get Started] 버튼을 클릭한다.
4. Create Distribution 페이지에서 Origin Settings의 Origin Domain Name을 이전에 생성한 S3 Bucket으로 선택한 후 [Create Distribution] 버튼을 클릭한다.

* 나머지 옵션을 기본으로 설정하면 CloudFront는 다음과 같이 동작한다.

Amazon CloudFront의 URL로 요청되는 모든 Request는 이전에 지정된 Amazon S3 Bucket으로 전달되고,

최종 사용자가 HTTP 또는 HTTPS를 모두 사용할 수 있으며,

Amazon CloudFront Edge Server는 24시간 동안 콘텐츠를 캐시하고,

모든 사용자가 접속 가능하다. *

 

5. CloudFront Distributions 페이지로 이동하면 CloudFront 웹 배포가 전세계 Edge 서버에 진행되며 배포 진행에 대한 Status 값이 "In Progress"에서 "Deployed"로 표시되는 것을 확인한다.
6. 생성한 CloudFront로 이동하여 Domain Name을 확인한 후 복사한다.
7. CloudFront의 웹 페이지 접속을 확인하기 위해 다음과 같이 메모장에 HTML을 작성하고 본인의 CloudFront Domain Name과 파일 이름을 입력한 후 index.html 파일로 저장한다.
8. 다시 S3로 이동하여 이전에 생성된 Bucket의 루트 페이지에 [업로드] 버튼을 클릭한 후 Index.html 파일을 추가한다.
9. 업로드한 파일로 이동한 후 권한 탭에서 [편집] 버튼을 클릭하여 퍼블릭 액세스에 권한을 부여를 한다.
10. 웹 브라우저에 CloudFront에 등록된 Domain Name에 /index.html을 추가하여 웹 페이지에 접속한 후 정상적으로 웹 페이지와 이미지가 출력됨을 확인한다.
11. 캐시 무효화 기능을 통한 콘텐츠 업데이트 S3에 업로드되었던 HTML을 다음과 같이 수정한다. PC에서 파일 수정 후 기존에 업로드된 파일을 삭제하고 기존과 동일한 방식으로 업로드를 진행한다.
12. 파일 업로드 진행 후 S3 속성의 링크를 클릭하여 업데이트된 내용이 반영된 웹 페이지가 정상적으로 로딩됨을 확인한다.
13. CloudFront를 통해 웹 페이지 접속 시 수정 부분이 정상적으로 반영되어 웹 페이지가 로딩되는지 확인하면, S3를 통해 접속했을 때와 다르게 이전 페이지가 캐시되어 출력됨을 확인할 수 있다.
14. 무효화(Invalidation) 기능을 통해 캐시를 삭제하기 위해 CloudFront Distribution 페이지로 접속한 후 Invalidation 탭에서 [Create Invalidation] 버튼을 클릭한다.
15. Create Invalidation 페이지에서 Object Paths에 "/index.html"을 입력한 후 [Invalidate] 버튼을 클릭한다.
16. 무효화 작업을 등록하고 2~3분 후에 완료되었음을 확인할 수 있다.
17. 다시 CloudFront 웹 페이지를 호출하면 다음과 같이 수정된 내용이 정상적으로 반영되었음을 확인할 수 있다.

'AWS > Beginner' 카테고리의 다른 글

[AWS] 22. Amazon IAM  (0) 2021.03.11
[AWS] 21. 클라우드 용어 정리(9)  (0) 2021.03.11
[AWS] 19. 클라우드 용어 정리(8)  (0) 2021.03.10
[AWS] 18. Amazon Auto Scaling  (0) 2021.03.10
[AWS] 17. 클라우드 용어 정리(7)  (0) 2021.03.05