EC2/온프레미스 컴퓨팅 플랫폼의 배포 - AWS CodeDeploy

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

EC2/온프레미스 컴퓨팅 플랫폼의 배포

이 주제에서는 EC2/온프레미스 컴퓨팅 플랫폼을 사용하는 CodeDeploy 배포의 구성 요소 및 워크플로에 대한 정보를 제공합니다. 블루/그린 배포에 대한 자세한 내용은 블루/그린 배포 개요 단원을 참조하세요.

EC2/온프레미스 컴퓨팅 플랫폼의 배포 구성 요소

다음 다이어그램은 EC2/온프레미스 컴퓨팅 플랫폼의 CodeDeploy 배포 구성 요소를 보여줍니다.

EC2/온프레미스 컴퓨팅 플랫폼의 CodeDeploy 배포 구성 요소.

EC2/온프레미스 컴퓨팅 플랫폼의 배포 워크플로

다음 다이어그램은 애플리케이션 개정 배포의 주요 단계를 보여줍니다.

애플리케이션 개정 배포의 주요 단계입니다.

이러한 단계는 다음과 같습니다.

  1. 애플리케이션을 생성하고 배포하려는 애플리케이션 개정과 애플리케이션의 컴퓨팅 플랫폼을 고유하게 식별하는 이름을 지정합니다. 는 배포 중에 이 이름을 CodeDeploy 사용하여 배포 그룹, 배포 구성 및 애플리케이션 개정과 같은 올바른 배포 구성 요소를 참조하는지 확인합니다. 자세한 내용은 를 사용하여 애플리케이션 만들기 CodeDeploy 단원을 참조하십시오.

  2. 애플리케이션 개정을 배포하려는 인스턴스 및 배포 유형을 지정하여 배포 그룹을 설정합니다. 인 플레이스(in-place) 배포는 최신 애플리케이션 개정으로 인스턴스를 업데이트합니다. 블루/그린 배포는 로드 밸런서에 배포 그룹의 대체 인스턴스 세트를 등록하고 원본 인스턴스의 등록을 취소합니다.

    인스턴스에 적용되는 태그, Amazon EC2 Auto Scaling 그룹 이름 또는 둘 다를 지정할 수 있습니다.

    배포 그룹에서 태그 그룹을 하나 지정하는 경우 는 지정된 태그 중 하나 이상이 적용된 인스턴스에 CodeDeploy 배포합니다. 두 개 이상의 태그 그룹을 지정하는 경우 는 각 태그 그룹의 기준을 충족하는 인스턴스에만 CodeDeploy 배포합니다. 자세한 내용은 Tagging Instances for Deployments 단원을 참조하십시오.

    모든 경우에 인스턴스는 배포에 사용하도록 구성해야 하며(즉, Amazon EC2 Auto Scaling 그룹에 태그가 지정되거나 속해야 함) CodeDeploy 에이전트를 설치하고 실행해야 합니다.

    Amazon Linux 또는 Windows Server를 기반으로 Amazon EC2 인스턴스를 빠르게 설정하는 데 사용할 수 있는 AWS CloudFormation 템플릿을 제공합니다. 또한 Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux(RHEL) 또는 Windows Server 인스턴스에 설치할 수 있도록 독립형 CodeDeploy 에이전트도 제공합니다. 자세한 내용은 를 사용하여 배포 그룹 만들기 CodeDeploy 단원을 참조하십시오.

    다음 옵션도 지정할 수 있습니다.

    • Amazon SNS 알림 . 배포 및 인스턴스에서 성공 또는 실패 이벤트와 같은 지정된 이벤트가 발생할 때 Amazon SNS 주제 구독자에게 알림을 보내는 트리거를 생성합니다. 자세한 내용은 Monitoring Deployments with Amazon SNS Event Notifications 단원을 참조하십시오.

    • 경보 기반 배포 및 관리. 지표가 에 설정된 임계값을 초과하거나 아래로 떨어질 때 배포를 중지하도록 Amazon CloudWatch 경보 모니터링을 구현합니다 CloudWatch.

    • 자동 배포 롤백. 배포에 실패하거나 경보 임계값에 도달한 경우 이전에 알려진 양호한 상태의 개정으로 자동 롤백되도록 배포를 구성합니다.

  3. 애플리케이션 개정을 동시에 배포해야 할 인스턴스 수와 배포 성공 및 실패 조건을 설정하는 배포 구성을 지정합니다. 자세한 내용은 View Deployment Configuration Details 단원을 참조하십시오.

  4. Amazon S3 또는 에 애플리케이션 개정을 업로드합니다 GitHub. 배포하려는 파일과 배포 중에 실행하려는 스크립트 외에도 애플리케이션 사양 파일(AppSpec 파일)을 포함해야 합니다. 이 파일에는 각 인스턴스에 파일을 복사할 위치 및 배포 스크립트를 실행할 시점 등과 같은 배포 명세가 포함되어 있습니다. 자세한 내용은 에 대한 애플리케이션 수정 작업 CodeDeploy 단원을 참조하십시오.

  5. 애플리케이션 개정을 배포 그룹에 배포합니다. 배포 그룹의 각 인스턴스에 있는 CodeDeploy 에이전트는 Amazon S3에서 또는 인스턴스 GitHub 로 애플리케이션 개정을 복사합니다. 그런 다음 CodeDeploy 에이전트는 개정의 번들을 해제하고 AppSpec 파일을 사용하여 파일을 지정된 위치에 복사하고 배포 스크립트를 실행합니다. 자세한 내용은 를 사용하여 배포 생성 CodeDeploy 단원을 참조하십시오.

  6. 배포 결과를 확인합니다. 자세한 내용은 배포 모니터링 CodeDeploy 단원을 참조하십시오.

  7. 개정을 다시 배포합니다. 소스 콘텐츠에서 버그를 수정하거나, 배포 스크립트를 다른 순서로 실행하거나, 실패한 배포를 해결해야 하는 경우 다시 배포하려고 할 수 있습니다. 이렇게 하려면 수정된 소스 콘텐츠, 배포 스크립트 및 AppSpec 파일을 새 개정으로 다시 묶은 다음 개정을 Amazon S3 버킷 또는 GitHub 리포지토리에 업로드합니다. 그런 다음 새 개정을 사용하여 동일한 배포 그룹으로 새로 배포를 실행합니다. 자세한 내용은 를 사용하여 배포 생성 CodeDeploy 단원을 참조하십시오.

