다음을 사용하여 배포를 재배포하고 롤백합니다. CodeDeploy - AWS CodeDeploy

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

다음을 사용하여 배포를 재배포하고 롤백합니다. CodeDeploy

CodeDeploy 이전에 배포한 애플리케이션 버전을 새 배포로 재배포하여 배포를 롤백합니다. 이러한 롤백 배포는 기술적으로 이전 배포의 복원된 버전이 아닌 새 배포 ID를 사용하는 새로운 배포입니다.

배포는 자동 또는 수동으로 롤백할 수 있습니다.

자동 롤백

배포에 실패하거나 지정한 모니터링 임계값이 충족될 때 자동으로 롤백하도록 배포 그룹 또는 배포를 구성할 수 있습니다. 이 경우 마지막으로 알려진 정상 버전의 애플리케이션 개정 버전이 배포됩니다. 애플리케이션을 만들거나 배포 그룹을 만들거나 업데이트할 때 자동 롤백을 구성합니다.

새 배포를 만들 때 배포 그룹에 지정된 자동 롤백 구성을 재정의하도록 선택할 수도 있습니다.

참고

배포가 자동으로 롤백될 때마다 Amazon Simple Notification Service를 사용하여 알림을 받을 수 있습니다. 자세한 내용은 Monitoring Deployments with Amazon SNS Event Notifications을 참조하세요.

자동 롤백을 구성하는 방법에 대한 자세한 내용은 배포 그룹에 대한 고급 옵션 구성 단원을 참조하세요.

수동 롤백

자동 롤백을 설정하지 않은 경우 이전에 배포된 애플리케이션 개정 버전을 사용하는 새 배포를 만들고 개정 버전을 다시 배포하는 단계에 따라 배포를 수동으로 롤백할 수 있습니다. 이 작업은 애플리케이션이 알 수 없는 상태가 된 경우에 수행할 수 있습니다. 문제 해결에 많은 시간을 소비하는 대신 애플리케이션을 알려진 작업 상태로 다시 배포할 수 있습니다. 자세한 정보는 를 사용하여 배포 생성 CodeDeploy을 참조하세요.

참고

배포 그룹에서 인스턴스를 제거해도 해당 인스턴스에 이미 설치되었을 수 있는 모든 항목은 제거되지 CodeDeploy 않습니다.

롤백 및 재배포 워크플로

자동 롤백이 시작되거나 재배포 또는 수동 롤백을 수동으로 시작하는 경우 CodeDeploy 먼저 각 참여 인스턴스에서 마지막으로 성공적으로 설치한 모든 파일을 제거하려고 합니다. CodeDeploy 정리 파일을 검사하여 이 작업을 수행합니다.

/opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-ID-cleanup 파일(Amazon Linux, Ubuntu Server 및 RHEL 인스턴스의 경우)

C:\ProgramData\Amazon\CodeDeploy\deployment-instructions\deployment-group-ID-cleanup 파일(Windows Server 인스턴스의 경우)

존재하는 경우 새 배포를 시작하기 전에 정리 파일을 CodeDeploy 사용하여 나열된 모든 파일을 인스턴스에서 제거합니다.

예를 들어, 처음 두 개의 텍스트 파일과 두 개의 스크립트 파일이 이미 Windows Server를 실행하는 Amazon EC2 인스턴스에 배포되었으며, 이 스크립트는 배포 수명 주기 이벤트 동안 두 개의 텍스트 파일을 더 만들었습니다.

c:\temp\a.txt (previously deployed by CodeDeploy) c:\temp\b.txt (previously deployed by CodeDeploy) c:\temp\c.bat (previously deployed by CodeDeploy) c:\temp\d.bat (previously deployed by CodeDeploy) c:\temp\e.txt (previously created by c.bat) c:\temp\f.txt (previously created by d.bat)

정리 파일에는 처음 두 개의 텍스트 파일과 두 개의 스크립트 파일만 나열됩니다.

c:\temp\a.txt c:\temp\b.txt c:\temp\c.bat c:\temp\d.bat

새 배포 전에는 처음 두 개의 텍스트 파일과 두 개의 스크립트 파일만 제거하고 마지막 두 개의 텍스트 파일은 그대로 둡니다. CodeDeploy

c:\temp\a.txt will be removed c:\temp\b.txt will be removed c:\temp\c.bat will be removed c:\temp\d.bat will be removed c:\temp\e.txt will remain c:\temp\f.txt will remain

