AWS Certified Solutions Architect Associate [10] CloudFront 및 Global Accelerator

CHAN LIM·2022년 7월 23일
0

CloudFront

CloudFront

  • 컨텐츠 전달 네트워크 (Content Delivery Network [CDN])
  • 컨텐츠가 엣지 로케이션에서 분배 및 캐시가 되어 판독 능력을 향상시킵니다.
  • 전 세계 200여개의 엣지 로케이션이 존재하고 점점 추가되고 있습니다.
  • 서비스 거부를 배포하는 이러한 공격으로부터 보호막과 웹 애플리케이션 방화벽을 제공 즉, DDoS 보호를 제공합니다.
  • 인증서를 로드하여 외부 HTTPS 엔드 포인트를 노출하고 해당 트래픽을 암호화해야 하는 경우
    내부 HTTPS에서 애플리케이션에 내부적으로 통신하게끔 해줍니다.
  • 보안이 철저하다는 것과 엣지 로케이션을 기반으로 애플리케이션을 전 세계적으로 배포하기에 좋은 프론트이다.
  • 메인 S3 버킷에서 지연 시간과 로드를 줄일 수 있습니다.

CloudFront - Origin

  • S3 bucket
    • 사용하는 것은 전 세계에 파일을 배포하고 엣지에서 캐시
    • 오리진 액세스 신분(OAI)으로 클라우드 프론트와 S3 버킷 사이의 보안을 강화해줍니다.
    • 클라우드 프론트를 세계 어디서든 파일을 S3에 업로드할 입구처럼 사용할 수도 있습니다.
  • 커스텀 오리진(HTTP)
    • 애플리케이션 로드 밸런서
    • EC2 인스턴스
    • S3 웹사이트 (우선 정적 S3 웹사이트로 버킷을 활성화해야 합니다.)

전반적인 작동 방식


오리진으로서의 S3


ALB 또는 EC2으로서의 오리진


CloudFront 지리적 제한

  • 분산으로의 액세스에 제한을 둘 수 있습니다.
    • 화이트 리스트
      • 이 리스트에 있는 허용된 국가의 사용자들만이 클라우드 프론트에 액세스할 수 있도록 하는 것입니다.
    • 블랙리스트
      • 특정 국가의 사용자들이 분배에 액세스할 수 없도록 할 수도 있습니다.

  • 제3자 회사의 지리적 IP 데이터베이스를 이용해 국가들의 허용 여부가 결정됩니다.
    • 특정 콘텐츠에 액세스를 제한하는 저작권법이 있을 때 이런 제한을 사용할 수 있습니다.

CloudFront vs Cross Region Replication

  • CloudFront
    • 글로벌 엣지 네트워크
    • TTL (Time To live)를 위한 파일을 캐시됩니다.
    • 전 세계에서 이용 가능해야 하는 정적인 콘텐츠에 적합합니다.
  • S3 리전 간 복제
    • 복제가 일어나도록 할 각 리전에 설정되어야 합니다.
    • 파일이 거의 실시간으로 업데이트 됩니다.
    • 읽기 전용이기에 읽기 성능이 좋습니다.
    • 따라서 S3 리전 간 복제는 적은 수의 리전에서 낮은 지연 시간으로 사용이 가능해야 하는 동적인 콘텐츠에 적합할 겁니다.

