본문 바로가기
CLOUD/AWS

Canary 배포 개요(SAM)

by Rainbound-IT 2021. 8. 24.
반응형

카나리아 배포는 전체 고객 기반에 롤아웃하기 전에 소규모 사용자 하위 집합에 변경 사항을 천천히 롤아웃하여 새 버전의 애플리케이션 배포 위험을 줄이는 기술입니다.

 

블루/그린 및 카나리아 배포의 개념은 한동안 사용되어 왔으며 소프트웨어 배포의 위험을 줄이기 위한 모범 사례로 잘 확립되었습니다. 기존 애플리케이션에서는 애플리케이션 상태를 확인하는 동시에 플릿의 서버를 천천히 점진적으로 업데이트합니다. 그러나 이러한 개념을 서버리스 세계에 매핑할 때 약간의 임피던스 불일치가 있습니다. 서버가 없을 때는 여러 서버에 소프트웨어를 점진적으로 배포할 수 없습니다.

 

이것을 가능하게 하는 데 관련된 몇 가지 서비스와 기능이 있다는 것입니다.

 

 

 

Lambda 버전 및 별칭

AWS Lambda를 사용하면 동일한 함수의 여러 버전을 게시할 수 있습니다. 각 버전에는 고유한 코드 및 관련 종속성뿐만 아니라 고유한 기능 설정(예: 메모리 할당, 시간 초과 및 환경 변수)이 있습니다. 그런 다음 Lambda 별칭을 사용하여 지정된 버전을 참조할 수 있습니다. 별칭은 Lambda 기능의 주어진 버전을 가리킬 수 있는 이름일 뿐입니다.

 

 

Lambda 별칭을 사용한 트래픽 이동

별칭 트래픽 이동의 도입으로 이제 Lambda 함수의 카나리아 배포를 간단하게 구현할 수 있습니다. 별칭에 대한 추가 버전 가중치를 업데이트하면 지정된 가중치에 따라 호출 트래픽이 새 기능 버전으로 라우팅됩니다. 별칭 및 버전에 대한 자세한 CloudWatch 지표는 배포 또는 수행되는 기타 상태 확인 중에 분석되어 계속 진행하기 전에 새 버전이 정상인지 확인할 수 있습니다.

 

 

 

SAM 및 CodeDeploy를 사용한 트래픽 이동

AWS CodeDeploy는 AWS SAM에 직접 통합된 이 기능의 직관적인  turn-key 구현을 제공합니다. 트래픽 이동 배포는 SAM 템플릿에서 선언할 수 있으며 CodeDeploy는 CloudFormation 스택 업데이트의 일부로 기능 롤아웃을 관리합니다. CloudWatch 경보는 문제가 발생하는 경우 스택 롤백을 트리거하도록 구성할 수도 있습니다.

 

반응형

댓글