클라우드/AWS

CDN - CloudFront, GlobalAccerator

박다큐 2022. 2. 8. 22:34

Content Delivery Network - CDN

 

읽기 능력을 향상 시켜주는 서비스

왜냐하면 콘텐츠가 엣지 로케이션에 캐시 및 분배 되기 때문

엣지 로케이션은 전 세계에 존재

엣지에서 캐싱 위에 DDoS 보호, Shield, AWS 웹 애플리케이션 방화벽과 통합됩니다.

즉 공격으로부터 보호하기 위해 방화벽을 제공함

인증서를 로드하여 외부 https 끝점을 노출 할 수 있다.

또한 트래픽을 암호화 해야할 경우 내부적으로 HTTPS로 애플리케이션과 통신

미국 사람이 호주에 있는 S3를 액세스 할 경우 미국에서 네트워크가 프라이빗 AWS 네트워크를 통해 S3 버킷까지 전송합니다.

 

CloudFront - Origins

S3버킷 앞에서 Clodfront를 사용

  • 파일을 전 세계적으로 배포하고 엣지에서 캐시하기 위한 흔한 패턴
  • S3와 CloudFront 사이에 보안이 강화됨(Origin Access Identity - OAI)
  • 이를 통해 s3 버킷이 오직 CloudFront에서만 통신하게 만듬
  • CloudFornt를 수신(S3에 파일을 업로드하는 데)으로 사용할 수 있습니다.

 

Custom Origin (HTTP)

  • HTTP EndPoint가 있어야함.
  • ALB 가 될 수 있다.
  • EC2
  • S3 WebSite (정적 S3 웹 사이트로 활성화 해야한다.)

 

CloudFront - ALB or EC2 를 Origin으로 사용한다면?

EC2

  • 보안이 약간 변경됨
  • HTTP 에서 퍼블릭으로 액세스 할 수 있어야한다.
  • 보안 그룹은 CloudFront 엣지 로케이션의 ip를 ec2 인스턴스로 허용해야 함
  • 이를 위해 웹 사이트에서 엣지 로케이션의 공개 ip목록이 있음
  • 보안 그룹은 공개 ip를 모두 허용해야함 -> CloudFront가 콘텐츠를 가져올 수 있도록 허용

ALB

  • CloudFront에서 액세스 할 수 있으려면 ALB가 공개되어야 한다.
  • EC2는 프라이빗이 될 수 있다.
  • ALB 보안 그룹은 엣지 로케이션의 공용 IP를 허용해야함

 

CloudFront 지리적 제한

배포에 액세스할 수 있는 사용자를 제한할 수 있습니다.

화이트리스트를 제공할 수 있다.

  • 승인된 국가 목록의 사용자들만 CloudFront를 사용할 수 있다.

블랙리스트

  • 목록에 있는 국가의 사용자들은 CloudFront를 사용할 수 없다.

이 방법을 사용할 때는 저작권법에 따라 콘텐츠에 대한 엑세스를 방지할 때 이다.

 

CloudFront vs Cross Region Replication

CloudFront

  1. 글로벌 엣지 네트워크를 사용
  2. 파일은 ttl에 대해 캐시된다.
  3. 살 수 있는 시간 - 하루
  4. 정적 콘텐츠가 있을 때 유용
  5. 전 세계적으로 잡기 위한 것

 

S3 Cross Region Replication

  1. 복제를 수행하려는 각 지역에 대해 설정해야함.
  2. 파일은 거의 실시간으로 업데이트
  3. 읽기 전용임으로 읽기 성는에 도움이 됨
  4. 동적 콘텐츠가 있을 때 유용
  5. 적은 수의 지역에서 낮은 대기 시간을 사용할 수 있어야 한다.
  6. 선택 지역으로 복제하기 위한 것



CloudFornt 서명 URL / 서명 쿠키

CloudFront 배포가 있고 그것을 비공개로 만들고 싶고 전 세계에 공유 콘텐츠로 사람들에게 액세스 권한을 부여하고 CloudFront 배포에서 누가 액세스 권한이 있고 어떤 것에 액세스 권한이 있는지 보고 싶다면 CloudFront 서명된 URL을 사용하거나 서명된 쿠키를 사용하면 된다.

 

URL과 쿠키를 생성하는 방법

  1. 정책을 생성
  2. URL 또는 쿠키가 만료되는 시멎과 이 데이터에 액세스 할 수 있는 IP 범위를 알려줘야함.
  3. 따라서 클라이언트의 대상 IP를 알고 있다면 반드시 해당 서명자와 신뢰할 수 있는 서명자를 사용해야함

 

URL 과 쿠키의 차이점

URL

  • 서명된 URL은 개별 파일에 대한 액세스를 제공
  • 파일당 하나의 URL을 얻는다.

쿠키

  • 서명된 쿠키가 있으면 액세스 가능
  • 여러 파일에 쿠키를 재사용 가능

  1. CloudFront에서 직접 서명된 url을 생성하기 위해 aws SDK를 사용
  2. 서명된 URL을 클라이언트에 반환
  3. 클라이언트는 데이터와 파일 및 객체 또는 CloudFront에서 직접 필요한 모든 것을 가져오기 위해 서명된 url을 사용 할 수 있다.(서명된 쿠키로도 작동 가능)

 

