

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

# チュートリアル: を使用してパイプラインを作成する AWS CloudFormation
<a name="tutorials-cloudformation"></a>

この例では、 AWS CloudFormation を使用して、ソースコードが変更されるたびにアプリケーションをインスタンスにデプロイするパイプラインを作成できるサンプルテンプレートを提供しています。このサンプルテンプレートでは、 AWS CodePipelineで表示できるパイプラインを作成します。パイプラインは Amazon CloudWatch Events を介して保存された変更の到着を検出します。

**重要**  
パイプライン作成の一環として、CodePipeline は、ユーザーが指定した S3 アーティファクトバケットをアーティファクトとして使用します (これは S3 ソースアクションで使用するバケットとは異なります)。S3 アーティファクトバケットがパイプラインのアカウントとは異なるアカウントにある場合は、S3 アーティファクトバケットが によって所有 AWS アカウント されており、安全で信頼できることを確認してください。

**Topics**
+ [例 1: を使用して AWS CodeCommit パイプラインを作成する AWS CloudFormation](tutorials-cloudformation-codecommit.md)
+ [例 2: を使用して Amazon S3 パイプラインを作成する AWS CloudFormation](tutorials-cloudformation-s3.md)

# 例 1: を使用して AWS CodeCommit パイプラインを作成する AWS CloudFormation
<a name="tutorials-cloudformation-codecommit"></a>

このチュートリアルでは、 AWS CloudFormation コンソールを使用して、CodeCommit ソースリポジトリに接続されたパイプラインを含むインフラストラクチャを作成する方法を示します。このチュートリアルでは、提供されたサンプルテンプレートファイルを使用して、Amazon CloudWatch Events ルールなどのアーティファクトストア、パイプライン、変更検出リソースを含むリソーススタックを作成します。でリソーススタックを作成したら AWS CloudFormation、 AWS CodePipeline コンソールでパイプラインを表示できます。パイプラインは、CodeCommit サービスステージと CodeDeploy デプロイステージの 2 つのステージパイプラインになります。

**前提条件**:

 AWS CloudFormation サンプルテンプレートで使用するには、次のリソースを作成しておく必要があります。
+ ソースリポジトリを作成しておく必要があります。で作成した AWS CodeCommit リポジトリを使用できます[チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)](tutorials-simple-codecommit.md)。
+ CodeDeploy アプリケーションとデプロイグループを作成しておく必要があります。[チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)](tutorials-simple-codecommit.md) で作成したCodeDeploy リソースを使用できます。
+ パイプラインを作成するためのサンプル AWS CloudFormation テンプレートファイルをダウンロードするには、次のいずれかのリンクを選択します。[YAML](samples/codepipeline-codecommit-events-yaml.zip) \$1 [JSON](samples/codepipeline-codecommit-events-json.zip)

  ファイルを解凍し、ローカルコンピュータに配置します。
+ [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip) サンプルアプリケーションファイルをダウンロードします。



**でパイプラインを作成する AWS CloudFormation**

1. [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip) からファイルを解凍し、リポジトリにアップロードします AWS CodeCommit 。解凍したファイルをリポジトリのルートディレクトリにアップロードする必要があります。「[ステップ 2: CodeCommit リポジトリにサンプルコードを追加する](tutorials-simple-codecommit.md#codecommit-add-code)」の指示に従って、ファイルをリポジトリにプッシュできます。

1.  AWS CloudFormation コンソールを開き、**スタックの作成**を選択します。**[With new resources (standard)]** (新しいリソースの使用 (標準)) を選択します。

1. [**テンプレートの指定**] で、[**テンプレートのアップロード**] を選択します。[**ファイルを選択**] を選択し、ローカルコンピュータからテンプレートファイルを選択します。[**次へ**] を選択します。

1. [**スタック名**] に、パイプラインの名前を入力します。サンプルテンプレートで指定されたパラメータが表示されます。以下のパラメータを入力します。

   1. **ApplicationName** に、CodeDeploy アプリケーションの名前を入力します。

   1. **BetaFleet** に CodeDeploy デプロイグループの名前を入力します。

   1. [**BranchName**] に、使用するリポジトリブランチを入力します。

   1. **RepositoryName** に CodeCommit サービスリポジトリの名前を入力します。

1. [**次へ**] を選択します。以下のページのデフォルト値を受け入れ、[**次へ**] を選択します。

1. **「機能**」で、 **が IAM リソースを作成する AWS CloudFormation 可能性があることを確認し**、**「スタックの作成**」を選択します。

1. スタックの作成が完了したら、イベントリストを表示して、エラーがないか確認します。

   **トラブルシューティング**

   でパイプラインを作成する IAM ユーザーには、パイプラインのリソースを作成するための追加のアクセス許可が必要になる AWS CloudFormation 場合があります。が CodeCommit パイプラインに必要な Amazon CloudWatch Events リソースを作成できるようにするには AWS CloudFormation 、ポリシーで次のアクセス許可が必要です。

   ```
   {
        "Effect": "Allow",
        "Action": [
           "events:PutRule",
           "events:PutEvents",
           "events:PutTargets",
           "events:DeleteRule",
           "events:RemoveTargets",
           "events:DescribeRule"
        ],
        "Resource": "resource_ARN"
   }
   ```

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) で CodePipeline コンソールを開きます。

   [**パイプライン**] で、パイプラインを選択してから、[**表示**] を選択します。この図は、パイプラインのソースとデプロイのステージを示しています。
