티스토리 뷰
AWS 사용설명서에 나와있는 CloudFront에 대한 설명을 살펴보면,
라고 합니다. 즉, CloudFront는 웹 애플리케이션 개발자가 콘텐츠를 배포할 수 있는 방법을 제공한다는 것이다. 여기에 비용 절감과 속도는 덤으로!!
보통 CloudFront를 사용한다 했을때 가장 기본적인 구성은 아래와 같이 될 것이다.
사용자는 CloudFront로 Request를 보내면 이의 Path Pattern에 따라서 동적 콘텐츠면 VPC에 존재하는 Load Balancer로 보내 처리하고, 정적 콘텐츠면 Amazon S3로 보내 처리하는 흐름이다.
Simple Configuration
그럼 CloudFront를 통해 웹 애플리케이션 콘텐츠가 배포되는 과정을 살펴보자.
(Origin 목록과 Behavior 목록이 이미 작성되어 있는 상태라고 가정하고 진행한다. 왜냐하면 나는 설정법을 말하고 싶은게 아니라, 흐름을 보고싶은 것이기 때문이다)
1) URL 뒷 부분을 파싱해 Behavior의 Path Pattern과 비교해 일치하는 항목을 찾는다.
예를 들어, "http://ch4njun.xyz/images/test.jpg" 라는 URL로 Request가 되었다고 했을 때, "/images/*" 이라는 Path Pattern에 일치하기 때문에 0번째 항목을 선택한다.
2) 일치하는 Behavior 항목의 Origin을 선택한다.
위의 예시를 보면 "s3-summit2017-demo-renjoy/images" Origin을 선택하게 된다.
3) Origin에 설정된 Origin Domain Name & Path로 Forward한다.
각 Origin 항목에는 Origin Domain Name & Path가 설정되어 있고, 그 Domain Name & Path로 Forward 함으로써 내부에 존재하는 S3 Bucket, ELB, MediaPackage, MediaStore 등에 접근할 수 있다.
위의 예시를 보면 "s3-summit2017-demo-renjoy/images" Origin에 설정되어 있는 S3 Bucket의 Domain Name과 Path를 통해 S3 Bucket에 저장된 test.jpg에 접근하게 된다.
위 세 가지 흐름을 그림으로 이와같이 표현할 수 있다!
위에서 설명한 흐름은 가장 일반적이고 기본적인 흐름이다. 다양하게 활용될 수 있으니 열린 시야를 가지고 많은 인프라 구성을 떠올리면 좋을 것 같다!
Why?
그러면 CloudFront는 왜쓰고, 어떠한 장점이 있는지 대표적인 것 몇 가지만 살펴보자. 내가 찾아본 내용 외에도 다양한 사용 이유와 장점들이 존재하겠지만 일단은..
제일 위에서도 언급한 것처럼 비용의 절감과 속도의 향상을 이야기할 수 있다.
위 그림을 보면 왜 CloudFront를 사용했을 때 비용이 절감되는지 이해할 수 있다.
다음은 속도를 향상시킬 수 있는 이유에 대한 그림이다. 첫 번째의 경우는 넘어가고, 두 번째의 경우 CloudFront에서 제공하는 Keep-Alive 를 통해 속도를 향상시킬 수 있다는 내용의 그림이다.
이 외에도 DDoS를 방지하거나, 잘못된 Origin을 식별해 차단하거나, SSL의 성능을 향상시킬 수 있다. 또한 Layer 3/4 보호(Amazon Sheild) 혹은 Layer 7 보호(Amazon WAF)를 적용해 추가적인 보호 계층을 구성할 수도 있다.
'Cloud > Concept' 카테고리의 다른 글
[AWS] AWS Lambda 사용설명서 정리(1) - Security (0) | 2021.01.22 |
---|---|
[AWS] AWS VPC 사용설명서 정리(6) - Security (2) | 2020.12.26 |
[AWS] AWS VPC 사용설명서 정리(5) - Security (0) | 2020.12.25 |
[AWS] AWS VPC 사용설명서 정리(4) - 기본 VPC 및 서브넷 (0) | 2020.12.24 |
[AWS] AWS VPC 사용설명서 정리(3) - 서브넷 (0) | 2020.12.22 |