Amazon CloudFront
CloudFront는 Amazon의 글로벌 CDN(Content Delivery Network) 서비스로 전 세계의 고객들에게 콘텐츠를 제공한다. 이는 Route 53은 제공하지 못하는 기능이다. CloudFront는 콘텐츠를 요청한 엔드 유저와 지리적으로 가까운 edge 로케이션을 기반으로 제공되는 네트워크 서비스로서 사용자가 콘텐츠 배포 방식을 설정하면 글로벌 네트워크를 통해 전 세계 고객에게 콘텐츠를 제공할 수 있다. Route 53 환경설정으로 DNS 요청을 CloudFront 배포에 전달하면 엔드 유저가 자동으로 자신과 가까운 엔드포인트로 연결된다. 이 Route 53의 DNS 요청 때문에 유저는 자신과 가장 가까운 CloudFront 엔드포인트로 요청을 보내는 것이다. 엔드 유저의 요청이 접수되면 CloudFront는 유저의 위치를 파악한 뒤 전송 지연 수준이 가장 낮은 엔드포인트를 찾는다. 엔드 유저가 해당 콘텐츠에 대한 요청을 처음 한 경우 콘텐츠는 EC2 웹서버 또는 S3 버킷 등 원본 서버에서 복사돼 제공되고 이후 다시 요청하게 되면 엔드포인트에 복사본을 캐싱해둔 상태이므로 전송속도가 훨씬 빨라진다. CloudFront 배포의 종류는 콘텐츠의 미디어 타입에 따라 달라지는데 웹 페이지나 그래픽 콘텐츠의 경우 web distribution을 선택하고, S3 버킷에 저장된 AdobeRTMP(Real-Time Messaging Protocol) 기반 비디오 콘텐츠의 경우 RTMP distribution을 선택하는 것이 좋다. 배포 환경 설정 시 배포에 무료로 사용할 수 있는 ACM(AWS Certificate Manager) SSL/TLS 암호화 인증서를 추가할 것인지 선택할 수 있다. 이 암호화 인증서는 CloudFront에서 엔드 유저의 디바이스로 전송되는 중간에 콘텐츠를 가로채는 네트워크 스니핑 행위나 중간자 공격을 방어하는 데 도움이 된다. CloudFront가 지원하는 콘텐츠 원본 또는 오리진은 Amazon S3, AWS MediaPackage 채널 엔드포인트, AWS MediaStore 컨테이너 엔드포인트이다. Amazon S3는 버킷 접속할 수 있는 모든 S3 버킷이고 AWS MediaPackage 채널 엔드포인트는 비디오 패키징 및 원본 추적 기능, AWS MediaStore 컨테이너 엔드포인트는 미디어 최적화 스토리지 서비스이다. 라우팅 정책에는 지연 라우팅, 가중치 라우팅, 지리적 라우팅, 실패 대응 라우팅, 다변량 라우팅이 있다. 지연 라우팅(latency-based routing)은 다수의 AWS Region에서 실행되는 자원을 조합해 최고의 사용자 경험을 제공하기 위한 방법이다. 가중치 라우팅 정책(weighted policy)은 사용자가 설정한 비율에 따라 다수의 자원에 트래픽을 분산한다. 예시로 3개의 서버가 존재하고 모두 동일한 웹 애플리케이션을 호스팅하고 있다고 생각해 보자. 혹은 세 개의 서버 그룹으로 구성된 로드 밸런서로 가정해도 무방하다. 이 중 일부 서버는 다른 서버에 비해 컴퓨팅과 메모리 용량에 여유가 있어서 좀 더 많은 트래픽을 처리할 수 있는데 서버에 모두 같은 사용자 트래픽을 전송하는 것은 비효율적이다. 이 경우 용량에 여유가 있는 좀 더 큰 서버의 가중치를 50으로 하고, 나머지 두 서버는 25로 설정해 용량이 큰 서버가 전체 요청의 50%를 처리하고 나머지 서버가 각각 25%를 처리할 수 있다. Route 53에서 가중치 정책을 적용하려면 서버마다 별도의 레코드 세트를 생성하고 각 레코드 세트마다 동일한 세트 ID 값을 할당한 뒤 인스턴스마다 가중치 값을 입력하면 된다. Route 53은 동일한 세트 ID를 보고 이들 자원이 함께 작업을 처리한다는 사실을 알게 된다. 두 레코드 세트의 세트 ID에 동일한 값을 설정하면 Route 53은 이들 두 자원 중 전송 지연이 가장 낮은 쪽으로 트래픽을 전송한다. 실패 대응 라우팅(failover routing) 정책은 헬스 체크 결과 정상적으로 작동하는 자원에 먼저 트래픽을 전송한다. 만약 기본 자원가 오프라인이 되면 다음 트래픽은 2차 레코드 세트로 정의된 보조 자원으로 전송하는 방식이다. 이때 다른 정책과 비교해 각 레코드 세트의 ID를 기준으로 이상적인 조합을 생성한다. 지리적 라우팅(geolocation routing)은 대륙, 국가, 미국의 주 등 요청이 발신된 지역을 기준으로 라우팅 방식을 결정한다. 데이터에 대한 요청에 신속하게 응답하기 위한 지연 라우팅과는 다른 방식이다. 이 방식을 사용하면 전송 속도보다 타깃 고객의 니즈에 맞는 콘텐츠를 제공하기에 적합하며, 해당 지역 고객이 선호하는 언어로 된 웹 페이지를 제공하거나 제공이 금지된 콘텐츠를 차단하고 특정 지역에서 동시다발적인 마케팅 캠페인을 시행할 수 있다. Route 53은 종종 요청 IP 주소의 발신지를 식별하지 못하는 경우가 있으므로 기본 레코드 설정에서 이러한 부분을 보완할 수 있도록 해야 한다. 고가용성을 제공하기 위해 헬스 체크 설정과 다변량 라우팅(multivalue routing) 정책을 결합할 수 있다. 다수의 변수 값을 지닌 레코드 세트로 하나의 자원을 가리키도록 하고, 이를 헬스 체크와 연계하는 방식이다. 최대 8개의 레코드를 이용해 병렬적으로 자원을 가리키도록 할 수 있으며, 세트 ID 값으로 서로를 연결하면 된다. Route 53은 헬스 체크를 통해 자원 상태를 모니터링하고 정상 자원에 무작위로 트래픽을 전송한다.
'AWS 공부' 카테고리의 다른 글
AWS 보안 (0) | 2022.06.08 |
---|---|
AWS 성능 효율화 (0) | 2022.06.06 |
AWS DNS Route53 (0) | 2022.06.03 |
AWS IAM (0) | 2022.06.02 |
AWS 데이터베이스_3 (0) | 2022.06.01 |
댓글