Amazon ECS 선형(linear) 배포 만들기
Amazon ECS 선형(linear) 배포 만들기
Amazon ECS 선형 배포를 사용하면 지정된 시간 간격으로 트래픽을 동일한 증분으로 점진적으로 전환할 수 있어요. 이는 배포 프로세스의 각 단계에서 통제된 검증을 제공해요.
출처: 문서
본문
전제 조건 선형 배포를 시작하기 전에 다음 작업을 수행해 주세요.
- 적절한 권한을 구성해 주세요.
- Elastic Load Balancing 권한에 대한 정보는 Amazon ECS infrastructure IAM role for load balancers 를 참고해 주세요.
- Lambda 권한에 대한 정보는 Permissions required for Lambda functions in Amazon ECS blue/green deployments 를 참고해 주세요.
- Amazon ECS 선형 배포는 서비스가 다음 기능 중 하나를 사용해야 해요. 적절한 리소스를 구성해 주세요.
- Application Load Balancer - 자세한 내용은 Application Load Balancer resources for blue/green, linear, and canary deployments 를 참고해 주세요.
- Network Load Balancer - 자세한 내용은 Network Load Balancer resources for Amazon ECS blue/green, linear and canary deployments 를 참고해 주세요.
- Service Connect - 자세한 내용은 Service Connect resources for Amazon ECS blue/green, linear, and canary deployments 를 참고해 주세요.
절차 콘솔 또는 AWS CLI를 사용해 Amazon ECS 선형 배포 서비스를 만들 수 있어요.
콘솔
- https://console.aws.amazon.com/ecs/v2 에서 콘솔을 엽니다.
- 서비스를 시작할 리소스를 결정합니다.
| 시작 위치 | 단계 |
|---|---|
| Clusters | Clusters 페이지에서 서비스를 만들 클러스터를 선택합니다. 클러스터 세부 정보 페이지가 표시됩니다. Services 탭에서 Create 를 선택합니다. |
| Task definition | Task definitions 페이지에서 태스크 정의를 선택합니다. Deploy 메뉴에서 Create service 를 선택합니다. |
- Create service 페이지가 표시됩니다.
- Service details 에서 다음을 수행합니다.
- Task definition family 에서 사용할 태스크 정의를 선택합니다. 그런 다음 Task definition revision 에서 사용할 개정을 입력합니다.
- Service name 에 서비스 이름을 입력합니다.
- 기존 클러스터에서 서비스를 실행하려면 Existing cluster 에서 클러스터를 선택합니다. 새 클러스터에서 서비스를 실행하려면 Create cluster 를 선택합니다.
- 태스크가 클러스터 인프라에 분산되는 방식을 선택합니다. Compute configuration 에서 옵션을 선택합니다.
| 컴퓨팅 옵션 | 단계 |
|---|---|
| Capacity provider strategy | Compute options 에서 Capacity provider strategy 를 선택합니다. 전략을 선택합니다. 클러스터의 기본 용량 제공자 전략을 사용하려면 Use cluster default 를 선택합니다. 클러스터에 기본 용량 제공자 전략이 없거나 사용자 지정 전략을 사용하려면 Use custom , Add capacity provider strategy 를 선택한 다음 Base , Capacity provider , Weight 를 지정해 사용자 지정 용량 제공자 전략을 정의합니다. 참고: 전략에서 용량 제공자를 사용하려면 해당 용량 제공자가 클러스터와 연결되어 있어야 합니다. |
| Launch type | Compute options 섹션에서 Launch type 을 선택합니다. Launch type 에서 시작 유형을 선택합니다. (선택 사항) Fargate 를 지정하면 Platform version 에서 사용할 플랫폼 버전을 지정합니다. 플랫폼 버전을 지정하지 않으면 LATEST 플랫폼 버전이 사용됩니다. |
- Deployment configuration 에서 다음을 수행합니다.
- Service type 에서 Replica 를 선택합니다.
- Desired tasks 에 서비스에서 시작하고 유지할 태스크 수를 입력합니다. Amazon ECS가 가용 영역 전반의 태스크 분포를 모니터링하고 불균형이 있을 때 재분배하도록 하려면 Availability Zone service rebalancing 에서 Availability Zone service rebalancing 을 선택합니다.
- Health check grace period 에 태스크가 처음 시작된 후 서비스 스케줄러가 비정상 Elastic Load Balancing, VPC Lattice 및 컨테이너 상태 확인을 무시하는 시간(초)을 입력합니다. 상태 확인 유예 기간 값을 지정하지 않으면 기본값 0이 사용됩니다.
- Deployment configuration 에서 선형 배포 설정을 구성합니다.
- Deployment strategy 에서 Linear 를 선택합니다.
- Traffic increment percentage 에 각 증분에서 전환할 트래픽 비율을 입력합니다(예: 10% 를 입력하면 10% 증분으로 트래픽을 전환).
- Interval between increments 에 각 트래픽 전환 증분 사이에 대기할 시간(분)을 입력합니다.
- Bake time 에 마지막 트래픽 전환 후 블루 개정이 종료되기 전에 블루와 그린 서비스 개정이 동시에 실행될 시간(분)을 입력합니다.
- (선택 사항) Deployment lifecycle hooks 에서 배포의 특정 단계에서 실행할 수명 주기 후크를 구성합니다. Add 를 선택합니다.
- Lambda 후크: Target type 에서 Lambda 를 선택합니다. Lambda function 에 함수 이름 또는 ARN을 입력합니다. Role 에서 Lambda 함수를 호출할 권한이 있는 IAM 역할을 선택합니다. Lifecycle stages 에서 Lambda 함수가 실행되어야 할 단계를 선택합니다.
- 일시 중지 후크: Target type 에서 Pause 를 선택합니다. Lifecycle stages 에서 배포가 일시 중지되어야 할 단계를 선택합니다. (선택 사항) Timeout 에서 시간 초과 기간과 작업을 구성합니다.
- 배포 실패를 Amazon ECS가 감지하고 처리하는 방식을 구성하려면 Deployment failure detection 을 확장한 다음 옵션을 선택합니다.
- 태스크를 시작할 수 없을 때 배포를 중지하려면 Use the Amazon ECS deployment circuit breaker 를 선택합니다.
- 배포 회로 차단기(circuit breaker)가 배포를 실패 상태로 설정할 때 소프트웨어가 배포를 마지막으로 완료된 배포 상태로 자동 롤백하게 하려면 Rollback on failures 를 선택합니다.
- 애플리케이션 메트릭에 따라 배포를 중지하려면 Use CloudWatch alarm(s) 를 선택합니다. 그런 다음 CloudWatch alarm name 에서 알람을 선택합니다. 새 알람을 만들려면 CloudWatch 콘솔로 이동합니다.
- CloudWatch 알람이 배포를 실패 상태로 설정할 때 소프트웨어가 배포를 마지막으로 완료된 배포 상태로 자동 롤백하게 하려면 Rollback on failures 를 선택합니다.
- (선택 사항) Service Connect를 사용해 서비스를 상호 연결하려면 Service Connect 를 확장한 다음 다음을 지정합니다.
- Turn on Service Connect 를 선택합니다.
- Service Connect configuration 에서 클라이언트 모드를 지정합니다.
- 네임스페이스의 다른 서비스에만 연결하면 되는 네트워크 클라이언트 애플리케이션을 실행한다면 Client side only 를 선택합니다.
- 네트워크 또는 웹 서비스 애플리케이션을 실행하고 이 서비스에 대한 엔드포인트를 제공해야 하며 네임스페이스의 다른 서비스에도 연결한다면 Client and server 를 선택합니다.
- 기본 클러스터 네임스페이스가 아닌 네임스페이스를 사용하려면 Namespace 에서 서비스 네임스페이스를 선택합니다. 이는 같은 AWS Region에서 별도로 생성된 네임스페이스이거나 AWS Resource Access Manager(AWS RAM)로 계정과 공유된 같은 Region의 네임스페이스일 수 있습니다.