CodeDeploy에서 배포 구성 작업 - AWS CodeDeploy

CodeDeploy에서 배포 구성 작업

배포 구성은 배포 중 CodeDeploy에서 사용하는 규칙과 성공 및 실패 조건 세트입니다. 이러한 규칙과 조건은 EC2/온프레미스 컴퓨팅 플랫폼에 배포하는지 AWS Lambda 컴퓨팅 플랫폼에 배포하는지 Amazon ECS 컴퓨팅 플랫폼에 배포하는지에 따라 다릅니다.

EC2/온프레미스 컴퓨팅 플랫폼에 대한 배포 구성

EC2/온프레미스 컴퓨팅 플랫폼에 배포할 경우 배포 구성은 최소 정상 호스트 값을 사용해 배포 중 언제든지 사용 가능한 상태로 남아 있어야 하는 인스턴스 개수 또는 비율을 지정합니다.

AWS에서 제공하는 미리 정의된 배포 구성 3개 중 하나를 사용하거나 사용자 지정 배포 구성을 만들 수 있습니다. 배포 구성을 지정하지 않으면 CodeDeploy에서는 CodeDeployDefault.OneAtATime 배포 구성을 사용합니다.

CodeDeploy가 배포 중 인스턴스 상태를 모니터링 및 평가하는 방법에 대한 자세한 내용은 인스턴스 상태 단원을 참조하십시오. AWS 계정에 이미 등록된 배포 구성 목록을 보려면 배포 구성 세부 정보 보기 단원을 참조하십시오.

EC2/온프레미스 컴퓨팅 플랫폼에 대해 미리 정의된 배포 구성

다음은 미리 정의된 배포 구성이 나열된 표입니다.

배포 구성 설명
CodeDeployDefault.AllAtOnce

인 플레이스(in-place) 배포:

한 번에 가급적 많은 수의 인스턴스에 애플리케이션 개정을 배포하기 위한 시도입니다. 하나 이상의 인스턴스에 애플리케이션 개정이 배포되면 전체 배포 상태가 성공으로 표시됩니다. 어떤 인스턴스에도 애플리케이션 개정이 배포되지 않으면 전체 배포 상태가 실패로 표시됩니다. 아홉 개의 인스턴스가 있는 예제에서 CodeDeployDefault.AllAtOnce는 한 번에 아홉 개의 인스턴스 모두에 배포를 시도합니다. 인스턴스 하나에라도 배포에 성공하면 전체 배포가 성공합니다. 아홉 개 인스턴스 모두에 대한 배포에 실패하는 경우에만 실패합니다.

블루/그린 배포:

  • 대체 환경으로 배포: 인 플레이스(in-place) 배포의 CodeDeployDefault.AllAtOnce와 동일한 배포 규칙을 따릅니다.

  • 트래픽 라우팅: 한 번에 대체 환경의 모든 인스턴스로 트래픽을 라우팅합니다. 트래픽이 하나 이상의 인스턴스로 성공적으로 라우팅되면 성공합니다. 모든 인스턴스로 다시 라우팅하지 못하며 실패합니다.

CodeDeployDefault.HalfAtATime

인 플레이스(in-place) 배포:

최대 절반의 인스턴스(분수는 반내림함)에 한번에 배포합니다. 애플리케이션 개정이 인스턴스의 절반 이상(분수는 반올림함)에 배포되면 전체 배포가 성공합니다. 그렇지 않으면 배포가 실패합니다. 아홉 개의 인스턴스가 있는 예제에서는 한 번에 최대 네 개의 인스턴스에 배포합니다. 다섯 개 이상의 인스턴스에 대한 배포에 성공하면 전체 배포가 성공합니다. 그렇지 않으면 배포가 실패합니다.

블루/그린 배포:

  • 대체 환경으로 배포: 인 플레이스(in-place) 배포의 CodeDeployDefault.HalfAtATime과 동일한 배포 규칙을 따릅니다.

  • 트래픽 라우팅: 한 번에 대체 환경의 인스턴스 중 최대 절반으로 트래픽을 라우팅합니다. 인스턴스 중 절반 이상으로의 다시 라우팅에 성공하는 경우 성공합니다. 그렇지 않은 경우 실패합니다.

CodeDeployDefault.OneAtATime

인 플레이스(in-place) 배포:

한 번에 한 인스턴스에만 애플리케이션 개정을 배포합니다.

