3단계: "hello, world!" 애플리케이션을 Amazon S3에 업로드 - AWS CodeDeploy

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

3단계: "hello, world!" 애플리케이션을 Amazon S3에 업로드

이제 CodeDeploy가 배포할 수 있는 위치에 소스 콘텐츠를 준비하고 업로드합니다. 다음 지침은 Amazon S3 버킷을 프로비저닝하고, 버킷에 대한 애플리케이션 수정 버전 파일을 준비하고, 수정 버전의 파일을 번들로 묶은 다음, 버전을 버킷에 푸시하는 방법을 보여 줍니다.

참고

이 튜토리얼에서 다루지 않지만 CodeDeploy를 사용하여 애플리케이션을 GitHub 리포지토리에서 인스턴스로 배포할 수 있습니다. 자세한 내용은 GitHub와 CodeDeploy 통합 단원을 참조하세요.

Amazon S3 버킷 프로비저닝

스토리지 컨테이너 또는 Amazon S3의 버킷을 만듭니다(또는 기존 버킷 사용). 버킷에 수정 버전을 업로드할 수 있는지, 배포에 사용된 Amazon EC2 인스턴스가 버킷에서 수정 버전을 다운로드할 수 있는지 확인합니다.

AWS CLI, Amazon S3 콘솔, Amazon S3 API를 사용하여 Amazon S3 버킷을 생성할 수 있습니다. 버킷을 생성한 후에는 버킷과 CodeDeploy 사용자에게 액세스 권한을 부여해야 합니다.

참고

버킷 이름은 모든 AWS 계정에 대해 Amazon S3 전체에서 고유해야 합니다. codedeploydemobucket을(를) 사용할 수 없는 경우, 다른 버킷 이름(예: codedeploydemobucket 뒤에 대시와 이니셜 또는 다른 고유 식별자가 옴)을 사용하세요. 그런 다음 이 자습서 전체에서 버킷 이름을 codedeploydemobucket(으)로 대체해야 합니다.

Amazon S3 버킷은 대상 Amazon EC2 인스턴스를 시작하는 동일한 AWS 리전에서 생성해야 합니다. 예를 들어 버킷을 미국 동부(버지니아) 리전에 생성한 경우 대상 Amazon EC2 인스턴스를 미국 동부(버지니아 북부) 리전에서 시작해야 합니다.

Amazon S3 버킷을 생성하려면(CLI)

mb 명령을 호출하여 이름이 codedeploydemobucket인 Amazon S3 버킷을 생성합니다.

aws s3 mb s3://codedeploydemobucket --region region

Amazon S3 버킷을 생성하려면(콘솔)

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

  2. Amazon S3; 콘솔에서 버킷 생성을 선택합니다.

  3. 버킷 이름 상자에서 버킷의 이름을 입력합니다.

  4. 리전 목록에서 대상 리전을 선택한 후 생성을 선택합니다.

Amazon S3 버킷 및 AWS 계정에 권한을 부여합니다.

또한 Amazon S3 버킷으로 업로드할 수 있는 권한이 있어야 합니다. Amazon S3 버킷 정책을 통해 이러한 권한을 지정할 수 있습니다. 예를 들어 다음 Amazon S3 버킷 정책에서 와일드 카드 문자(*)를 사용하여 AWS 계정 111122223333에서 codedeploydemobucket(이)라는 Amazon S3 버킷의 모든 디렉터리에 파일을 업로드할 수 있도록 허용합니다.

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ] }

AWS 계정 아이디를 보려면 AWS 계정 ID 찾기를 참조하세요.

이제 Amazon S3 버킷이 참여하는 각 Amazon EC2 인스턴스에서 다운로드 요청을 허용하는지 확인하는 것이 좋습니다. Amazon S3 버킷 정책을 통해 이를 지정할 수 있습니다. 예를 들어, 다음 Amazon S3 버킷 정책에서 와일드카드 문자(*)를 사용하면 arn:aws:iam::444455556666:role/CodeDeployDemo ARN이 포함된 IAM 인스턴스 프로파일이 연결된 Amazon EC2 인스턴스가 이름이 codedeploydemobucket인 Amazon S3 버킷의 디렉터리에서 파일을 다운로드할 수 있습니다.

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }

Amazon S3 버킷 정책 생성 및 연결에 대한 자세한 내용은 버킷 정책 예제를 참조하세요.

1단계: 설정에서 만든 CodeDeploy 관리 사용자에게도 Amazon S3 버킷으로 개정 버전을 업로드할 수 있는 권한이 있어야 합니다. 이를 지정하는 한 가지 방법은 사용자의 권한 세트나 IAM 역할(사용자에게 수임을 허용한 역할)에 추가하는 IAM 정책을 사용하는 것입니다. 다음 IAM 정책은 사용자가 codedeploydemobucket이라는 Amazon S3 버킷의 어디에나 개정 버전을 업로드할 수 있도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":["s3:PutObject"], "Resource":"arn:aws:s3:::codedeploydemobucket/*" } ] }

IAM 정책을 생성하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 IAM 정책 생성을 참조하세요. 권한 세트에 정책을 추가하는 방법에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서의 Create a permission set(권한 세트 생성)를 참조하세요.

버킷에 대한 애플리케이션 파일 준비

웹 페이지, AppSpec 파일 및 스크립트가 개발 컴퓨터에서 다음과 같이 구성되어 있는지 확인하세요.

c:\ |-- temp\ |--HelloWorldApp\ |-- appspec.yml |-- before-install.bat |-- index.html

애플리케이션의 파일을 단일 아카이브 파일로 묶고 아카이브 파일을 푸시합니다.

파일을 아카이브 파일(애플리케이션 수정 버전이라고도 함)로 번들링합니다.

참고

객체를 버킷에 저장하거나 애플리케이션 수정 버전을 버킷으로 전송한 경우 요금이 부과될 수 있습니다. 자세한 내용은 Amazon S3 요금을 참조하십시오.

  1. 개발 컴퓨터에서 파일이 저장된 폴더로 전환하세요.

    cd c:\temp\HelloWorldApp
    참고

    이 폴더로 전환하지 않으면 현재 폴더에서 파일 번들링이 시작됩니다. 예를 들어 현재 폴더가 c:\temp\HelloWorldApp 대신 c:\temp이면 c:\temp 폴더의 파일 및 하위 폴더로 번들링이 시작되어 HelloWorldApp 하위 폴더보다 더 많은 폴더를 포함할 수 있습니다.

  2. create-application 명령을 호출하여 CodeDeploy에서 이름이 HelloWorld_App인 새 애플리케이션을 등록합니다.

    aws deploy create-application --application-name HelloWorld_App
  3. CodeDeploy push 명령을 호출하여 파일을 묶고, 수정 버전을 Amazon S3로 업로드하고, 업로드된 수정 버전에 대한 정보를 CodeDeploy에 등록할 수 있습니다. 이 모든 작업을 한 번에 수행할 수 있습니다.

    aws deploy push --application-name HelloWorld_App --s3-location s3://codedeploydemobucket/HelloWorld_App.zip --ignore-hidden-files

    이 명령은 현재 디렉터리의 파일(숨겨진 파일 제외)을 단일 아카이브 파일(이름: HelloWorld_App.zip)로 번들링하고 수정 버전을 codedeploydemobucket 버킷에 업로드하고 업로드된 수정 버전에 대한 정보를 CodeDeploy에 등록합니다.