CodeDeploy deDeploy를 사용하여 배포 재배포 및 롤백 - AWS CodeDeploy

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

CodeDeploy deDeploy를 사용하여 배포 재배포 및 롤백

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

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

자동 롤백

배포에 실패한 경우 또는 지정한 모니터링 임계값에 도달한 경우 또는 배포를 자동으로 롤백하도록 배포 그룹 또는 배포를 구성할 수 있습니다. 이 경우 마지막으로 알려진 양호한 버전의 응용 프로그램 버전이 배포됩니다. 응용 프로그램을 만들거나 배포 그룹을 만들거나 업데이트할 때 자동 롤백을 구성합니다.

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

참고

배포가 자동으로 롤백될 때마다 Amazon 단순 알림 서비스를 사용하여 알림을 받을 수 있습니다. 자세한 정보는 Monitoring Deployments with Amazon SNS Event Notifications 단원을 참조하십시오.

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

수동 롤백

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

참고

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

롤백 및 재배포 워크플로

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

/opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-ID-cleanup파일 (아마존 리눅스, 우분투 서버 및 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.txtf.txt파일이 이미 존재하는 경우 이전 버전의e.txtf.txt는 CodeDeploy 가 실행될 때마다 변경되지 않습니다.c.batd.bat후속 배포에서. 로직을 추가 할 수 있습니다.c.batd.bat를 사용하여 항상 이전 버전을 확인하고 삭제할 수 있습니다.e.txtf.txt새 것을 만들기 전에.

기존 컨텐츠의 롤백 동작

배포 프로세스의 일부로 CodeDeploy 에이전트는 가장 최근 배포에 의해 설치된 모든 파일을 각 인스턴스에서 제거합니다. 이전 배포의 일부가 아닌 파일이 대상 배포 위치에 표시되는 경우 다음 배포 중에 CodeDeploy 에서 수행할 작업을 선택할 수 있습니다.

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

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

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

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

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

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

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

다음 예에서는 3가지 배포가 있습니다. 배포 3 중에 응용 프로그램 수정 버전 1을 다시 배포할 때 실패한 두 번째 배포 중에 덮어쓴 (삭제) 파일은 더 이상 사용할 수 없습니다 (보존할 수 없음).

배포

애플리케이션 개정

컨텐츠 덮어쓰기 옵션

배포 상태

동작 및 결과

배포 1

애플리케이션 개정 1

보관

성공

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

배포 2

애플리케이션 개정 2

덮어쓰기

실패

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

그러나 관련되지 않은 이유로 배포가 실패합니다.

배포 3

애플리케이션 개정 1

보관

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

그러나 배포 1에서 유지하려는 파일은 배포 2가 실패하기 전에 삭제되었으며AWS CodeDeploy. 애플리케이션 개정 1에 필요한 경우 인스턴스에 직접 추가하거나 새 애플리케이션 개정을 생성할 수 있습니다.