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

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

CodeDeploy のリビジョンをAmazon S3(EC2/オンプレミスのデプロイのみ)

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

注記

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

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

Amazon S3 バケットがあることを確認してください。「」の指示に従って、バケットの作成

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

Amazon S3 バケットにアップロードするには、アクセス許可が必要です。Amazon S3 バケットポリシーを使用して、これらのアクセス権限を指定できます。たとえば、次の Amazon S3 バケットポリシーでは、ワイルドカード文字(*)を使用すると、AWS アカウントが許可されます111122223333Amazon S3 バケット内の任意のディレクトリにファイルをアップロードするにはcodedeploydemobucket:

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

AWS アカウント ID を確認するには、「」AWS アカウント ID の確認

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

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

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

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

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

注記

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

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

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

  • --s3-location: (文字列) 必須。Amazon S3 にアップロードされるアプリケーションリビジョンの場所に関する情報。Amazon S3 バケットとキーを指定する必要があります。キーは、リビジョンの名前です。CodeDeploy はコンテンツをアップロードする前に zip 形式で圧縮します。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(文字列) オプション。zip 圧縮され 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://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 を使用したデプロイメントの作成」を参照してください。