のリビジョンを Amazon S3 CodeDeploy にプッシュする (EC2/オンプレミスデプロイのみ) - AWS CodeDeploy

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

のリビジョンを Amazon S3 CodeDeploy にプッシュする (EC2/オンプレミスデプロイのみ)

「」の説明に従ってリビジョンを計画のリビジョンを計画する CodeDeployし、「」の説明に従ってリビジョンに AppSpec ファイルを追加するとのリビジョンにアプリケーション仕様ファイルを追加する CodeDeploy、コンポーネントファイルをバンドルしてリビジョンを Amazon S3 にプッシュする準備が整います。Amazon EC2 インスタンスへのデプロイの場合、リビジョンをプッシュした後、 CodeDeploy を使用して Amazon S3 からインスタンスにリビジョンをデプロイできます。

注記

CodeDeploy は、 にプッシュされたリビジョンをデプロイするためにも使用できます GitHub。詳細については、 GitHub ドキュメントを参照してください。

の開始方法 CodeDeploy」で説明している AWS CLIのセットアップの指示に従っていることを前提としています。これは、後で説明する push コマンドを呼び出す場合に特に重要です。

Amazon S3 バケットがあることを確認してください。バケットの作成 の手順に従います。

Amazon EC2 インスタンスにデプロイする場合は、ターゲットの Amazon S3 バケットを作成するか、そのバケットがターゲットインスタンスと同じリージョンに存在する必要があります。例えば、米国東部 (バージニア北部) リージョンのインスタンスと米国西部 (オレゴン) リージョンの他のインスタンスにリビジョンをデプロイしたい場合は、米国東部 (バージニア北部) リージョンのバケットにリヒジョンのコピーを一つ、米国西部 (オレゴン) の別のバケットに同じリビジョンの別のコピーを持っている必要があります。このシナリオでは、両方のリージョンとバケットでリビジョンが同じであっても、米国東部 (バージニア北部) リージョンに 1 つ、米国西部 (オレゴン) リージョンに別の、2 つの別々のデプロイを作成する必要があります。

Amazon S3 バケットへのアップロードには、許可が必要です。Amazon S3 バケットポリシーで、これらのアクセス許可を指定できます。例えば、次の Amazon S3 バケットポリシーでは、ワイルドカード文字 (*) を使用すると、 AWS アカウント111122223333は という名前の Amazon S3 バケット内の任意のディレクトリにファイルをアップロードできますDOC-EXAMPLE-BUCKET

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

AWS アカウント ID を表示するには、AWS 「アカウント ID の検索」を参照してください。

Amazon S3 バケットポリシーを生成しアタッチする方法については、「バケットポリシーの例」を参照してください。

push コマンドを呼び出すユーザーは、少なくとも、各ターゲット Amazon S3 バケットにリビジョンをアップロードするアクセス権限が必要です。例えば、次のポリシーでは、ユーザーが DOC-EXAMPLE-BUCKET という名前の Amazon S3 バケット内の任意の場所でリビジョンをアップロードできるようにします。

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

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

を使用してリビジョンをプッシュする AWS CLI

注記

push コマンドは、アプリケーションアーティファクトと AppSpec ファイルをリビジョンにバンドルします。このリビジョンのファイル形式は、圧縮された ZIP ファイルです。各 は JSON 形式または YAML 形式の AppSpec ファイルであるリビジョンを想定しているため、このコマンドを AWS Lambda または Amazon ECS デプロイで使用することはできません。

push コマンドを呼び出してリビジョンをバンドルしてプッシュし、デプロイします。パラメータは次のとおりです。

  • --application-name: (文字列) 必須。アプリケーションリビジョンに関連付けるアプリケーションの名前 CodeDeploy。

  • --s3-location: (文字列) 必須。Amazon S3 にアップロードされるアプリケーションリビジョンの場所に関する情報。Amazon S3 バケットとキーを指定する必要があります。キーは、アップロードされる前にコンテンツに revision. CodeDeploy zips という名前が付けられます。形式 s3://DOC-EXAMPLE-BUCKET/your-key.zip を使用します。

  • --ignore-hidden-files または --no-ignore-hidden-files: (プール値) オプション。--no-ignore-hidden-files フラグ (デフォルト) を使用して、隠しファイルをバンドルし Amazon S3 にアップロードします。隠しファイルをバンドルして Amazon S3 へアップロードしない --ignore-hidden-files フラグを使用する。

  • --source(文字列) オプション。デプロイするコンテンツの場所と、圧縮して Amazon S3 にアップロードする開発マシン上の AppSpec ファイル。この場所は、現在のディレクトリに対する相対パスとして指定されます。相対パスが指定されていない場合、または 1 つのピリオド (「.」) がパスとして使用される場合、現在のディレクトリが使用されます。

  • --description(文字列) オプション。アプリケーションリビジョンを要約したコメントです。指定しない場合、デフォルトの文字列「Uploaded by 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://DOC-EXAMPLE-BUCKET/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://DOC-EXAMPLE-BUCKET/WordPressApp.zip --source .

このコマンドは次のことを行います。

  • バンドルされたファイルを WordPress_App という名前のアプリケーションに関連付けます。

  • リビジョンに説明をアタッチします。

  • 隠しファイルを無視します。

  • リビジョンに WordPressApp.zip という名前を付け、DOC-EXAMPLE-BUCKET というバケットにプッシュします。

  • ルートディレクトリ内のすべてのファイルをリビジョンにバンドルします。

プッシュが成功したら、 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=DOC-EXAMPLE-BUCKET,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=DOC-EXAMPLE-BUCKET,key=WordPressApp.zip,bundleType=zip

詳細については、「を使用してデプロイを作成する CodeDeploy」を参照してください。