4단계: Hello World 애플리케이션 배포 - AWS CodeDeploy

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

4단계: Hello World 애플리케이션 배포

이제 Amazon S3에 업로드한 샘플 Hello, World 애플리케이션 수정 버전을 배포합니다. AWS CLI 또는 CodeDeploy 콘솔을 사용하여 수정 버전을 배포하고 배포 진행 상황을 모니터링할 수 있습니다. 애플리케이션 수정 배포에 성공한 후에는 결과를 확인합니다.

를 사용하여 애플리케이션 버전을 배포하십시오. CodeDeploy

CLI또는 콘솔을 사용하여 애플리케이션을 배포할 수 있습니다.

애플리케이션 개정판을 배포하려면 (CLI)

  1. 먼저 배포에는 배포 그룹이 필요합니다. 하지만 배포 그룹을 만들려면 먼저 서비스 역할이 필요합니다ARN. 서비스 역할은 사용자를 대신하여 행동할 수 있는 권한을 서비스에 부여하는 IAM 역할입니다. 이 경우 서비스 역할은 Amazon 인스턴스에 액세스하여 Amazon EC2 EC2 인스턴스 태그를 확장 (읽기) 할 수 있는 CodeDeploy 권한을 부여합니다.

    서비스 역할 생성(CLI) 의 지침에 따라 앞에서 서비스 역할을 생성했습니다. 서비스 역할에 ARN 대한 자세한 내용은 을 참조하십시오서비스 역할 ARN 확인(CLI) .

  2. 이제 이 ARN create-deployment-group 명령을 호출하여 이름이 지정된 Amazon EC2 인스턴스 태그와 이름이 HelloWorld_DepGroup 지정된 HelloWorld_App 배포 구성을 사용하여 이름이 지정된 CodeDeployDemo 애플리케이션과 연결된 배포 그룹을 생성하십시오ARN. CodeDeployDefault.OneAtATime

    aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-role-arn serviceRoleARN
    참고

    create-deployment-group명령은 배포 및 인스턴스의 지정된 이벤트에 대한 Amazon SNS 알림을 주제 구독자에게 보내는 트리거 생성을 지원합니다. 이 명령은 Amazon 경보의 모니터링 임계값이 충족될 때 배포를 자동으로 롤백하고 배포를 중지하도록 경보를 설정하는 옵션도 지원합니다. CloudWatch 이 작업에 대한 명령은 이 자습서에 포함되지 않습니다.

  3. 배포를 생성하기 전에 배포 그룹의 인스턴스에 에이전트가 설치되어 있어야 합니다. CodeDeploy AWS Systems Manager 를 사용하여 명령줄에서 다음 명령으로 에이전트를 설치할 수 있습니다.

    aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo --parameters action=Install,name=AWSCodeDeployAgent --schedule-expression "cron(0 2 ? * SUN *)"

    이 명령은 Systems Manager State Manager에 CodeDeploy 에이전트를 설치한 다음 매주 일요일 아침 2시에 업데이트를 시도하는 연결을 생성합니다. CodeDeploy 에이전트에 대한 자세한 내용은 에이전트 사용을 참조하십시오. CodeDeploy Systems Manager에 대한 자세한 내용은 AWS Systems Manager란 무엇입니까를 참조하세요.

  4. 이제 create-deployment 명령을 호출하고 HelloWorld_App이라는 버킷에 있는 CodeDeployDefault.OneAtATime이라는 애플리케이션 수정을 사용하여 HelloWorld_DepGroup이라는 애플리케이션, HelloWorld_App.zip이라는 배포 구성 및 amzn-s3-demo-bucket이라는 배포 그룹과 연결된 배포를 만듭니다.

    aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=HelloWorld_App.zip

