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

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

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

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

참고

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

Amazon S3 버킷 프로비저닝

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

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

참고

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

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

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

mb 명령을 호출하여 이름이 amzn-s3-demo-bucket인 Amazon S3 버킷을 생성합니다.

aws s3 mb s3://amzn-s3-demo-bucket --region region

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

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

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

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

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

Amazon S3 버킷 및 AWS 계정에 권한 부여

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

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

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

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

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

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

에서 생성한 CodeDeploy 관리 사용자도 Amazon S3 버킷에 개정을 업로드할 수 있는 권한이 1단계: 설정 있어야 합니다. 이를 지정하는 한 가지 방법은 사용자의 권한 세트 또는 IAM 역할(사용자가 수임하도록 허용)에 추가하는 IAM 정책을 통하는 것입니다. 다음 IAM 정책을 통해 사용자는 라는 Amazon S3 버킷의 모든 위치에 개정을 업로드할 수 있습니다amzn-s3-demo-bucket.

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

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 명령을 호출하여 라는 새 애플리케이션을 등록HelloWorld_App합니다 CodeDeploy.

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

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

    이 명령은 현재 디렉터리의 파일(숨겨진 파일 제외)을 라는 단일 아카이브 파일로 번들링하고HelloWorld_App.zip, amzn-s3-demo-bucket 버킷에 개정을 업로드하고, 업로드된 개정에 CodeDeploy 대한 정보를 에 등록합니다.