

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

# Amazon S3 に CodeDeploy のリビジョンをプッシュする (EC2/オンプレミスのデプロイのみ)
<a name="application-revisions-push"></a>

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

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

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

Amazon S3 バケットがあることを確認してください。[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) の手順に従います。

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

Amazon S3 バケットへのアップロードには、許可が必要です。Amazon S3 バケットポリシーで、これらのアクセス許可を指定できます。たとえば、次の Amazon S3 バケットポリシーでは、ワイルドカード文字 (\$1) を使用すると、 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 の検索](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId)」を参照してください。

Amazon S3 バケットポリシーを生成しアタッチする方法については、「[バケットポリシーの例](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html)」を参照してください。

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

------
#### [ JSON ]

****  

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

------

IAM ポリシーを作成しアタッチする方法については、「[ポリシーの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html#AddingPermissions_Console)」を参照してください。

## を使用してリビジョンをプッシュする AWS CLI
<a name="push-with-cli"></a>

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

**push** コマンドを呼び出してリビジョンをバンドルしてプッシュし、デプロイします。パラメータは次のとおりです。
+  **--application-name**: (文字列) 必須。アプリケーションバージョンに関連付けられる CodeDeploy アプリケーションの名前。
+  **--s3-location**: (文字列) 必須。Amazon S3 にアップロードされるアプリケーションリビジョンの場所に関する情報。Amazon S3 バケットとキーを指定する必要があります。キーは、リビジョンの名前です。CodeDeploy はコンテンツをアップロードする前に zip 形式で圧縮します。形式 `s3://amzn-s3-demo-bucket/your-key.zip` を使用します。
+  **--ignore-hidden-files** または **--no-ignore-hidden-files**: (プール値) オプション。`--no-ignore-hidden-files` フラグ (デフォルト) を使用して、隠しファイルをバンドルし Amazon S3 にアップロードします。隠しファイルをバンドルして Amazon S3 へアップロードしない `--ignore-hidden-files` フラグを使用する。
+  **--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://amzn-s3-demo-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://amzn-s3-demo-bucket/WordPressApp.zip --source .
```

 このコマンドは次のことを行います。
+  バンドルされたファイルを `WordPress_App` という名前のアプリケーションに関連付けます。
+  リビジョンに説明をアタッチします。
+  隠しファイルを無視します。
+  リビジョンに `WordPressApp.zip` という名前を付け、`amzn-s3-demo-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=amzn-s3-demo-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=amzn-s3-demo-bucket,key=WordPressApp.zip,bundleType=zip
```

 詳細については、「[CodeDeploy でデプロイを作成する](deployments-create.md)」を参照してください。