인스턴스가 두 개 이상 포함된 배포 그룹의 경우:

  • 애플리케이션 개정이 모든 인스턴스에 배포되면 전체 배포가 성공입니다. 이 규칙의 예외는 마지막 인스턴스에 대한 배포에 실패했는데 전체 배포에 성공하는 경우입니다. 이는 CodeDeploy가 CodeDeployDefault.OneAtATime 구성을 사용하여 한 번에 한 인스턴스만 오프라인 상태가 되도록 허용하기 때문입니다.

  • 애플리케이션 개정이 마지막 인스턴스를 제외한 모든 인스턴스에 배포되지 못하면 즉시 전체 배포에 실패합니다.

  • 아홉 개의 인스턴스가 있는 예제에서는 한 번에 하나의 인스턴스에 배포합니다. 처음 여덟 개 인스턴스에 대한 배포에 성공하면 전체 배포가 성공합니다. 처음 여덟 개 인스턴스 중 하나에 대한 배포에 실패하면 전체 배포가 실패합니다.

인스턴스가 하나뿐인 배포 그룹의 경우, 한 인스턴스에 대한 배포에 성공해야만 전체 배포에 성공합니다.

블루/그린 배포:

  • 대체 환경으로 배포: 인 플레이스(in-place) 배포의 CodeDeployDefault.OneAtATime과 동일한 배포 규칙을 따릅니다.

  • 트래픽 라우팅: 한 번에 대체 환경의 인스턴스 하나로 트래픽을 라우팅합니다. 트래픽이 모든 대체 인스턴스로 성공적으로 라우팅되면 성공합니다. 맨 처음으로 다시 라우팅하지 못하면 실패합니다. 이 규칙의 예외는 마지막 인스턴스 등록에 실패했는데 전체 배포에 성공하는 경우입니다.

Amazon ECS 컴퓨팅 플랫폼에 대한 배포 구성

Amazon ECS 컴퓨팅 플랫폼에 배포할 때 배포 구성은 트래픽이 업데이트된 Amazon ECS 작업 세트로 이동되는 방법을 지정합니다.

배포 중 트래픽을 이동할 수 있는 방법은 3가지가 있습니다.

  • Canary: 트래픽이 2 증분씩 이동합니다. 나머지 트래픽이 두 번째 증분으로 이동하기 전에 첫 증분에서 업데이트된 Amazon ECS 작업 세트로 이동할 트래픽 비율(%), 간격(분)을 지정하는 사전 정의된 Canary 옵션 중에서 선택할 수 있습니다.

  • Linear: 트래픽이 동일한 증분으로 이동하며 각 증분 간 시간(분)은 동일합니다. 각 증분에서 이동되는 트래픽 비율(%)과 각 증분 간의 시간(분)을 지정하는 사전 정의된 선형 옵션에서 선택할 수 있습니다.

  • All-at-once: 모든 트래픽이 기존 Amazon ECS 작업 세트에서 업데이트된 Amazon ECS 작업 세트로 한 번에 이동합니다.

Canary 또는 선형 배포 구성을 직접 사용자 지정하여 만들 수도 있습니다.

Amazon ECS 컴퓨팅 플랫폼에 대해 미리 정의된 배포 구성

다음 표에는 Amazon ECS 배포에 사용할 수 있는 미리 정의된 구성이 나열되어 있습니다.

배포 구성 설명

CodeDeployDefault.ECSLinear10PercentEvery1Minutes

모든 트래픽이 전환될 때까지 트래픽의 10%가 매분마다 전환됩니다.

CodeDeployDefault.ECSLinear10PercentEvery3Minutes

모든 트래픽이 이동될 때까지 트래픽의 10%가 3분마다 이동됩니다.

CodeDeployDefault.ECSCanary10Percent5Minutes

첫 번째 증분에 트래픽의 10%가 전환됩니다. 나머지 90%는 5분 이후 배포됩니다.

CodeDeployDefault.ECSCanary10Percent15Minutes

첫 번째 증분에 트래픽의 10%가 전환됩니다. 나머지 90%는 15분 이후 배포됩니다.

CodeDeployDefault.ECSAllAtOnce

업데이트된 Amazon ECS 컨테이너로 모든 트래픽을 한번에 전환합니다.

AWS CloudFormation 블루/그린 배포를 위한 배포 구성(Amazon ECS)

AWS CloudFormation 블루/그린 배포를 통해 Amazon ECS 컴퓨팅 플랫폼에 배포할 때 배포 구성은 트래픽이 업데이트된 Amazon ECS 컨테이너로 이동하는 방법을 지정합니다.

