チュートリアル: Service Catalog にデプロイするパイプラインを作成する - AWS CodePipeline

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

チュートリアル: Service Catalog にデプロイするパイプラインを作成する

Service Catalog を使用すると、AWS CloudFormation テンプレートに基づいて製品を作成してプロビジョニングできます。このチュートリアルでは、製品テンプレートを Service Catalog にデプロイするパイプラインを作成して設定し、(GitHub、CodeCommit、Amazon S3 で作成済みの) 出典リポジトリで行った変更を送信する方法を示します。

注記

Amazon S3 がパイプラインのソースプロバイダである場合、すべての出典ファイルを 1 つの .zip ファイルとしてパッケージ化してバケットにアップロードする必要があります。それ以外の場合、ソースアクションは失敗します。

まず Service Catalog で製品を作成し、次に AWS CodePipeline でパイプラインを作成します。このチュートリアルでは、デプロイ設定を指定するための 2 つのオプションを取り上げます。

オプション 1: 設定ファイルを使用しないで Service Catalog にデプロイする

この例では、S3 バケットのサンプルの AWS CloudFormation テンプレートファイルをアップロードし、Service Catalog で製品を作成します。次に、CodePipeline コンソールで、パイプラインを作成し、デプロイ設定を指定します。

ステップ 1: サンプルテンプレートファイルをソースリポジトリにアップロードする

  1. テキストエディタを開きます。以下のコードをファイルに貼り付けて、サンプルテンプレートを作成します。S3_template.json という名前でファイルを保存します。

    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": {} } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of Amazon S3 bucket to hold website content" } } }

    このテンプレートでは、Service Catalog で使用できる S3 バケットを作成することを AWS CloudFormation に許可します。

  2. S3_template.json ファイルを AWS CodeCommit リポジトリにアップロードします。

ステップ 2: Service Catalog で製品を作成する

  1. IT 管理者として、Service Catalog コンソールにサインインし、[製品] ページに移動して、[新しい製品のアップロード] を選択します。

  2. [新しい製品のアップロード] ページで、以下の手順を実行します。

    1. [製品名] に、新しい製品に使用する名前を入力します。

    2. [Description (説明)] に製品カタログの説明を入力します。この説明は、製品リストでユーザーが正しい製品を選択できるように表示されます。

    3. [提供元] に IT 部門または管理者の名前を入力します。

    4. [Next] (次へ) をクリックします。

  3. (オプション) [サポート詳細の入力] に製品サポートの連絡先情報を入力し、[次へ] を選択します。

  4. [バージョンの詳細] に以下の情報を入力します。

    1. [Upload a template file(テンプレートファイルをアップロード)] を選択します。S3_template.json ファイルを見つけ、アップロードします。

    2. [バージョンタイトル] に、製品バージョンの名前 (devops S3 v2 など) を入力します。

    3. [Description (説明)] に、このバージョンと他のバージョンを区別するための詳細を入力します。

    4. [Next] (次へ) をクリックします。

  5. [確認] ページで、情報が正しいことを確認し、[作成] を選択します。

  6. ブラウザの [製品] ページで、新しい製品の URL をコピーします。これには製品 ID が含まれています。この製品 ID をコピーして保持します。CodePipeline でパイプラインを作成するときに、それを使用します。

    以下に示しているのは、my-product という製品の URL です。製品 ID を抽出するには、等号 (=) とアンパサンド (&) との間の値をコピーします。この例では、製品 ID は prod-example123456 です。

    https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
    注記

    ページから移動する前に、製品の URL をコピーします。このページから移動したら、CLI を使用して製品 ID を取得する必要があります。

    数秒後、製品が [製品] ページに表示されます。製品をリストに表示するには、ブラウザの更新が必要になる場合があります。