이 프로세스의 일환으로 수동 롤백이든 자동 롤백이든 관계없이 후속 재배포에서 이전 배포에서 스크립트로 수행한 작업을 되돌리거나 조정하려고 시도하지 않습니다. CodeDeploy 예를 들어, 및 파일에 이미 있는 경우 c.batd.bat 파일을 다시 만들지 않도록 하는 로직이 포함되어 있는 경우 이전 버전의 e.txt e.txtf.txt 파일은 실행 시점과 후속 배포에서 그대로 f.txt 유지됩니다. CodeDeploy c.bat d.bat 새 버전을 생성하기 전에 항상 e.txtf.txt의 이전 버전을 확인하여 삭제하는 로직을 c.batd.bat에 추가할 수 있습니다.

기존 컨텐츠의 롤백 동작

배포 프로세스의 일부로 CodeDeploy 에이전트는 최신 배포에서 설치한 모든 파일을 각 인스턴스에서 제거합니다. 이전 배포에 CodeDeploy 포함되지 않은 파일이 대상 배포 위치에 나타나는 경우 다음 배포 시 해당 파일을 어떻게 처리할지 선택할 수 있습니다.

  • 배포 실패 — 오류가 보고되고 배포 상태가 실패로 변경됩니다.

  • 컨텐츠 덮어쓰기 — 애플리케이션 개정 버전의 파일 버전이 인스턴스에 이미 있는 버전을 대체합니다.

  • 콘텐츠 유지 — 대상 위치의 파일이 유지되고 애플리케이션 개정 버전의 버전이 인스턴스에 복사되지 않습니다.

배포를 생성할 때 이 동작을 선택할 수 있습니다. 콘솔에서 배포를 생성하는 경우 EC2/온프레미스 컴퓨팅 플랫폼의 배포 생성(콘솔) 단원을 참조하세요. 를 사용하여 배포를 만드는 AWS CLI경우 을 참조하십시오EC2/온프레미스 컴퓨팅 플랫폼의 배포 생성(CLI).

애플리케이션 개정 패키지에 추가하지 않고 다음 배포의 일부로 포함하려는 파일을 보관하도록 선택할 수 있습니다. 예를 들어 배포에 필요하지만 애플리케이션 개정 버전 번들에 추가되지 않은 파일을 인스턴스에 직접 업로드할 수 있습니다. 또는 애플리케이션이 이미 프로덕션 환경에 있지만 처음으로 애플리케이션을 배포하는 데 CodeDeploy 사용하려는 경우 인스턴스에 파일을 업로드할 수 있습니다.

배포 실패로 인해 가장 최근에 성공적으로 배포된 애플리케이션 개정 버전이 다시 배포되는 롤백의 경우 마지막으로 성공한 배포에 대한 콘텐츠 처리 옵션이 롤백 배포에 적용됩니다.

그러나 실패한 배포가 파일을 보존하는 대신 덮어쓰도록 구성된 경우 롤백 중에 예기치 않은 결과가 발생할 수 있습니다. 특히, 보존해야 할 파일이 실패한 배포에 의해 제거될 수 있습니다. 롤백 배포가 실행될 때 파일이 인스턴스에 없습니다.

다음 예제에는 3가지 배포가 있습니다. 실패한 두 번째 배포 중에 덮어쓰여진(삭제된) 모든 파일은 배포 3 중에 애플리케이션 개정 버전 1이 다시 배포될 때 더 이상 사용할 수 없습니다(보존할 수 없음).

배포

애플리케이션 개정 버전

컨텐츠 덮어쓰기 옵션

배포 상태

동작 및 결과

배포 1

애플리케이션 개정 버전 1

RETAIN

성공

CodeDeploy 대상 위치에서 이전 배포에서 배포되지 않은 파일을 탐지합니다. 이러한 파일은 의도적으로 현재 배치의 일부가 될 수 있습니다. 현재 배포 패키지의 일부로 유지 및 기록됩니다.

배포 2

애플리케이션 개정 버전 2

OVERWRITE

Failed

배포 프로세스 중에 이전에 성공한 배포의 일부인 모든 파일을 CodeDeploy 삭제합니다. 여기에는 배치 1 중에 보존된 파일이 포함됩니다.

그러나 무관한 이유로 배포가 실패합니다.

배포 3

애플리케이션 개정 버전 1

RETAIN

배포 또는 배포 그룹에 대해 자동 롤백이 활성화되었으므로 마지막으로 알려진 양호한 응용 프로그램 수정 버전인 응용 프로그램 수정 버전 1을 CodeDeploy 배포합니다.

하지만 배포 1에 보존하려는 파일은 배포 2가 실패하기 전에 삭제되었으므로 다시 가져올 수 없습니다. AWS CodeDeploy애플리케이션 개정 버전 1에 필요한 경우 인스턴스에 직접 추가하거나 새 애플리케이션 개정 버전을 생성할 수 있습니다.