AWS 기술 블로그

Amazon CloudFront 지속적 배포를 사용하여 CDN 변경 사항을 안전하게 검증하기

글은 AWS Networking & Content Delivery Blog 게시된 Use CloudFront continuous deployment to safely validate CDN changes by Joe Viggiano, Carl Johnson and Vishal Anand 한국어 번역 편집하였습니다.

콘텐츠 전송 네트워크 (CDN) 인 Amazon CloudFront 는 사용자와 디바이스가 웹 사이트나 애플리케이션에 연결하기 위한 관문으로 사용됩니다. CDN 구성의 변경은 문제를 일으킨 원인에 대한 가시성의 부족으로 서비스 중단을 초래할 수 있습니다. CDN 구성 변경 테스트를 제공하기 위한 오늘날 기존 업계 솔루션은 클라이언트측에 사용자 지정 헤더를 주입하거나 클라이언트 DNS 설정을 재정의하거나 별도의 테스트 도메인을 구현하는 것입니다. 이는 대규모 테스트를 어렵게 만듭니다. 고객은 모바일 디바이스, 개인용 컴퓨터, 스마트 TV, Amazon Fire TV 등 다양한 클라이언트 유형을 테스트하기 위해 애플리케이션에 복잡한 기능 플래그를 구축해야 할 수도 있습니다. 이 접근 방식은 확장성이 부족할 뿐만 아니라 도입된 변경 사항이 워크로드에 부정적인 영향을 미치지 않도록 운영 트래픽 비율을 조정하는 것 또한 어렵게 합니다.

Amazon CloudFront 지속적 배포 시작

이제 CloudFront 지속적 배포로 전체 워크로드가 변경 사항이 있는 환경으로 전달되기 전에 프로덕션 트래픽의 일부를 사용하여 CloudFront의 배포 변경 사항을 안전하게 테스트하고 검증할 수 있습니다. CI/CD 파이프라인과 쉽게 통합하고 블루-그린 또는 Canary 배포 전략을 사용하여 구성 변경 사항을 배포할 수 있습니다. AWS 콘솔AWS 명령줄 인터페이스 (AWS CLI)AWS CloudFormationAWS SDK를 사용하여 대체 도메인 이름을 사용하면서 기존 배포의 새 버전을 생성할 수 있습니다. 그런 다음 각 버전에 프로덕션 트래픽에 대한 비율을 설정하여 제어할 수 있습니다. 일반적인 사용 사례에는 새 원본 구성, 캐시 설정 변경에 대한 성능 영향도 확인, 새로운 지리적 제한 설정 테스트, Lambda@Edge 또는 CloudFront 함수 테스트가 포함됩니다.

이제 테스트가 필요한 경우 CloudFront에서 프로덕션 배포와 연결할 수 있는 스테이징  배포를 생성할 수 있습니다. 현재 스테이징 배포에서 수정할 수 있는 설정은 원본원본 그룹캐시 동작사용자 지정 오류 응답기본 루트 객체로깅, 지리적 제한입니다. 향후 더 많은 설정이 추가될 예정입니다. 클라이언트, 애플리케이션 및 CloudFront의 Telemetry로 스테이징 배포 변경이 요청에 어떤 영향을 미치는지 파악할 수 있습니다. Telemetry 에 부정적인 영향이 나타나면 트래픽을 다시 프로덕션 배포로 되돌릴 수 있습니다. 테스트가 완료되고 변경 사항에 확신이 생기면 스테이징 배포를 프로덕션으로 쉽게 승격할 수 있습니다. 이는 나머지 프로덕션 트래픽을 새 구성으로 이동시킵니다. 프로덕션으로 승격되어도 DNS 변경, 뷰어의 연결 끊김 현상, 캐시 데이터 손실이 발생하지 않습니다.

지속적인 배포 정책에서 헤더 기반, 가중치 기반 중 하나의 방식을 선택하여 스테이징 배포로 트래픽을 이동할 수 있습니다. 해당 설정을 살펴보겠습니다.

헤더 기반

클라이언트 요청에서 헤더를 감지하여 스테이징 배포로 트래픽을 전달할 수 있습니다. 이를 위해서는 클라이언트가 CloudFront에 대한 HTTP 요청의 일부로 미리 정의된 사용자 지정 헤더를 포함해야 합니다. 이 방법은 통제된 환경에서 적은 수의 테스트 디바이스를 가지고 소규모 테스트를 진행하려고 하는 경우에 유용합니다.

가중치 기반

일반적으로 Canary 배포라고 하는 가중치 기반 정책을 사용하면 프로덕션 트래픽의 백분율을 정의하여 스테이징 배포에 적용할 수 있습니다. 백분율 값은 작게 시작하여 시간이 지남에 따라 증가시킬 수 있습니다. 그래서 애플리케이션이나 클라이언트를 변경할 필요 없이 대규모 테스트를 원활하게 수행하는 것이 가능합니다. 최종 사용자 세션이 닫히거나 스테이징 배포가 제거 또는 승격될 때까지 스테이징 배포로 전달된 요청에 대한 고정 세션은 지속됩니다. 고객은 먼저 알려진 테스트 사용자와 디바이스를 이용하여 헤더 기반으로 변경 내용을 검증한 다음 가중치 기반으로 프로덕션 트래픽을 도입할 수 있습니다.

그림 1: 가중치 기반 방식을 이용한 프로덕션 트래픽의 10%를 스테이징 배포에 부여하는 예

번째 스테이징 배포 생성하기

지금까지 CloudFront 지속적 배포가 무엇인지 살펴보았습니다. 이제 가중치 기반 옵션을 사용하여 스테이징 배포를 생성해 보겠습니다.

CloudFront 관리 콘솔에 로그인하여 지속적 배포를 테스트할 배포 ID를 선택합니다. 여기에서 Create Staging Distribution 버튼을 선택합니다.

그림2: 지속적 배포를 포함한 업데이트된 CloudFront 배포

스테이징 배포에 대한 설명 (선택사항)을 입력한 후 다음을 선택합니다.

그림3: 신규 스테이징 배포 생성

다음으로 원본을 포함한 스테이징 배포 설정을 수정할 수 있습니다. 그러나 이번 게시글에서는 설정을 변경하지 않고 아래로 스크롤하여 다음을 선택합니다.

그림4: 스테이징 배포를 위한 신규 설정 구성

트래픽 정책 타입을 선택합니다. 여기서는 가중치 기반 정책을 지정하고 스테이징 배포로 보낼 트래픽 비율을 지정합니다.

그림 5: 스테이징 배포에 대한 트래픽 정책 지정

마지막으로 구성을 검토하고 Create staging distribution 버튼을 선택합니다.

그림 6: 신규 스테이징 배포에 대한 설정 검토

이제 스테이징 배포가 생성되었으며 트래픽을 수신할 준비가 되었습니다.

그림7: 콘솔에 표시된 신규 스테이징 배포

결론

이 게시글에서는 CloudFront 지속적 배포에 대한 변경 사항을 안전하고 쉽게 검증하는 방법에 대해 알아보았습니다. 테스트를 위해 트래픽을 전달하는 방법과 콘솔을 통한 단계별 지침을 따라 첫 번째 스테이징 배포를 설정했습니다. CloudFront 관리 콘솔에 로그인하여 지속적 배포를 사용해 보십시오.

Yujin Jeong

Yujin Jeong

정유진 솔루션즈 아키텍트는 다양한 산업군의 기업 고객을 대상으로 AWS 클라우드 전환 및 가속화를 위한 도움을 드리고 있습니다.