인스턴스 설정

처음으로 애플리케이션 개정을 배포하려면 인스턴스를 설정해야 합니다. 애플리케이션 개정에 프로덕션 서버 3개와 백업 서버 2개가 필요한 경우 인스턴스 5개를 시작 또는 사용합니다.

인스턴스를 수동으로 프로비저닝하려면:

  1. 인스턴스에 CodeDeploy 에이전트를 설치합니다. CodeDeploy 에이전트는 Amazon Linux, Ubuntu Server, RHEL및 Windows Server 인스턴스에 설치할 수 있습니다.

  2. 배포 그룹에서 인스턴스를 식별하는 데 태그를 사용하는 경우 태깅을 활성화합니다. CodeDeploy 는 태그를 사용하여 인스턴스를 식별하고 CodeDeploy 배포 그룹으로 그룹화합니다. 시작하기 자습서를 둘 다 진행했지만 키 또는 값을 사용하여 배포 그룹의 태그를 정의할 수 있습니다.

  3. EC2 인스턴스 프로파일이 연결된 Amazon IAM 인스턴스를 시작합니다. CodeDeploy 에이전트가 IAM 인스턴스의 ID를 확인하려면 EC2 인스턴스 프로필이 시작될 때 Amazon 인스턴스에 연결되어야 합니다.

  4. 서비스 역할을 만듭니다. 가 AWS 계정의 태그를 확장 CodeDeploy 할 수 있도록 서비스 액세스를 제공합니다.

초기 배포의 경우 AWS CloudFormation 템플릿에서 이 모든 작업을 수행합니다. 에이전트가 CodeDeploy 이미 설치된 Amazon Linux 또는 Windows Server를 기반으로 새 단일 Amazon EC2 인스턴스를 생성하고 구성합니다. 자세한 내용은 에 대한 인스턴스 작업 CodeDeploy 단원을 참조하십시오.

참고

블루/그린 배포의 경우 교체 환경에 이미 있는 인스턴스를 사용하거나 배포 프로세스의 일부로 새 인스턴스를 CodeDeploy 프로비저닝하도록 허용할 수 있습니다.

애플리케이션 개정 업로드

애플리케이션의 소스 콘텐츠 폴더 구조의 루트 폴더 아래에 AppSpec 파일을 배치합니다. 자세한 내용은 Application Specification Files 단원을 참조하십시오.

애플리케이션의 소스 콘텐츠 폴더 구조를 아카이브 파일 형식(예: zip, tar 또는 압축 tar)으로 번들링합니다. Amazon S3 버킷 또는 GitHub 리포지토리에 아카이브 파일( 개정판 )을 업로드합니다.

참고

tar 및 압축된 tar 아카이브 파일 형식(.tar 및 .tar.gz)은 Windows Server 인스턴스에서 지원되지 않습니다.