ステップ 3: パイプラインを作成する

  1. パイプラインに名前を付け、パイプラインのパラメータを選択するには、以下の手順を実行します。

    1. AWS Management Console にサインインして、https://console.aws.amazon.com/codepipeline/ で CodePipeline コンソールを開きます。

    2. [Getting started (開始方法)] を選択します。[パイプラインの作成] を選択し、パイプラインの名前を入力します。

    3. このチュートリアルの目的では、[パイプラインタイプ] で、[V1] を選択します。[V2] を選択することもできますが、パイプラインタイプは特性と価格が異なることに注意してください。詳細については、「パイプラインのタイプ」を参照してください。

    4. サービスロール で、新しいサービスロール を選択し、CodePipeline に IAM でのサービスロールの作成を許可します。

    5. [詳細設定] をデフォルト設定のままにし、[次へ] を選択します。

  2. ソースステージを追加するには、以下の手順を実行します。

    1. [ソースプロバイダ] で、AWS CodeCommit を選択します。

    2. [リポジトリ名] と [ブランチ名] に、ソースアクションに使用するリポジトリとブランチを入力します。

    3. [Next] (次へ) をクリックします。

  3. [Add build stage (ビルドステージの追加)] で [Skip build stage (ビルドステージのスキップ)] を選択し、もう一度 [スキップ] を選択して警告メッセージを受け入れます。

  4. [Add deploy stage (デプロイステージの追加)] で、以下の手順を実行します。

    1. [デプロイプロバイダ] で、[AWS Service Catalog] を選択します。

    2. デプロイ設定で、[Enter deployment configuration (デプロイ設定の入力)] を選択します。

    3. [プロダクト ID] に、Service Catalog コンソールからコピーしたプロダクト ID を貼り付けます。

    4. [Template file path (テンプレートファイルパス)] に、テンプレートファイルが保存されている相対パスを入力します。

    5. [製品タイプ] で、[AWS CloudFormation テンプレート] を選択します。

    6. [製品バージョン名] に、Service Catalog で指定した製品バージョンの名前を入力します。テンプレートの変更を新しい製品バージョンにデプロイする場合は、同じ製品の以前の製品バージョンで使用されていない製品バージョン名を入力します。

    7. [Input artifact (入力アーティファクト)] で、ソース入力アーティファクトを選択します。

    8. [Next] (次へ) をクリックします。

  5. [Review (確認)] で、パイプライン設定を確認し、[Create (作成)] を選択します。

  6. パイプラインが正常に実行されたら、デプロイステージで [Details (詳細)] を選択します。これにより、Service Catalog で製品が開きます。

    
              パイプラインの Service Catalog デプロイステージを表示する
  7. 製品情報で、バージョン名を選択して製品テンプレートを開きます。テンプレートのデプロイを表示します。

ステップ 4: 変更をプッシュして Service Catalog で製品を確認する

  1. CodePipeline コンソールでパイプラインを表示し、出典ステージで 詳細 を選択します。コンソールでソース AWS CodeCommit リポジトリが開きます。[Edit (編集)] を選択し、ファイルの内容 (説明など) を変更します。

    "Description": "Name of Amazon S3 bucket to hold and version website content"
  2. 変更をコミットし、プッシュします。変更をプッシュした後、パイプラインが開始されます。パイプラインの実行が完了したら、デプロイステージで [詳細] を選択して、製品を Service Catalog で開きます。

  3. 製品情報で、新しいバージョン名を選択して製品テンプレートを開きます。デプロイされたテンプレートの変更を表示します。

オプション 2: 設定ファイルを使用して Service Catalog にデプロイする

この例では、S3 バケットのサンプルの AWS CloudFormation テンプレートファイルをアップロードし、Service Catalog で製品を作成します。デプロイ設定を指定する個別の設定ファイルもアップロードします。次に、パイプラインを作成し、設定ファイルの場所を指定します。

ステップ 1: サンプルテンプレートファイルをソースリポジトリにアップロードする

  1. テキストエディタを開きます。以下のコードをファイルに貼り付けて、サンプルテンプレートを作成します。S3_template.json という名前でファイルを保存します。

    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": {} } }, "Outputs": { "BucketName": { "Value": { "Ref": "S3Bucket" }, "Description": "Name of Amazon S3 bucket to hold website content" } } }

    このテンプレートでは、Service Catalog で使用できる S3 バケットを作成することを AWS CloudFormation に許可します。

  2. S3_template.json ファイルを AWS CodeCommit リポジトリにアップロードします。

ステップ 2: 製品デプロイ設定ファイルを作成する

  1. テキストエディタを開きます。製品の設定ファイルを作成します。設定ファイルは、Service Catalog デプロイパラメータ/設定を定義するために使用されます。パイプラインを作成するときに、このファイルを使用します。

    このサンプルでは、ProductVersionName を「devops S3 v2」、ProductVersionDescriptionMyProductVersionDescription としています。テンプレートの変更を新しい製品バージョンにデプロイする場合は、同じ製品の以前の製品バージョンで使用されていない製品バージョン名を入力するだけです。

    sample_config.json という名前でファイルを保存します。

    { "SchemaVersion": "1.0", "ProductVersionName": "devops S3 v2", "ProductVersionDescription": "MyProductVersionDescription", "ProductType": "CLOUD_FORMATION_TEMPLATE", "Properties": { "TemplateFilePath": "/S3_template.json" } }

    このファイルにより、パイプラインが実行されるたびに製品バージョン情報が作成されます。

  2. sample_config.json ファイルを AWS CodeCommit リポジトリにアップロードします。必ずこのファイルはソースリポジトリにアップロードしてください。

