Amazon S3에 CodeDeploy의 개정 푸시(EC2 온프레미스 배포 전용) - AWS CodeDeploy

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

Amazon S3에 CodeDeploy의 개정 푸시(EC2 온프레미스 배포 전용)

CodeDeploy의 개정 계획에서 설명한 대로 개정을 계획하고 CodeDeploy에 대한 개정에 애플리케이션 사양 파일 추가에 설명한 대로 개정에 AppSpec 파일을 추가하면 구성 요소 파일을 번들로 묶고 개정을 Amazon S3로 푸시할 준비가 되었습니다. Amazon EC2 인스턴스에 배포하는 경우 개정을 푸시한 후 CodeDeploy를 사용하여 Amazon S3 에서 인스턴스로 개정을 배포할 수 있습니다.

참고

CodeDeploy를 사용하여 GitHub에 푸시된 개정을 배포할 수도 있습니다. 자세한 내용은 GitHub 문서를 참조하세요.

AWS CLI을(를) 설정하기 위해 CodeDeploy 시작하기의 지침을 이미 따른 것으로 가정합니다. 이는 특히 추후에 설명되는 push 명령을 호출하는 데 중요합니다.

Amazon S3 버킷이 있는지 확인합니다. 버킷 생성의 지침을 따릅니다.

Amazon EC2 인스턴스에 배포하는 경우 대상 Amazon S3 버킷을 생성하거나 대상 인스턴스와 동일한 리전에 있어야 합니다. 예를 들어 미국 동부(버지니아 북부) 리전에 있는 일부 인스턴스와 미국 서부(오레곤) 리전에 있는 다른 인스턴스에 개정을 배포하려면 미국 동부(버지니아 북부) 리전에 하나의 버킷과 개정 사본이 있어야 하고 미국 서부(오레곤) 리전에 또 다른 버킷과 동일 개정 사본이 있어야 합니다. 이 시나리오에서는 리전 및 버킷 모두에서 개정이 동일하더라도 미국 동부(버지니아 북부) 리전과 미국 서부(오레곤) 리전에 하나씩 두 개의 개별 배포를 만들어야 합니다.

또한 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 버킷 정책을 생성하고 연결하는 방법은 버킷 정책 예제를 참조하세요.

push 명령을 호출하는 사용자는 최소한 각 대상 Amazon S3 버킷에 개정을 업로드할 수 있는 권한이 있어야 합니다. 예를 들어 다음 정책은 사용자가 codedeploydemobucket이라는 Amazon S3 버킷의 어디에나 개정을 업로드할 수 있도록 허용합니다.

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

IAM 정책을 생성하고 연결하는 방법을 알아보려면 정책 작업 단원을 참조하세요.

AWS CLI을(를) 사용하여 개정을 푸시합니다.

참고

push 명령은 애플리케이션 Artifact와 AppSpec 파일을 개정으로 번들링합니다. 이 개정의 파일 형식은 압축된 ZIP 파일입니다. 이 명령은 각각 JSON 형식 또는 YAML 형식의 AppSpec 파일인 개정을 예상하기 때문에 AWS Lambda 또는 Amazon ECS 배포와 함께 사용할 수 없습니다.

push 명령을 호출하여 배포에 대한 개정을 번들링하고 푸시합니다. 해당 파라미터는 다음과 같습니다.

  • --application-name: (문자열) 필수. 애플리케이션 개정과 연관된 CodeDeploy 애플리케이션의 이름.

  • --s3-location: (문자열) 필수. Amazon S3에 업로드할 애플리케이션 개정의 위치에 대한 정보. Amazon S3 버킷과 키를 지정해야 합니다. 키는 개정의 이름입니다. CodeDeploy는 업로드되기 전에 콘텐츠를 압축합니다. s3://your-S3-bucket-name/your-key.zip 형식을 사용합니다.

  • --ignore-hidden-files 또는 --no-ignore-hidden-files: (부울) 선택 사항. --no-ignore-hidden-files 플래그(기본값)를 사용하여 숨겨진 파일을 번들링하고 Amazon S3로 업로드합니다. --ignore-hidden-files 플래그를 사용하여 숨겨진 파일을 번들링하지 않고 Amazon S3로 업로드합니다.

  • --source (문자열) 선택 사항. 배포할 콘텐츠와, 압축하여 Amazon S3로 업로드될 개발 시스템 상의 AppSpec 파일의 위치. 이 위치는 현재 디렉터리를 기준으로 한 상대 경로로 지정됩니다. 상대 경로가 지정되지 않았거나 경로에 단일 마침표(‘.’)를 사용하는 경우 현재 디렉터리가 사용됩니다.

  • --description (문자열) 선택 사항. 애플리케이션 개정을 요약하는 설명. 지정되지 않은 경우, 기본 문자열 “AWS CLI에서 업로드 'time' UTC”가 사용됩니다. 여기서 'time'은 UTC(협정세계시)의 현재 시스템 시간입니다.

이 AWS CLI을(를) 사용하여 Amazon EC2 배포에 대한 개정을 푸시할 수 있습니다. 예를 들어 푸시 명령은 다음과 같습니다.

Linux, macOS 또는 Unix:

aws deploy push \ --application-name WordPress_App \ --description "This is a revision for the application WordPress_App" \ --ignore-hidden-files \ --s3-location s3://codedeploydemobucket/WordPressApp.zip \ --source .

Windows:

aws deploy push --application-name WordPress_App --description "This is a revision for the application WordPress_App" --ignore-hidden-files --s3-location s3://codedeploydemobucket/WordPressApp.zip --source .

이 명령은 다음 작업을 수행합니다.

  • 번들링된 파일을 WordPress_App이라는 애플리케이션과 연결합니다.

  • 개정에 설명을 첨부합니다.

  • 숨겨진 파일을 무시합니다.

  • 개정을 WordPressApp.zip으로 지정하고 codedeploydemobucket이라는 버킷으로 푸시합니다.

  • 루트 디렉토리의 모든 파일을 개정으로 번들링합니다.

푸시가 성공하면 AWS CLI 또는 CodeDeploy 콘솔을 사용하여 Amazon S3에서 개정을 배포합니다. AWS CLI을(를) 통해 이 개정을 배포하려면:

Linux, macOS 또는 Unix:

aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name your-deployment-config-name \ --deployment-group-name your-deployment-group-name \ --s3-location bucket=codedeploydemobucket,key=WordPressApp.zip,bundleType=zip

Windows:

aws deploy create-deployment --application-name WordPress_App --deployment-config-name your-deployment-config-name --deployment-group-name your-deployment-group-name --s3-location bucket=codedeploydemobucket,key=WordPressApp.zip,bundleType=zip

자세한 내용은 CodeDeploy에서 배포 만들기 섹션을 참조하세요