ステップ 3: Amazon S3 に WordPress アプリケーションをアップロードする - AWS CodeDeploy

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 3: Amazon S3 に WordPress アプリケーションをアップロードする

ここでソースコンテンツを CodeDeploy がデプロイできる場所に準備してアップロードします。次の手順では、Amazon S3 バケットをプロビジョニングしてバケット用のアプリケーションリビジョンのファイルを準備し、リビジョンのファイルをバンドルしてから、そのリビジョンをバケットにプッシュする方法を示します。

注記

このチュートリアルでは説明されていませんが、CodeDeploy を使用して GitHub リポジトリからインスタンスにアプリケーションをデプロイできます。詳細については、「GitHub と CodeDeploy との統合」を参照してください。

Amazon S3 バケットをプロビジョニングします

ストレージコンテナあるいは Amazon S3 バケット を作成、または既存のバケットを使用します。バケットにリビジョンをアップロードできること、およびデプロイで使用する Amazon EC2 インスタンスがバケットからリビジョンをダウンロードできることを確認します。

AWS CLI、Amazon S3 コンソール、または Amazon S3 APIs を使用してAmazon S3バケットを作成できます。バケットを作成したら、バケットとその AWS アクセス許可を付与します。

注記

バケット名は、すべての 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. [Bucket name] ボックスで、バケットの名前を入力します。

  4. [Region] リストで、ターゲットリージョンを選択し、[Create] を選択します。

Amazon S3 バケットと AWS アカウントにアクセス許可を付与する

Amazon S3 バケットへのアップロードには、許可が必要です。Amazon S3 バケットポリシーで、これらのアクセス許可を指定できます。たとえば、次の Amazon S3 バケットポリシーでは、ワイルドカード文字 (*) を使用すると、 AWS アカウント111122223333は という名前の 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 バケットポリシーでは、ワイルドカード文字 (*) を使用すると、ARN arn:aws:iam::444455556666:role/CodeDeployDemo を含む IAM インスタンスプロファイルがアタッチされた Amazon EC2 インスタンスが、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 バケットポリシーを生成しアタッチする方法の詳細については、「バケットポリシーの例」を参照してください。

IAM ポリシーを作成しアタッチする方法については、「ポリシーの使用」を参照してください。

バケットのアプリケーションファイルを準備する

WordPress アプリケーションファイル、 およびスクリプトが、次のような開発用マシンで構成されることを確認します。

/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...)

アプリケーションのファイルを 1 つのアーカイブファイルにバンドルし、アーカイブファイルをプッシュする

WordPress アプリケーションファイルと をアーカイブファイル (アプリケーション リビジョン と呼ばれる) にバンドルします。

注記

バケットにオブジェクトを保存したり、バケットの内外にアプリケーションのリビジョンを転送したりする場合に課金されることがあります。詳細については、「Amazon S3 の料金」を参照してください。

  1. 開発マシンで、ファイルが保存されたフォルダに切り替えます。

    cd /tmp/WordPress
    注記

    このフォルダに切替わらなければ、ファイルのバンドルは現在のフォルダで起動されます。例えば、現在のフォルダが /tmp ではなく /tmp/WordPress である場合、バンドルは、tmp サブフォルダ以上を含む可能性のある WordPress フォルダ内のファイルとサブフォルダから開始します。

  2. create-application コマンドを呼び出して、WordPress_App という名前の新しいアプリケーションを登録します。

    aws deploy create-application --application-name WordPress_App
  3. CodeDeploy で push コマンドを呼び出してファイルをまとめてバンドルし、Amazon S3 にリビジョンをアップロードし、アップロードされたリビジョンに関する情報を 1 つの操作で CodeDeploy に登録します。

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

    このコマンドは、現在のディレクトリ (隠しファイルを除く) から、WordPressApp.zip という名前の 1 つのアーカイブファイルにファイルをバンドルし、リビジョンを amzn-s3-demo-bucket バケットにアップロードし、CodeDeploy でアップロードしたリビジョンについての情報を登録します。