CloudFront 서명된 url 을 사용해야하는지 S3 사전 서명된 url을 사용해야 하는지

서로 다른 목적을 가짐

CloudFront 서명된 url 

  • 출처에 관계없이 경로에 대한 액세스를 허용합니다.
  • 계정 전체 키 쌍, 루트만 관리할 수 있습니다.
  • IP, 경로, 날짜, 만료별로 필터링할 수 있습니다.
  • 캐싱 기능을 활용할 수 있습니다.

 

S3 사전 서명 URL

  • URL에 미리 서명한 사람으로 요청을 발행합니다.
  • 서명 IAM 원리의 IAM 키를 사용합니다.
  • 수명이 제한되어 있습니다.
  • 따라서 사람들이 CloudFront 배포에 액세스 할 수 있도록 하려면 서명된 URL을 사용해야 S3 버킷에 액세스 할 수 있는데 그 이유는 OAI에 접근을 제한하는 버킷 정책 이 있기 때문
  • 만약 사용자가 S3에 대해 직접 사용 중이고 CloudFront를 사용하지 않고 사전 서명된 URL로 파일을 직접 배포하고 있다면 훌륭한 사용 사례

 

CloudFront 가격 및 가격 정책

CloudFront 가격

  • CloudFront 엣지 로케이션은 전 세계에 있기 때문에 데이터 아웃 비용은 다양하다.
  • 대륙 또는 지리적 지역에 따라 가격 테이블 표가 있음
  • 많은 데이터가 전송 될 수록 CloudFront 비용을 절감할 수 있다.

 

CloudFront 가격 정책

  • CloudFront 엣지 로케이션의 수를 줄여 가격을 줄일 수 있다.

 

CloudFront 멀티 오리진

  • 찾아보기

 

CloudFront 필드 수준 암호화

  • 애플리케이션 스택을 통해 민감한 정보를 보호하기 위한 것
  • HTTPS를 사용한 정보 중 암호화 사용과 함께 추가적인 보안 수준을 추가
  • 사용자가 민감한 정보를 전송하는 경우 엣지 로케이션이 그것을 암호화
  • 비대칭 암호화 사용
  • 엣지 로케이션은 공개 키를 사용하여 해당 필드를 암호화
  • 웹서버에서 개인 키를 이용해 해독 가능
  • 웹 서버에만 해당 필드를 해독하는 사용자 정의 애플리케이션 로직이 필요

 

Global Accelerator

글로벌 가속기를 사용하여 먼 거리의 통신도 대기 시간을 최소화 하여 가능한 한 빨리 네트워크를 통과 시키는 것이 목적

 

 Unicast IP

  • 하나의 서버가 하나의 IP 를 가지는 것

Anycast IP

  • 모든 서버는 동일한 IP를 가짐
  • 클라이언트는 가장 가까운 서버로 접근함

 

왜 중요하냐?

Global Accelerator는 Anycast IP 방식을 사용

Anycast IP는 사용자의 가장 가까운 엣지 로케이션으로 트래픽을 전송함

 

Global Accelerator는 EIP, EC2, ALB, NLB 와 작동하며 퍼블릭 또는 프라이빗 이다. 

문제가 발생하였을 경우 빠른 지역장애 조치를 할 수 있다.

 

헬스체크

하나의 ALB가 하나의 지역에 대한 헬스체크가 실패할 경우 1분 안에 정상 앤드포인트로 장애 조치가 이루어짐 - 재해 복구에 탁월함

 

CloudFront 와 Global Accelerator의 공통점과 차이점

공통점

  1. 둘 다 AWS 글로벌 네트워크와 전 세계 엣지 로케이션을 사용합니다.
  2. 두 서비스 모두 DDoS 보호를 위해 AWS Shield와 통합

차이점

CloudFront

  1. 캐시 가능한 콘텐츠(예: 이미지 및 비디오)의 성능을 향상시킵니다.
  2. 동적 컨텐츠(API 가속화 및 동적 사이트 제공 등)
  3. 콘텐츠가 엣지에서 제공됩니다.

Global Accelerator

  1. TCP 또는 UDP를 통해 광범위한 애플리케이션의 성능을 향상시킵니다.
  2. 엣지에서 하나 이상의 AWS 영역에서 실행 중인 응용 프로그램에 패킷을 프록시하고 있습니다.
  3. 게임(UDP), IoT(MQTT) 또는 Voice over IP와 같은 비 HTTP 사용 사례에 적합합니다.
  4. 정적 IP 주소가 필요한 HTTP 사용 사례에 적합합니다.
  5. 결정적이고 빠른 지역 장애 조치가 필요한 HTTP 사용 사례에 적합합니다.

 

'클라우드 > AWS' 카테고리의 다른 글

Bastion host 생성 및 Web EC2 접근  (0) 2022.08.08
AWS EC2 생성 및 mremoteNG SSH 접속  (0) 2022.08.06
AWS S3  (0) 2022.02.02
Route53 정책  (0) 2022.02.02
AWS - VPC CloudFormation 생성 방법  (0) 2021.10.20