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 주소를 가지며 클라이언트는 가장 가까운 서버로 라우팅됩니다.
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 Accelerator
와 CloudFront
는 둘 다 동일한 글로벌 네트워크를 사용하고 둘 다 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 시험합격!