**注記**  
作成されたパイプラインを表示するには、 CloudFormationのスタックの [**リソース**] タブで [**論理 ID**] 列を見つけます。パイプラインの [**物理 ID**] 列の名前をメモします。CodePipeline で、スタックを作成したリージョン内の同じ物理 ID (パイプライン名) のパイプラインを表示できます。

1. ソースリポジトリで、変更をコミットしてプッシュします。変更検出リソースが変更を受け取り、パイプラインが開始されます。

# 例 2: を使用して Amazon S3 パイプラインを作成する AWS CloudFormation
<a name="tutorials-cloudformation-s3"></a>

このチュートリアルでは、 AWS CloudFormation コンソールを使用して、Amazon S3 ソースバケットに接続されたパイプラインを含むインフラストラクチャを作成する方法を示します。このチュートリアルでは、提供されたサンプルテンプレートファイルを使用して、Amazon CloudWatch Events ルールや CloudTrail 証跡などのサービスバケット、アーティファクトストア、パイプライン、変更検出リソースを含むリソーススタックを作成します。でリソーススタックを作成したら AWS CloudFormation、 AWS CodePipeline コンソールでパイプラインを表示できます。パイプラインは、Amazon S3 ソースステージと CodeDeploy デプロイステージの 2 つのステージパイプラインになります。

**前提条件**:

 AWS CloudFormation サンプルテンプレートで使用するには、次のリソースが必要です。
+ Amazon EC2 インスタンスを作成して CodeDeploy エージェントをインスタンスにインストールしておく必要があります。CodeDeploy アプリケーションとデプロイグループを作成しておく必要があります。[チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)](tutorials-simple-codecommit.md) で作成した Amazon EC2 リソースと CodeDeploy リソースを使用します。
+ 次のリンクを選択して、Amazon S3 ソースでパイプラインを作成するためのサンプル AWS CloudFormation テンプレートファイルをダウンロードします。
  + パイプラインのサンプルテンプレートをダウンロードする: [YAML](samples/codepipeline-s3-events-yaml.zip) \$1 [JSON](samples/codepipeline-s3-events-json.zip)
  + CloudTrail バケットおよび証跡のサンプルテンプレート ([YAML](samples/codepipeline-s3-cloudtrail-yaml.zip) \$1 [JSON](samples/codepipeline-s3-cloudtrail-json.zip)) をダウンロードします。
  + ファイルを解凍し、ローカルコンピュータに配置します。
+ [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip) からサンプルアプリケーションファイルをダウンロードします。

  .zip ファイルをローカルコンピューターに保存します。スタックの作成後、.zip ファイルをアップロードします。

**でパイプラインを作成する AWS CloudFormation**

1.  AWS CloudFormation コンソールを開き、**スタックの作成**を選択します。**[With new resources (standard)]** (新しいリソースの使用 (標準)) を選択します。

1. [**テンプレートの選択**] で、[**テンプレートのアップロード**] を選択します。[**ファイルの選択**] を選択し、ローカルコンピュータからテンプレートファイルを選択します。[**次へ**] を選択します。

1. [**スタック名**] に、パイプラインの名前を入力します。サンプルテンプレートで指定されたパラメータが表示されます。以下のパラメータを入力します。

   1. **ApplicationName** に、CodeDeploy アプリケーションの名前を入力します。`DemoApplication` デフォルト名は置き換えることができます。

   1. **BetaFleet** に CodeDeploy デプロイグループの名前を入力します。`DemoFleet` デフォルト名は置き換えることができます。

   1. [**SourceObjectKey**] に `SampleApp_Linux.zip` と入力します。このファイルは、テンプレートによってバケットとパイプラインが作成された後に、バケットにアップロードします。

