3단계: Amazon S3에 WordPress 애플리케이션 업로드 - AWS CodeDeploy

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

3단계: Amazon S3에 WordPress 애플리케이션 업로드

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

참고

이 자습서에서는 다루지 않지만 GitHub 리포지토리에서 인스턴스로 애플리케이션을 CodeDeploy 배포하는 데 사용할 수 있습니다. 자세한 정보는 다음과 통합하기 CodeDeploy GitHub을 참조하세요.

Amazon S3 버킷 프로비저닝

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

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

참고

모든 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/에서 S3 콘솔을 엽니다.

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

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

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

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

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

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

계정 ID를 보려면 AWS 계정 ID 찾기를 참조하십시오. AWS

이제 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 버킷 정책 생성 및 연결에 대한 자세한 내용은 버킷 정책 예제를 참조하세요.

IAM 정책을 만들고 연결하는 방법은 정책 작업을 참조하세요.

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

WordPress 애플리케이션 파일, AppSpec 파일, 스크립트가 다음과 같이 개발 컴퓨터에 구성되어 있는지 확인하세요.

/tmp/ |--WordPress/ |-- appspec.yml |-- scripts/ | |-- change_permissions.sh | |-- create_test_db.sh | |-- install_dependencies.sh | |-- start_server.sh | |-- stop_server.sh |-- wp-admin/ | |-- (various files...) |-- wp-content/ | |-- (various files...) |-- wp-includes/ | |-- (various files...) |-- index.php |-- license.txt |-- readme.html |-- (various files ending with .php...)

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

WordPress 애플리케이션 파일과 파일을 아카이브 AppSpec 파일 (애플리케이션 버전이라고 함) 로 묶습니다.

참고

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

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

    cd /tmp/WordPress
    참고

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

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

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

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

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