애플리케이션 수정을 배포하려면(콘솔)

  1. CodeDeploy 콘솔을 사용하여 애플리케이션 수정 버전을 배포하려면 먼저 서비스 역할이 필요합니다ARN. 서비스 역할은 사용자를 대신하여 작업을 IAM 수행할 수 있는 권한을 서비스에 부여하는 역할입니다. 이 경우 서비스 역할은 Amazon 인스턴스에 액세스하여 Amazon EC2 EC2 인스턴스 태그를 확장 (읽기) 할 수 있는 CodeDeploy 권한을 부여합니다.

    서비스 역할 생성(콘솔) 의 지침에 따라 앞에서 서비스 역할을 생성했습니다. 서비스 역할에 ARN 대한 자세한 내용은 을 참조하십시오서비스 역할 ARN 확인(콘솔) .

  2. 이제 설정이 완료되었으므로 CodeDeploy 콘솔을 사용하여 애플리케이션 수정 버전을 배포할 수 있습니다. ARN

    https://console.aws.amazon.com/codedeploy에서 AWS Management Console 로그인하고 CodeDeploy 콘솔을 엽니다.

    참고

    시작하기 CodeDeploy에서 설정한 사용자와 동일한 사용자로 로그인합니다.

  3. 탐색 창에서 배포(Deploy)를 확장하고 애플리케이션(Applications)을 선택합니다.

  4. _App을 선택합니다HelloWorld.

  5. 배포 그룹 탭에서 Create deployment group(배포 그룹 생성)을 선택합니다.

  6. Deployment group name(배포 그룹 이름)HelloWorld_DepGroup을 입력합니다.

  7. 서비스 역할에서 서비스 역할의 이름을 선택합니다.

  8. 배포 유형에서 In-place(현재 위치)를 선택합니다.

  9. 환경 구성에서 Amazon EC2 인스턴스를 선택합니다.

  10. 사용하는 AWS Systems Manager에이전트 구성에서는 기본값을 유지합니다.

  11. Name을(를) 입력합니다.

  12. CodeDeployDemo을(를) 입력합니다.

  13. 배포 구성에서 선택합니다CodeDeployDefault. OneAtATime.

  14. 로드 밸런서에서 Enable load balancing(로드 밸런싱 활성화)을 선택 해제합니다.

  15. [Create deployment group]을 선택합니다.

  16. 배포 만들기를 선택합니다.

  17. 배포 그룹에서 HelloWorld _를 선택합니다. DepGroup

  18. 수정 유형에서 애플리케이션을 Amazon S3에 저장을 선택한 후 수정 버전 위치에 이전에 Amazon S3에 업로드한 샘플 Hello, World 애플리케이션 수정 버전의 위치를 입력합니다. 위치를 가져오려면:

    1. 에서 Amazon S3 콘솔을 엽니다 https://console.aws.amazon.com/s3/.

    2. 버킷 목록에서 amzn-s3-demo-bucket (또는 애플리케이션 수정 버전을 업로드한 버킷의 이름) 을 선택합니다.

    3. 객체 목록에서 _App.zip 를 선택합니다. HelloWorld

    4. 개요 탭에서 경로 복사를 선택합니다.

    5. CodeDeploy 콘솔로 돌아가서 수정 위치에 링크 필드 값을 붙여넣습니다.

  19. 수정 파일 형식으로 .zip을 선택합니다.

  20. (선택 사항) 배포 설명에 설명을 입력합니다.

  21. 배포 만들기를 선택합니다. 새로 만든 배포에 대한 정보가 [Deployments] 페이지에 표시됩니다.

배포 모니터링 및 문제 해결

AWS CLI 또는 콘솔을 사용하여 배포를 모니터링하고 문제를 해결하십시오.

배포를 모니터링하고 문제를 해결하려면 () CLI

  1. HelloWorld_App이라는 애플리케이션 및 HelloWorld_DepGroup이라는 배포 그룹에 대해 list-deployments 명령을 호출하여 배포 ID를 가져옵니다.

    aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
  2. 배포 ID로 get-deployment 명령을 호출합니다.

    aws deploy get-deployment --deployment-id deploymentID --query "deploymentInfo.status" --output text
  3. 이 명령으로 배포의 전체 상태가 반환됩니다. 성공하면 Succeeded 값이 반환됩니다.

    전체 상태가 Failed 인 경우 list-deployment-instances및 와 같은 명령을 get-deployment-instance호출하여 문제를 해결할 수 있습니다. 문제 해결 옵션을 더 보려면 인스턴스에 대한 배포 실패를 조사하기 위해 로그 파일 분석을 참조하세요.

배포를 모니터링하고 문제를 해결하려면(콘솔)

CodeDeploy 콘솔의 배포 페이지에 있는 상태 열에서 배포 상태를 모니터링할 수 있습니다.

배포에 대한 자세한 정보를 확인하려면(특히, [Status] 열 값이 [Succeeded]가 아닌 경우):

  1. 배포 테이블에서 배포 ID를 선택합니다. 배포에 실패하면 실패 원인을 설명하는 메시지가 배포 세부 정보 페이지에 표시됩니다.

  2. 배포의 인스턴스에 대한 자세한 정보가 표시됩니다. 배포가 실패하면 어떤 Amazon EC2 인스턴스에서 배포가 실패했는지, 어느 단계에서 배포가 실패했는지 확인할 수 있습니다.

  3. 문제 해결을 더 수행해야 할 경우 View Instance Details와 같은 기능을 사용할 수 있습니다. Amazon EC2 인스턴스의 배포 로그 파일을 분석할 수도 있습니다. 자세한 내용은 인스턴스에 대한 배포 실패를 조사하기 위해 로그 파일 분석 단원을 참조하십시오.

배포 확인

배포에 성공한 후 설치가 작동 중인지 확인합니다. Amazon EC2 인스턴스의 공개 DNS 주소를 사용하여 웹 브라우저에서 웹 페이지를 볼 수 있습니다. (공개 DNS 값을 가져오려면 Amazon EC2 콘솔에서 Amazon EC2 인스턴스를 선택하고 설명 탭의 Public에서 값을 찾으십시오DNS.)

예를 들어 Amazon EC2 인스턴스의 퍼블릭 DNS 주소가 ec2-01-234-567-890.compute-1.amazonaws.com 인 경우 URL 다음을 사용합니다.

http://ec2-01-234-567-890.compute-1.amazonaws.com

성공하면 Hello, World 웹 페이지가 표시되어야 합니다.