1. [**次へ**] を選択します。以下のページのデフォルト値を受け入れ、[**次へ**] を選択します。

1. **「機能**」で、 **が IAM リソースを作成する AWS CloudFormation 可能性があることを確認し**、**「スタックの作成**」を選択します。

1. スタックの作成が完了したら、イベントリストを表示して、エラーがないか確認します。

   **トラブルシューティング**

   でパイプラインを作成している IAM ユーザーには、パイプラインのリソースを作成するための追加のアクセス許可が必要になる AWS CloudFormation 場合があります。が Amazon S3 パイプラインに必要な Amazon CloudWatch Events リソースを作成できるようにするには AWS CloudFormation 、ポリシーで次のアクセス許可が必要です。 Amazon S3 

   ```
   {
        "Effect": "Allow",
        "Action": [
           "events:PutRule",
           "events:PutEvents",
           "events:PutTargets",
           "events:DeleteRule",
           "events:RemoveTargets",
           "events:DescribeRule"
        ],
        "Resource": "resource_ARN"
   }
   ```

1. スタックの**リソース**タブ CloudFormationで、スタック用に作成されたリソースを表示します。
**注記**  
作成されたパイプラインを表示するには、 CloudFormationのスタックの [**リソース**] タブで [**論理 ID**] 列を見つけます。パイプラインの [**物理 ID**] 列の名前をメモします。CodePipeline で、スタックを作成したリージョン内の同じ物理 ID (パイプライン名) のパイプラインを表示できます。

   名前に `sourcebucket` ラベルが付いた S3 バケットを選択します (`s3-cfn-codepipeline-sourcebucket-y04EXAMPLE.` など)。パイプラインアーティファクトバケットは選択しないでください。

   リソースは CloudFormationによって新しく作成されたため、ソースバケットは空です。Amazon S3 コンソールを開き、`sourcebucket` バケットを見つけます。[**アップロード**] を選択し、指示に従って `SampleApp_Linux.zip` .zip ファイルをアップロードします。
**注記**  
Amazon S3 がパイプラインのサービスプロバイダである場合、すべてのサービスファイルを 1 つの .zip ファイルとしてパッケージ化したバケットにアップロードする必要があります。それ以外の場合、ソースアクションは失敗します。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) で CodePipeline コンソールを開きます。

   [**パイプライン**] で、パイプラインを選択してから、[**表示**] を選択します。この図は、パイプラインのソースとデプロイのステージを示しています。

1.  AWS CloudTrail リソースを作成するには、以下の手順を実行します。

**で AWS CloudTrail リソースを作成する AWS CloudFormation**

1.  AWS CloudFormation コンソールを開き、**スタックの作成**を選択します。

1. [**テンプレートの選択**] で、[**テンプレートを Amazon S3 にアップロード**] を選択します。**参照**を選択し、ローカルコンピュータから AWS CloudTrail リソースのテンプレートファイルを選択します。[**次へ**] を選択します。

1. [**スタックの名前**] にリソーススタックの名前を入力します。サンプルテンプレートで指定されたパラメータが表示されます。以下のパラメータを入力します。

   1. **SourceObjectKey** では、サンプルアプリケーションの zip ファイルのデフォルトを受け入れます。

1. [**次へ**] を選択します。以下のページのデフォルト値を受け入れ、[**次へ**] を選択します。

1. **「機能**」で、 **が IAM リソースを作成する AWS CloudFormation 可能性があることを確認し**、**「作成**」を選択します。

1. スタックの作成が完了したら、イベントリストを表示して、エラーがないか確認します。

   が Amazon S3 パイプラインに必要な CloudTrail リソースを作成できるようにするには AWS CloudFormation 、ポリシーで次のアクセス許可が必要です。

   ```
   {
        "Effect": "Allow",
        "Action": [
           "cloudtrail:CreateTrail",
           "cloudtrail:DeleteTrail",
           "cloudtrail:StartLogging",
           "cloudtrail:StopLogging",
           "cloudtrail:PutEventSelectors"
        ],
        "Resource": "resource_ARN"
   }
   ```

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) で CodePipeline コンソールを開きます。

   [**パイプライン**] で、パイプラインを選択してから、[**表示**] を選択します。この図は、パイプラインのソースとデプロイのステージを示しています。

1. ソースバケットで、変更をコミットしてプッシュします。変更検出リソースが変更を受け取り、パイプラインが開始されます。