[AWS SAA-C03] CloudFront & Global Accelerator

이재민·2024년 6월 9일
0

AWS SAA-C03

목록 보기
11/22

CloudFront

  • CloudFront란 CDN, 컨텐츠 전송 네트워크를 의미한다.
  • CDN은 웹사이트의 컨텐츠를 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높인다.
  • 네트워크 전체에 캐싱되므로 전세계 사용자들이 낮은 레이턴시로 접근할 수 있어서 사용자 경험을 증대시킬 수 있다.
  • 컨텐츠가 전체적으로 분산되어 있으므로 DDoS 공격에서 보호를 받을 수 있다.

CloudFront의 원본 제공 방식은 2가지

S3 사용

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

Custom Origin(HTTP)

  • ALB, EC2 인스턴스, S3 웹사이트가 예시
  • 단 S3 웹사이트의 경우 버킷을 활성화해서 정적 웹 사이트로 설정해야 한다.
  • 그 외의 다른 HTTP 백엔드도 가능하다.

CloudFront와 CRR(교차 리전 복제) 차이점

  • CloudFront는 전세계의 엣지 네트워크를 이용한다.
  • 216개의 엣지 로케이션에 하루 동안 파일들이 캐싱된다.
  • 교차 리전 복제는 조금 다르다.
  • 복제를 원하는 각 리전에 이 설정이 되어 있어야 한다. 즉 전세계를 대상으로 한 것은 아니다.
  • 파일은 거의 실시간으로 갱신된다. 즉 캐싱이 되지 않고, 또한 읽기 전용으로만 설정이 가능하다.
  • 이런 것은 일부 리전을 대상으로 동적 컨텐츠를 낮은 지연 시간으로 제공하고자 할 때 유용하다.
  • CloudFront는 전세계에 걸친 컨텐츠 전송 네트워크라면, S3 교차 리전 복제는 다른 리전으로의 버킷 복제다.

Cloud Geo Restriction(지리적 제한 설정)

  • 사용자들의 지역에 따라 배포 객체 접근을 제어할 수 있다.
  • 접근이 가능한 국가 목록(Allow list)을 만들거나, 반대로 접근이 불가능한 국가 목록(Black list)을 만들어서 설정할 수 있다.
  • 이 국가는 서드 파티 지역 DB에서 설정한 것으로, 사용자의 IP가 어떤 국가에 해당하는지를 확인할 수 있다.
  • 사용사례는 컨텐츠 저작권법으로 인한 제한

Price Classes(가격 등급)

  • CloundFront 엣지 로케이션은 전 세계에 고루 분포해 있으므로 엣지 로케이션마다 데이터 전송 비용이 다르다.
  • CloudFront에서 더 많은 데이터가 전송될수록 비용은 낮아집니다
  • 비용 절감을 위해 CloudFront를 분산할 엣지 로케이션 수를 줄이는 방법이 있다.
  • 최상의 성능을 제공하는 Price Class All (전세계 모든 엣지 로케이션 사용)
  • Price Class 200도 있.
    • 대부분의 리전을 사용할 수 있지만 가장 비싼 리전은 제외(북미와 유럽 엣지 및 일부 리전 추가)
  • Price Class 100은 가장 저렴한 리전만 사용할 수 있다. (북미와 유럽 엣지)

Cache Invalidations (캐쉬 무효화)

  • CloudFront에는 항상 백엔드 Origin이 있다.
  • CloudFront 엣지 로케이션은 우리가 백엔드 Origin을 업데이트할 때 업데이트 사항을 모른다.
  • 캐시의 TTL이 만료되면 백엔드 Origin으로부터 업데이트된 콘텐츠를 받는다.
  • 우리는 전체 또는 일부의 캐시를 강제로 새로고침해서 캐시에 있는 타임 투 리브(TTL)를 모두 제거할 수 있다.
  • 이를 위해 CloudFront 무효화를 실행해야 하는데, 쉽게 말해 캐쉬를 제거하는 것이다.
  • 이때 특정 파일의 경로 혹은 전체 파일의 경로를 알려줘야한다.

Global Accelerator

  • 글로벌 애플리케이션이다.
    • 글로벌 사용자들이 직접 접근하려고 하는데 우리 애플리케이션은 오직 한 리전에 배치되어 있다.
  • 사용자들이 애플리케이션에 접근할 때는 공용 인터넷을 통하게 되는데 라우터를 거치는 동안의 수 많은 Hop으로 인해 상당한 지연이 발생할 수 있다.
    • 따라서 지연 시간을 최소화하기 위해 최대한 빨리 AWS 네트워크를 통하는 것이 좋다.
    • 이때 Global Accelerator를 사용한다.
  • Global Accelerator는 애니캐스트 IP 개념을 사용한다.
  • 애플리케이션을 라우팅하기 위해 AWS 내부 글로벌 네트워크를 활용한다.

유니 캐스트 & 애니캐스트

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

Global Accelerator 동작 방식

  • 공용 인터넷을 거쳐서 보내는 대신에 가장 가까운 엣지 로케이션과 통신한다.
  • 엣지 로케이션으로부터 사설 AWS 네트워크를 거쳐 ALB로 곧장 연결된다.
  • 애니캐스트 IP는 사용자와 가장 가까운 엣지 로케이션으로 트래픽을 직접 전송한다. 이것이 애니캐스트 IP의 장점.
    • 엣지 로케이션은 훨씬 안정적이고 지연 시간이 적은 사설 AWS 네트워크를 거쳐 애플리케이션 로드 밸런서로 트래픽을 전송한다.
  • Global Accelerator는 어떤 애플리케이션에 대해서도 전 세계의 유저들에게 두 개의 고정 IP 주소를 제공할 수 있다.
    • 탄력적 IP, EC2 인스턴스, ALB, NLB (모두 공용 or사설) 등과 함께 동작한다.
  • 지능형 라우팅으로 지연 시간이 가장 짧은 엣지 로케이션으로 연결되며 뭔가 잘못될 경우에는 신속한 리전 장애 조치가 이루어진다.
  • 아무것도 캐시하지 않기에 클라이언트 캐시와도 문제가 없다.
  • 우리가 사용하는 두 개의 애니캐스트 IP는 변하지 않는다.

헬스 체크

  • Global Accelerator가 애플리케이션에 대해 상태 확인을 실행한다. 그리고 애플리케이션이 글로벌한지 확인한다.
  • 한 리전에 있는 한 ALB에 대해 상태 확인을 실패하면 자동화된 장애 조치가 1분 안에 정상 엔드 포인트로 실행된다.
  • 상태 확인 덕분에 재해 복구에 특히 뛰어나다.
  • 클라이언트가 화이트리스트 해야 하는 단 두 개의 외부 IP만 존재하기 때문에 보안 측면에서도 매우 안전하다.
  • Global Accelerator를 통해 DDoS 보호도 자동으로 받게 된다.
profile
문제 해결과 개선 과제를 수행하며 성장을 추구하는 것을 좋아합니다.

0개의 댓글