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

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

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

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

注記

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

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

オプション 1: へのデプロイAWS Service Catalog設定ファイルなし

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

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

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

    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS 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 AWS 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" } } }

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

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

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

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

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

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

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

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

    4. [Next] を選択します。

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

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

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

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

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

    4. [Next] を選択します。

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

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

    以下に示しているのは、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を開き、CodePipeline コンソールをhttps://console.aws.amazon.com/codepipeline/

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

    3. Eclipseサービスロール] で、[新しいサービスロールに設定して、CodePipeline が IAM でのサービスロールの作成を許可します。

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

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

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

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

    3. [Next] を選択します。

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

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

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

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

      
                  パイプラインの AWS Service Catalog デプロイステージを追加する
    3. [Product ID (プロダクト ID)] に、AWS Service Catalog コンソールからコピーしたプロダクト ID を貼り付けます。

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

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

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

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

    8. [Next] を選択します。

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

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

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

    
              パイプラインの AWS Service Catalog のデプロイされたテンプレートを表示する

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

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

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

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

    
              パイプラインの AWS Service Catalog の更新されたテンプレートを表示する

オプション 2: へのデプロイAWS Service Catalog設定ファイルを使用する

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

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

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

    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS 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 AWS 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" } } }

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

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

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

  1. テキストエディタを開きます。製品の設定ファイルを作成します。設定ファイルは、AWS 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: で製品を作成するAWS Service Catalog

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

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

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

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

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

    4. [Next] を選択します。

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

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

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

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

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

    4. [Next] を選択します。

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

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

    以下に示しているのは、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を開き、CodePipeline コンソールをhttps://console.aws.amazon.com/codepipeline/

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

    3. Eclipseサービスロール] で、[新しいサービスロールに設定して、CodePipeline が IAM でのサービスロールの作成を許可します。

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

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

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

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

    3. [Next] を選択します。

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

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

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

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

      
                  パイプラインの AWS Service Catalog デプロイステージを追加し、個別の設定ファイルを選択する
    3. [Product ID (プロダクト ID)] に、AWS Service Catalog コンソールからコピーしたプロダクト ID を貼り付けます。

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

    5. [Next] を選択します。

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

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

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

    
              パイプラインの AWS Service Catalog のデプロイされたテンプレートを表示する

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

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

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

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

    
              パイプラインの AWS Service Catalog の更新されたテンプレートを表示する