CloudFront Signed URL / Signed Cookies

  • 클라우드 프론트 분산을 비공개로 만들기 위해서
    • 세계 각지의 사람들에게 프리미엄 유료 콘텐츠에 대한 액세스를 주어야 합니다.
  • 하지만 누가, 어떤 클라우드 프론트 분산에 액세스하는지를 알기 위해서
    클라우드 프론트 서명된 URL이나 쿠키를 사용할 수 있습니다.
    • 정책을 연결해 해당 URL이나 쿠키가 언제 만료되는지
    • 이 데이터에 액세스할 수 있는 IP 범위는 어디인지
    • 생성할 수 있는지를 의미하는 신뢰할 수 있는 서명자도 지정해야 합니다.
  • URL은 얼마나 오래 유효해야 하는 걸까요?
    • 공유 컨텐츠 (영화, 음악) : 몇 분 정도로 짧아도 됩니다.
    • 비공개 컨텐츠 : URL이나 서명된 쿠키가 수 년간 지속되게 할 수도 있습니다.

  • 서명된 URL과 쿠키의 차이
    • 서명된 URL
      • 개별 파일에 대한 액세스를 줍니다.
    • 쿠키
      • 다수의 파일에 액세스를 줍니다.
      • 다수의 파일에 서명된 쿠키는 하나입니다.

CloudFront Signed URL 다이어그램

  • 서명된 URL 뿐만 아니라 서명된 쿠키도 방식이 동일합니다.

CloudFront Signed URL vs S3 pre-Signed URL

  • CloudFront Signed URL
    • 오리진에 상관 없이 경로에 대한 액세스를 허용합니다.
    • 계정 내 키 페어이기 때문에 루트만 관리할 수 있습니다.
    • IP, 경로, 날짜, 만료 등으로 필터링할 수 있습니다.
    • 클라우드 프론트에 있는 모든 캐싱 기능을 활용할 수 있습니다.
  • S3 pre-Signed URL
    • 사람으로서 요청을 발행합니다.
    • IAM 권한자로서 IAM 키를 사용합니다.
    • 수명이 제한적입니다.

CloudFront - Pricing

  • CloudFront는 전 세계에 걸쳐 존재합니다.
  • 따라서 엣지 로케이션에 따른 데이터 전송 비용도 다를 것입니다.
    • 대륙 또는 지리적 위치에 따라 요금이 다릅니다.
  • 클라우드 프론트에서 더 많은 데이터가 전송될수록 요금은 낮아집니다.

가격 등급

  • 전 세계에 걸쳐 클라우드 프론트 분산에 사용할 엣지 로케이션의 수를 줄여 가격을 낮출 수 있습니다.
  • 등급은 세 가지
    • Price Class All
      • 모든 지역에 제공하고 최상의 성능을 보입니다만, 비쌉니다.
    • Price Class 200
      • 가장 비싼 지역을 제외한 대부분의 지역을 제공합니다.
    • Prcie Class 100
      • 가장 저렴한 지역만을 제공합니다.

다중 오리진

콘텐츠의 유형이나 경로에 따라
클라우드 프론트를 거치는 라우트나 경로를 리다이렉팅해 다른 오리진으로 라우팅하고 싶어질 수도 있습니다.

: Ex)
이미지용 경로나 API용 경로 또는 그 외의 모든 경로가 있다고 한다면
어느 경로건 클라우드 프론트에서는 정해진 경로를 통해 다양한 캐시 작업을 설정할 수 있습니다.


오리진 그룹

  • 고가용성을 증가시키고 한 오리진에서 장애가 발생한 경우 장애 조치가 가능하게 해줍니다.
  • 오리진 그룹
    • 하나의 주 오리진하나의 보조 오리진으로 구성됩니다.
    • 만약 주 오리진에 장애가 발생하면 클라우드 프론트가 보조 오리진으로 사용합니다.

필드 수준의 암호화

  • 애플리케이션 스택을 통해 민감한 정보를 보호하는 기능입니다.
  • HTTPS를 사용하는 인플라이트 암호화와 더불어 추가적인 보안을 더해 줍니다.
    • 사용자가 민감한 정보를 전송할 때마다 엣지 로케이션이 이를 암호화하고 개인 키에 대한 권한을 지닌 사용자만이 이 정보를 해독할 수 있도록 하는 개념입니다.
  • 이 기능은 비대칭 암호화를 사용합니다.
  • 사용
    • Amazon CloudFront로 보내는 POST 요청의 경우 암호화를 원하는 필드를 최대 10개까지 지정할 수 있습니다.
    • 이 필드를 해독할 공용 키도 함께 지정됩니다.

