jaymin_e.log
로그인
jaymin_e.log
로그인
[AWS SAA-C03] CloudFront & Global Accelerator
이재민
·
2024년 6월 9일
팔로우
0
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 보호도 자동으로 받게 된다.
이재민
문제 해결과 개선 과제를 수행하며 성장을 추구하는 것을 좋아합니다.
팔로우
이전 포스트
[AWS SAA-C03] Amazon S3 소개
다음 포스트
[AWS SAA-C03] AWS 스토리지 추가 기능
0개의 댓글
댓글 작성