ステップ 3: Service Catalog で製品を作成する

  1. IT 管理者として、Service Catalog コンソールにサインインし、[製品] ページに移動して、[新しい製品のアップロード] を選択します。

  2. [新しい製品のアップロード] ページで、以下の手順を実行します。

    1. [製品名] に、新しい製品に使用する名前を入力します。

    2. [Description (説明)] に製品カタログの説明を入力します。この説明は製品リストに表示されて、ユーザーが正しい製品を選択するのに役立ちます。

    3. [提供元] に IT 部門または管理者の名前を入力します。

    4. [Next] (次へ) をクリックします。

  3. (オプション) [サポート詳細の入力] に、製品サポートの連絡先情報を入力し、[次へ] を選択します。

  4. [バージョンの詳細] に以下の情報を入力します。

    1. [Upload a template file(テンプレートファイルをアップロード)] を選択します。S3_template.json ファイルを見つけ、アップロードします。

    2. [バージョンタイトル] に製品バージョンの名前 (devops S3 v2 など) を入力します。

    3. [Description (説明)] に、このバージョンと他のバージョンを区別するための詳細を入力します。

    4. [Next] (次へ) をクリックします。

  5. [Review (確認)] ページで、情報が正しいことを確認し、[Confirm and upload (確認してアップロード)] を選択します。

  6. ブラウザの [製品] ページで、新しい製品の URL をコピーします。これには製品 ID が含まれています。この製品 ID をコピーして保持します。CodePipeline でパイプラインを作成するときに使用します。

    以下に示しているのは、my-product という製品の URL です。製品 ID を抽出するには、等号 (=) とアンパサンド (&) との間の値をコピーします。この例では、製品 ID は prod-example123456 です。

    https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
    注記

    ページから移動する前に、製品の URL をコピーします。このページから移動したら、CLI を使用して製品 ID を取得する必要があります。

    数秒後、製品が [製品] ページに表示されます。製品をリストに表示するには、ブラウザの更新が必要になる場合があります。

ステップ 4: パイプラインを作成する

  1. パイプラインに名前を付け、パイプラインのパラメータを選択するには、以下の手順を実行します。

    1. AWS Management Console にサインインして、https://console.aws.amazon.com/codepipeline/ で CodePipeline コンソールを開きます。

    2. [Getting started (開始方法)] を選択します。[パイプラインの作成] を選択し、パイプラインの名前を入力します。

    3. サービスロール で、新しいサービスロール を選択し、CodePipeline に IAM でのサービスロールの作成を許可します。

    4. [詳細設定] をデフォルト設定のままにし、[次へ] を選択します。

  2. ソースステージを追加するには、以下の手順を実行します。

    1. [ソースプロバイダ] で、AWS CodeCommit を選択します。

    2. [リポジトリ名] と [ブランチ名] に、ソースアクションに使用するリポジトリとブランチを入力します。

    3. [Next] (次へ) をクリックします。

  3. [Add build stage (ビルドステージの追加)] で [Skip build stage (ビルドステージのスキップ)] を選択し、もう一度 [スキップ] を選択して警告メッセージを受け入れます。

  4. [Add deploy stage (デプロイステージの追加)] で、以下の手順を実行します。

    1. [デプロイプロバイダ] で、[AWS Service Catalog] を選択します。

    2. [設定ファイルの使用] を選択します。

    3. [プロダクト ID] に、Service Catalog コンソールからコピーしたプロダクト ID を貼り付けます。

    4. [Configuration file path (設定ファイルのパス)] に、リポジトリ内の設定ファイルのファイルパスを入力します。

    5. [Next] (次へ) をクリックします。

  5. [Review (確認)] で、パイプライン設定を確認し、[Create (作成)] を選択します。

  6. パイプラインが正常に実行されたら、デプロイステージで [詳細] を選択して、製品を Service Catalog で開きます。

    
              パイプラインの Service Catalog デプロイステージを表示する
  7. 製品情報で、バージョン名を選択して製品テンプレートを開きます。テンプレートのデプロイを表示します。

ステップ 5: 変更をプッシュして Service Catalog で製品を確認する

  1. CodePipeline コンソールでパイプラインを表示し、出典ステージで 詳細 を選択します。コンソールでソース AWS CodeCommit リポジトリが開きます。[Edit (編集)] を選択して、ファイルの内容 (説明など) を変更します。

    "Description": "Name of Amazon S3 bucket to hold and version website content"
  2. 変更をコミットし、プッシュします。変更をプッシュした後、パイプラインが開始されます。パイプラインの実行が完了したら、デプロイステージで [詳細] を選択して、製品を Service Catalog で開きます。

  3. 製品情報で、新しいバージョン名を選択して製品テンプレートを開きます。デプロイされたテンプレートの変更を表示します。