애플리케이션 및 배포 그룹 만들기

CodeDeploy 배포 그룹은 태그, Amazon EC2 Auto Scaling 그룹 이름 또는 둘 다를 기반으로 인스턴스 컬렉션을 식별합니다. 애플리케이션 개정 여러 개를 동일한 인스턴스에 배포하거나, 애플리케이션 개정 하나를 여러 인스턴스에 배포할 수 있습니다.

예를 들어, 프로덕션 서버 3개에 태그 "Prod"를 추가하고 백업 서버 2개에 태그 "Backup"을 추가할 수 있습니다. 이 두 태그를 사용하여 CodeDeploy 애플리케이션에서 두 개의 서로 다른 배포 그룹을 생성할 수 있으므로 배포에 참여해야 하는 서버 집합(또는 둘 다)을 선택할 수 있습니다.

배포 그룹에 여러 태그 그룹을 사용하여 적은 수의 인스턴스로 배포를 제한할 수 있습니다. 자세한 내용은 Tagging Instances for Deployments을 참조하세요.

애플리케이션 개정 배포

이제 Amazon S3에서 또는 배포 그룹에 애플리케이션 개정 GitHub 을 배포할 준비가 되었습니다. CodeDeploy 콘솔 또는 create-deployment 명령을 사용할 수 있습니다. 개정, 배포 그룹 및 배포 구성을 비롯하여 배포를 제어하기 위해 지정할 수 있는 파라미터가 있습니다.

애플리케이션 업데이트

애플리케이션을 업데이트한 다음 CodeDeploy 콘솔을 사용하거나 create-deployment 명령을 호출하여 개정을 푸시할 수 있습니다.

중지 및 실패한 배포

CodeDeploy 콘솔 또는 stop-deployment 명령을 사용하여 배포를 중지할 수 있습니다. 배포를 중지하려고 하면 다음 3가지 동작 중 하나가 발생합니다.

  • 배포가 중지되고 성공 상태가 반환됩니다. 이 경우 중지된 배포의 배포 그룹에서 더 이상 배포 수명 주기 이벤트가 실행되지 않습니다. 배포 그룹의 인스턴스 중 하나 이상에 일부 파일이 이미 복사되었거나 이러한 인스턴스에서 일부 스크립트가 이미 실행되었을 수 있습니다.

  • 배포가 즉시 중지되지 않고, 대기 중 상태가 반환됩니다. 이 경우, 일부 배포 수명 주기 이벤트는 배포 그룹에서 계속 실행 중일 수 있습니다. 배포 그룹의 인스턴스 중 하나 이상에 일부 파일이 이미 복사되었거나 이러한 인스턴스에서 일부 스크립트가 이미 실행되었을 수 있습니다. 대기 중인 작업이 완료되면 배포 중지를 위한 후속 호출에서 성공 상태를 반환합니다.

  • 배포를 중지할 수 없고 오류가 반환됩니다. 자세한 내용은 참조의 ErrorInformation일반 오류를 참조하세요 AWS CodeDeploy API.

중지된 배포와 마찬가지로 배포에 실패하면 배포 그룹에 있는 하나 이상의 인스턴스에서 일부 배포 수명 주기 이벤트가 이미 실행되었을 수 있습니다. 배포가 실패한 이유를 알아보려면 CodeDeploy 콘솔을 사용하거나 명령을 호출get-deployment-instance하거나 실패한 배포의 로그 파일 데이터를 분석할 수 있습니다. 자세한 내용은 애플리케이션 수정 버전 및 로그 파일 정리 CodeDeploy EC2/온프레미스 배포에 대한 로그 데이터 보기 단원을 참조하세요.

다시 배포 및 배포 롤백

CodeDeploy 는 이전에 배포된 개정을 새 배포로 재배포하여 롤백을 구현합니다.

배포에 실패한 경우 또는 경보 모니터링 임계값에 도달한 경우 등 특정 조건이 충족되면 배포를 자동으로 롤백하도록 배포 그룹을 구성할 수 있습니다. 또한 개별 배포에서 배포 그룹에 대해 지정한 롤백 설정을 재정의할 수도 있습니다.

뿐만 아니라 이전에 배포한 개정을 수동으로 다시 배포하여 실패한 배포를 롤백하도록 선택할 수도 있습니다.

어느 경우에도 새 배포나 롤백 배포에 고유의 배포 ID가 할당됩니다. CodeDeploy 콘솔에서 볼 수 있는 배포 목록은 자동 배포의 결과인 배포 목록을 보여줍니다.

자세한 내용은 다음을 사용하여 배포를 재배포하고 롤백합니다. CodeDeploy 단원을 참조하십시오.