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

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CodeDeploy에서 배포 구성 작업

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

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

EC2/온프레미스 컴퓨팅 플랫폼에 배포하는 경우, 배포 구성은 '최소 정상 호스트' 값과 선택적 '영역당 최소 정상 호스트' 값을 사용하여 배포 중 언제든지 사용할 수 있어야 하는 인스턴스의 수 또는 비율을 지정합니다.

AWS에서 제공하는 미리 정의된 배포 구성 3개 중 하나를 사용하거나 사용자 지정 배포 구성을 만들 수 있습니다. 사용자 지정 배포 구성 만들기에 대한 자세한 내용은 Create a Deployment Configuration 단원을 참조하세요. 배포 구성을 지정하지 않으면 CodeDeplo에서는 CodeDeployDefault.OneAtATime 배포 구성을 사용합니다.

CodeDeplo가 배포 중 인스턴스 상태를 모니터링 및 평가하는 방법에 대한 자세한 내용은 Instance Health 단원을 참조하세요. AWS 계정에 이미 등록된 배포 구성 목록을 보려면 View Deployment Configuration Details 단원을 참조하세요.

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

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

참고

zonal configuration 기능(가용 영역당 정상 호스트 수를 지정할 수 있는 기능)을 지원하는 사전 정의된 배포 구성은 없습니다. 이 기능을 사용하려면 배포 구성을 직접 생성해야 합니다.

배포 구성 Description
CodeDeployDefault.AllAtOnce

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

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

블루/그린 배포:

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

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

CodeDeployDefault.HalfAtATime

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

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

참고

여러 Auto Scaling 그룹의 인스턴스에 배포하는 경우 CodeDeploy는 속한 Auto Scaling 그룹과 관계없이 한 번에 최대 절반의 인스턴스에 배포합니다. 예를 들어 Auto Scaling 그룹이 두 개(ASG1ASG2) 있고 각각 10개의 인스턴스가 있다고 가정해 보겠습니다. 이 시나리오에서 CodeDeploy는 ASG1에 있는 10개의 인스턴스에만 배포하고 성공했다고 간주할 수 있습니다. 인스턴스의 절반 이상에 배포했기 때문입니다.

블루/그린 배포:

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

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

CodeDeployDefault.OneAtATime

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

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

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

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

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

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

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

블루/그린 배포:

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

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

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

Amazon ECS 컴퓨팅 플랫폼에 배포할 때 배포 구성은 트래픽이 업데이트된 Amazon ECS 작업 세트로 이동되는 방법을 지정합니다. 카나리(Canary), 리니어(Linear) 또는 한 번에 모두(All-at-once) 배포 구성을 사용하여 트래픽을 이동할 수 있습니다. 자세한 내용은 배포 구성 섹션을 참조하세요.

Canary 또는 선형 배포 구성을 직접 사용자 지정하여 만들 수도 있습니다. 자세한 내용은 Create a Deployment Configuration 섹션을 참조하세요.

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

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

참고

Network Load Balancer를 사용하는 경우 미리 정의된 배포 구성인 CodeDeployDefault.ECSAllAtOnce만이 지원됩니다.

배포 구성 Description

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 컨테이너로 이동하는 방법을 지정합니다. 카나리(Canary), 리니어(Linear) 또는 한 번에 모두(All-at-once) 배포 구성을 사용하여 트래픽을 이동할 수 있습니다. 자세한 내용은 배포 구성 섹션을 참조하세요.

AWS CloudFormation 블루/그린 배포의 경우 사용자 지정 카나리(Canary) 또는 리니어(Linear) 배포 구성을 생성할 수 없습니다. AWS CloudFormation을(를) 사용하여 Amazon ECS 블루/그린 배포를 관리하는 단계별 지침은 AWS CloudFormation 사용 설명서AWS CloudFormation을(를) 사용하여 CodeDeploy를 통한 ECS 블루/그린 배포 자동화를 참조하세요.

참고

AWS CloudFormation을 통한 Amazon ECS 블루/그린 배포 관리는 유럽(밀라노), 아프리카(케이프타운) 및 아시아 태평양(오사카) 리전에서 사용할 수 없습니다.

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

AWS Lambda 컴퓨팅 플랫폼에 배포하는 경우 배포 구성은 트래픽이 해당 애플리케이션의 새로운 Lambda 함수 버전으로 전환되는 방식을 지정합니다. 카나리(Canary), 리니어(Linear) 또는 한 번에 모두(All-at-once) 배포 구성을 사용하여 트래픽을 이동할 수 있습니다. 자세한 내용은 배포 구성 섹션을 참조하세요.

Canary 또는 선형 배포 구성을 직접 사용자 지정하여 만들 수도 있습니다. 자세한 내용은 Create a Deployment Configuration 섹션을 참조하세요.

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

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

배포 구성 Description

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 함수로 모든 트래픽을 한번에 전환합니다.

주제