AWS Global Accelerator

유니캐스트 IP vs 애니캐스트 IP

  • 유니캐스트 IP
    • 하나의 서버가 하나의 IP 주소를 가집니다.
  • 애니캐스트 IP
    • 모든 서버가 동일한 IP 주소를 가지며 클라이언트는 가장 가까운 서버로 라우팅됩니다.

AWS Global Accelerator

  • 애니캐스트 IP 개념을 사용합니다.
  • 애플리케이션을 라우팅하기 위해 AWS 내부 글로벌 네트워크를 활용합니다.
  • 애니캐스트 두 개가 생성되는데 둘 다 글로벌합니다.
  • 엣지 로케이션으로 트래픽을 직접 전송합니다.
  • 훨씬 안정적이고 지연 시간이 적은 Private AWS 네트워크를 거쳐 애플리케이션 로드 밸런서로 트래픽을 전송합니다.

    Global Accelerator는 어떤 애플리케이션에 대해서 도전 세계의 유저들에게 두 개의 고정 IP 주소를 제공할 수 있도록 해준다는 점에서 매우 독특합니다.

  • Elastic IP, EC2 인스턴스 애플리케이션 로드 밸런서 네트워크 로드 밸런서와 함께 작동하며 Public일 수도 있고 Private일 수도 있습니다.
  • 네트워크를 거치기 때문에 안정적인 성능을 보여줍니다.
    • 지능형 라우팅으로 지연 시간이 가장 짧은 엣지 로케이션으로 연결됩니다.
    • 아무것도 캐시하지 않기에 클라이언트 캐시와도 문제가 없습니다.
    • 내부 AWS 네트워크가 오기 때문에 완벽합니다.
  • 상태 확인
    • 애플리케이션이 글로벌한지 확인합니다.
    • 한 리전에 있는 한 ALB에 대해 상태 확인을 실패하면 자동화된 장애 조치가 1분 안에 정상 엔드 포인트로 실행됩니다.
    • 상태 확인 덕분에 재해 복구에 특히 뛰어납니다
  • 보안
    • 단 두 개의 외부 IP만 존재하기 때문에 보안 측면에서도 매우 안전합니다.
    • DDoS 보호도 자동으로 받게 됩니다.
      • 보안 섹션에서 살펴볼 AWS Shield 덕분입니다.

AWS Global Accelerator vs CloudFront

  • Global AcceleratorCloudFront는 둘 다 동일한 글로벌 네트워크를 사용하고 둘 다 AWS가 생성한 전 세계의 엣지 로케이션을 사용합니다.
  • DDoS 보호를 위해 둘 다 AWS Shield와 통합됩니다.

  • CloudFront
    • 이미지나 비디오처럼 캐시 가능한 내용과 API 가속 및 동적 사이트 전달 같은 동적 내용 모두에 대해 성능을 향상시킵니다.
    • 이 내용은 엣지 로케이션으로부터 제공됩니다.
    • 엣지 로케이션은 가끔 한 번씩 출처로부터 내용을 가져올 겁니다.

  • AWS Global Accelerator
    • TCP나 UDP상의 다양한 애플리케이션 성능을 향상시킵니다.
    • 패킷은 엣지 로케이션으로부터 하나 이상의 AWS 리전에서 실행되는 애플리케이션으로 프록시됩니다.
    • 여러분이 게임이나 IoT 또는 Voice over IP 같은 비 HTTP를 사용할 경우에 매우 적합합니다.
    • 글로벌하게 고정 IP를 요구하는 HTTP를 사용할 때도 매우 유용합니다.
    • 결정적이고 신속한 리전 장애 조치가 필요할 때도 좋습니다.

From
AWS Certified Solutions Architect Associate 시험합격!

profile
클라우드, 데이터, DevOps 엔지니어 지향 || 글보단 사진 지향

0개의 댓글