AWS CloudFormation을 통한 Amazon ECS 블루/그린 배포 중에 트래픽을 이동할 수 있는 방법은 3가지가 있습니다.

  • Canary: 트래픽이 2 증분씩 이동합니다. 나머지 트래픽이 두 번째 증분으로 이동하기 전에 첫 증분에서 업데이트된 Amazon ECS 작업 세트로 이동할 트래픽 비율(%), 간격(분)을 지정하는 사전 정의된 Canary 옵션을 선택할 수 있습니다.

  • Linear: 트래픽이 동일한 증분으로 이동하며 각 증분 간에 시간(분)이 동일합니다. 각 증분에서 이동되는 트래픽의 비율(%)과 각 증분 간의 시간(분)을 지정할 수 있습니다.

  • All-at-once: 모든 트래픽이 원래 Amazon ECS 작업 세트에서 업데이트된 Amazon ECS 작업 세트로 모두 한 번에 이동합니다.

이 배포 구성의 경우 사용자 지정 Canary 또는 선형 배포 구성을 만들 수 없습니다. AWS CloudFormation을 사용한 Amazon ECS 블루/그린 배포 관리에 대한 단계별 지침은 AWS CloudFormation 사용 설명서AWS CloudFormation을 사용하여 CodeDeploy를 통해 ECS 블루/그린 배포 자동화를 참조하십시오.

참고

MXP, CPT, KIX 또는 BJS/ZHY 리전에서는 AWS CloudFormation을 사용한 Amazon ECS 블루/그린 배포 관리를 사용할 수 없습니다.

AWS Lambda 컴퓨팅 플랫폼에 대한 배포 구성

AWS Lambda 컴퓨팅 플랫폼에 배포하는 경우 배포 구성은 트래픽이 해당 애플리케이션의 새로운 Lambda 함수 버전으로 전환되는 방식을 지정합니다.

배포 중 트래픽을 이동할 수 있는 방법은 3가지가 있습니다.

  • Canary: 트래픽이 2 증분씩 이동합니다. 나머지 트래픽이 두 번째 증분으로 이동하기 전에 첫 증분에서 업데이트된 함수 버전으로 이동할 트래픽 비율(%), 간격(분)을 지정하는 사전 정의된 Canary 옵션 중에서 선택할 수 있습니다.

  • Linear: 트래픽이 동일한 증분으로 이동하며 각 증분 간 시간(분)은 동일합니다. 각 증분에서 이동되는 트래픽 비율(%)과 각 증분 간의 시간(분)을 지정하는 사전 정의된 선형 옵션에서 선택할 수 있습니다.

  • All-at-once: 모든 트래픽이 기존 Lambda 함수에서 업데이트된 Lambda 함수 버전으로 한번에 모두 이동합니다.

Canary 또는 선형 배포 구성을 직접 사용자 지정하여 만들 수도 있습니다.

AWS Lambda 컴퓨팅 플랫폼에 대해 미리 정의된 배포 구성

다음 표에는 AWS Lambda 배포에 사용할 수 있는 미리 정의된 구성이 나열되어 있습니다.

배포 구성 설명

CodeDeployDefault.LambdaCanary10Percent5Minutes

첫 번째 증분에 트래픽의 10%가 전환됩니다. 나머지 90%는 5분 이후 배포됩니다.

CodeDeployDefault.LambdaCanary10Percent10Minutes

첫 번째 증분에 트래픽의 10%가 전환됩니다. 나머지 90%는 10분 이후 배포됩니다.

CodeDeployDefault.LambdaCanary10Percent15Minutes

첫 번째 증분에 트래픽의 10%가 전환됩니다. 나머지 90%는 15분 이후 배포됩니다.

CodeDeployDefault.LambdaCanary10Percent30Minutes

첫 번째 증분에 트래픽의 10%가 전환됩니다. 나머지 90%는 30분 이후 배포됩니다.

CodeDeployDefault.LambdaLinear10PercentEvery1Minute

모든 트래픽이 전환될 때까지 트래픽의 10%가 매분마다 전환됩니다.

CodeDeployDefault.LambdaLinear10PercentEvery2Minutes

모든 트래픽이 이동될 때까지 트래픽의 10%가 2분마다 이동됩니다.

CodeDeployDefault.LambdaLinear10PercentEvery3Minutes

모든 트래픽이 이동될 때까지 트래픽의 10%가 3분마다 이동됩니다.

CodeDeployDefault.LambdaLinear10PercentEvery10Minutes 모든 트래픽이 전환될 때까지 트래픽의 10%가 10분마다 전환됩니다.
CodeDeployDefault.LambdaAllAtOnce

업데이트된 Lambda 함수로 모든 트래픽을 한번에 전환합니다.

주제