[AWS SAA] CloudFront

junghan·2023년 3월 1일
0

AWS SAA

목록 보기
28/51
post-thumbnail

CloudFront

Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다. CloudFront는 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공합니다. CloudFront를 통해 서비스하는 콘텐츠를 사용자가 요청하면 지연 시간이 가장 낮은 엣지 로케이션으로 요청이 라우팅되므로 가능한 최고의 성능으로 콘텐츠가 제공됩니다.

  • Content Distribution Network(CDN)

  • 읽기 능력을 향상시키기 위해 컨텐츠는 엣지에 캐시됩니다.
    • 콘텐츠가 이미 지연 시간이 가장 낮은 엣지 로케이션에 있는 경우 CloudFront가 콘텐츠를 즉시 제공합니다.
    • 콘텐츠가 엣지 로케이션에 없는 경우 CloudFront는 콘텐츠의 최종 버전에 대한 소스로 지정된 오리진(Amazon S3 버킷, MediaPackage 채널, HTTP 서버(예: 웹 서버) 등)에서 콘텐츠를 검색합니다.

  • 대략 200개 이상의 엣지가 전세계적으로 분포되어 있다.

  • 배포된 서비스를 거부하는 등의 공격으로부터 보호하기 위한 방화벽을 만들어 DDos 공격을 막습니다. (서버가 분리된 환경 자체가 DDOS 공격을 막는 것에 도움을 줍니다.)

  • 인증서를 로드해 HTTPS 엔드포인트를 expose 해주며 해당 트래픽을 암호화 해야 하는 경우 내부적으로 HTTPS로 애플리케이션과 통신합니다.



CloudFront Point of Presence, PoP

AWS의 엣지 지도를 보면, 전세계에 있는 AWS 엣지와 엣지 캐쉬 분포를
볼 수 있습니다.

가령 호주에 위치한 S3 버킷에 웹사이트를 만들었다 하더라도 미국에 있는 사용자는 CloudFront를 이용해 미국에 있는 엣지에 컨텐츠를 요청하게 됩니다.
그럼 CloudFront가 호주에서 이 컨텐츠를 페치해서 가져오게 되죠.
그리고 미국의 다른 사용자가 똑같은 컨텐츠를 요청한다면, 이 컨텐츠는
호주에서 출발하지 않고 엣지에서 직접 컨텐츠를 제공받게 됩니다.
같은 방식으로, 사용자가 한국에 있다면 한국에 있는 엣지 포인트로 접속해서
앞서와 같은 방식으로 컨텐츠를 제공받을 수 있습니다.



CloudFront의 원본 제공 방식

S3 Bucket

  • 먼저 S3 버킷으로, CloudFront를 통해 파일을 분산하고 캐싱할 수 있게 합니다
  • 그리고 버킷에는 CloudFront만 접근할 수 있게 보장하는데, OAC라 불리는, Origin Access Control(원본 접근 제어)로 기존의 OAI를 대체합니다.
  • CloudFront를 통한 Ingress방식

Custom Origin(HTTP)(사용자 지정)

  • Application Load Balancer(ALB)
  • EC2 instance
  • S3 website(S3 버킷과는 다르며 이 경우 S3 버킷을 정적 웹사이트로 지정해야 한다)
  • 사용자가 원하는 백엔드(ex. 온프레미스 인프라)

TIP

사용자 지정 HTTP 백엔드에 접근을 하려할 때 CloudFront는 가상 프라이빗 클라우드가 없기 때문에 EC2든 ALB든 공용IP가 접근할 수 있도록 보안그룹을 설정해줘야합니다.



CloudFront 지리적 제한

블랙리스트와 화이트리스트에 제한하고 싶은 국가를 지정해 원하는 나라에서 들어온 IP만 접근하도록 할 수 있습니다.

  • 이 때, 나라에 대한 정보는 Geo-IP라는 서드파티 데이터베이스를 통해 IP 정보를 얻을 수 있습니다.

예를 들어, 저작권 법 상 다른 나라의 접근을 막아야 할 때가 있는데, 미국에 있는 정보를 프랑스에서 얻으려고 하면 이를 제한해야 하는 상황이 올 수 있습니다.



CloudFront vs S3 cross region replication

CloudFront

  • CloudFront는 글로벌 엣지 네트워크를 사용합니다.
  • TTL에 따라 파일이 캐시됩니다(보통은 하루).
  • 전세계적으로 접근 가능해야 하는 S3 정적 컨텐츠가 있을 때 사용하기 좋습니다.

S3 cross region replication

  • 이는 사용자가 replication 하고 싶은 각 지역에 대한 설정이 필요합니다.
  • 파일은 거의 실시간으로 업데이트 됩니다..
  • 읽기 전용이기 때문에 읽기 속도를 향상시키는 데 도움이 됩니다..
  • 적은 수의 지역에서 latency가 짧아야 하는 동적 컨텐츠에 사용하기 좋습니다.


CloudFront – 캐시 무효화

  • 백엔드 오리진을 업데이트하는 경우 CloudFront는 이에 대해 알지 못하며 TTL이 만료된 후에만 새로 고침된 콘텐츠를 가져옵니다.
    • 업데이트가 바로 반영되지 못하는 문제

  • CloudFront Cache Invalidations를 수행하면 전체 또는 부분 캐시 새로 고침(따라서 TTL 우회)을 강제할 수 있습니다.
    • 모든 파일() 또는 특수 경로(/images/)에 대한 캐시의 경로를 무효화하는 조치를 통해 캐시로부터 파일을 지우고,
    • 엣지 로케이션에 CloudFront가 새 요청을 보내면 더이상 캐시에 해당 파일이 없다고 판단하고 새로운 파일을 받아 업데이트합니다.



https://kungfutech.edu.vn/bai-viet/aws/cloudfront-advanced

CloudFront 가격 계층

특정 국가에서는 가격이 저렴한 국가에 비해 두배 가까이 가격이 뛸 수 있기 때문에, 비용절감을 위해 엣지 로케이션 수를 줄일 수 있습니다.

세 가지 가격대:

  1. 가격 등급 모두: 모든 지역 – 최고의 성능

  2. 가격 등급 200: 대부분의 지역이지만 가장 비싼 지역은 제외

  3. 가격 등급 100: 가장 저렴한 지역만



AWS Certified Solutions Architect Associate 시험합격!

profile
42seoul, blockchain, web 3.0

0개의 댓글