チュートリアル: パイプラインを作成します。を AWS CloudFormation StackSets デプロイアクション - AWS CodePipeline

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

チュートリアル: パイプラインを作成します。を AWS CloudFormation StackSets デプロイアクション

このチュートリアルでは、AWS CodePipelineコンソールを使用して、スタックセットの作成とスタックインスタンスの作成のためのデプロイアクションを含むパイプラインを作成します。パイプラインが実行されると、テンプレートはスタックセットを作成し、さらにスタックセットを作成します。

スタックセットのアクセス権限を管理するには、自己管理型と AWS 管理型 IAM ロールの 2 つの方法があります。このチュートリアルでは、セルフマネージド型のアクセス許可の例を示します。

CodePipelineでスタックセットを最も効果的に使用するには、AWS CloudFormationStackSets とその仕組み 「」を参照してください。StackSets の概念()AWS CloudFormation ユーザーガイド

Prerequisites

スタックセット操作では、管理アカウントとターゲットアカウントの 2 つの異なるアカウントを使用します。管理者アカウントでスタックセットを作成します。ターゲットアカウントのスタックセットに属する個別のスタックを作成します。

管理者アカウントで管理者ロールを作成するには

ターゲットアカウントにサービスロールを作成するには

ステップ 1: サンプルをアップロードするAWS CloudFormationテンプレートとパラメータファイル

スタックセットテンプレートおよびパラメータファイルのソースバケットを作成します。サンプルをダウンロードします。AWS CloudFormation[ template file] (&SAM; テンプレートファイル)をクリックし、パラメータファイルを設定し、 アップロードS3 ソースバケットにアップロードします。

注記

ソースファイルがテンプレートだけであっても、S3 ソースバケットにアップロードする前に、ソースファイルを ZIP で圧縮してください。

S3 ソースバケットを作成するには

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

  2. [バケットを作成する] を選択します。

  3. Eclipseバケット名 に、バケットの名前を入力します。

    Eclipseリージョンで、パイプラインを作成する [Region (リージョン)] を選択します。[バケットを作成する] を選択します。

  4. バケットが作成されると、成功バナーが表示されます。[Go to bucket details] を選択します。

  5. [プロパティ] タブで、[バージョニング] を選択します。[バージョニングの有効化] を選択し、[保存] を選択します。

を作成するにはAWS CloudFormation[ template file] (&SAM; テンプレートファイル)

  1. スタックセットの CloudTrail 設定を生成するために、次のサンプルテンプレートファイルをダウンロードします。https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml

  2. template.yml という名前でファイルを保存します。

parameters.txt ファイルを作成するには

  1. 配置のパラメータを含むファイルを作成します。パラメータは、実行時にスタック内で更新する値です。次のサンプルファイルは、スタックセットのテンプレートパラメータを更新して、ロギング検証とグローバルイベントを有効にします。

    [ { "ParameterKey": "EnableLogFileValidation", "ParameterValue": "true" }, { "ParameterKey": "IncludeGlobalEvents", "ParameterValue": "true" } ]
  2. parameters.txt という名前でファイルを保存します。

accounts.txt ファイルを作成するには

  1. 次のサンプルファイルに示すように、インスタンスを作成するアカウントを使用してファイルを作成します。

    [ "111111222222,333333444444" ]
  2. accounts.txt という名前でファイルを保存します。

ソースファイルを作成してアップロードするには

  1. ファイルを 1 つの ZIP ファイルに結合します。ZIP ファイルでは、ファイルは次のようになります。

    template.yml parameters.txt accounts.txt
  2. S3 バケットに ZIP ファイルをアップロードします。このファイルは、パイプラインを作成するウィザードを使用してデプロイメントCodePipeline。

ステップ 2: パイプラインを作成します。

このセクションでは、次のアクションを使用してパイプラインを作成します。

  • S3 ソースアクションを持つソースステージ。ソースアーティファクトがテンプレートファイルおよびサポートソースファイルになります。

  • デプロイステージAWS CloudFormationスタックセットを作成するスタックセットデプロイメントアクション。

  • デプロイステージAWS CloudFormationスタックインスタンスデプロイメントアクションで、ターゲットアカウント内にスタックとインスタンスを作成します。

CloudFormationStackSets アクションを使用してパイプラインを作成するには

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

  2. [ようこそ] ページ、[Getting started (開始方法)] ページ、または [パイプライン] ページで、[パイプラインの作成] を選択します。

  3. Eclipseステップ 1: パイプラインの設定の選択, でパイプライン名に」と入力します。MyStackSetsPipeline

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

  5. EclipseArtifact ストアは、デフォルト設定のままにします。

    注記

    これは、ソースコードのソースバケットではありません。パイプラインのアーティファクトストアです。パイプラインごとに別個のアーティファクトストア (S3 バケットなど) が必要です。パイプラインを作成または編集する場合は、パイプラインリージョンにアーティファクトバケットが必要です。また、アクションを実行する AWS リージョンごとに 1 つのアーティファクトバケットが必要です。

    詳細については、入力および出力アーティファクト および CodePipeline パイプラインの構造リファレンス を参照してください。

    [Next] を選択します。

  6. リポジトリの []ステップ 2: ソースステージの追加ページでソースプロバイダー] で、Amazon S3

  7. Eclipseバケットで、このチュートリアル用に作成した S3 ソースバケット(BucketName。EclipseS3 オブジェクトキーに、ZIP ファイルのファイルパスとファイル名を入力します。MyFiles.zip

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

  9. Eclipseステップ 3: ビルドステージの追加] で、ビルドステージをスキップを選択し、[スキップをクリックします。

    [Next] を選択します。

  10. Eclipseステップ 4: デプロイステージの追加:

    1. Eclipseプロバイダーの展開] で、AWS CloudFormation スタックセット

    2. Eclipseスタックセット名に、スタックセットの名前を入力します。これは、テンプレートが作成するスタックセットの名前です。

      注記

      スタックセット名をメモします。これは、パイプラインに 2 つ目の StackSets デプロイアクションを追加するときに使用します。

    3. Eclipseテンプレートのパスに、テンプレートファイルをアップロードしたアーチファクト名とファイルパスを入力します。たとえば、デフォルトのソースアーティファクト名を使用して次のように入力します。SourceArtifact

      SourceArtifact::template.yml
    4. Eclipse展開ターゲットに、アカウントファイルをアップロードしたアーチファクト名とファイルパスを入力します。たとえば、デフォルトのソースアーティファクト名を使用して次のように入力します。SourceArtifact

      SourceArtifact::accounts.txt
    5. Eclipseデプロイターゲット AWS リージョン,と入力します。最初のスタックインスタンスのデプロイ用に 1 つのリージョン(us-east-1

    6. 拡張デプロイメントoptions。Eclipseパラメータに、パラメータ・ファイルをアップロードしたアーチファクト名とファイル・パスを入力します。たとえば、デフォルトのソースアーティファクト名を使用して次のように入力します。SourceArtifact

      SourceArtifact::parameters.txt

      パラメータをリテラル入力として入力するにはファイルパスではなくに、以下を入力します。

      ParameterKey=EnableLogFileValidation,ParameterValue=true ParameterKey=IncludeGlobalEvents,ParameterValue=true
    7. Eclipse機能[CAPABILITY_IAM] で、[CAPABILITY_NAMED_IAM] を選択します。

    8. Eclipseアクセス許可モデルで、SELF_MANGED を選択します

    9. Eclipse障害耐性のパーセンテージに」と入力します。20

    10. Eclipse最大同時実行数に」と入力します。25

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

    12. [Create pipeline] を選択します。パイプラインが表示されます。

    13. パイプラインの実行を許可します。

ステップ 3: 初期デプロイの表示

初期デプロイのリソースとステータスを表示します。デプロイメントによってスタックセットが正常に作成されたことを確認したら、2 番目のアクションをデプロイステージ。

リソースを表示するには

  1. CodePipeline コンソール ()https://console.aws.amazon.com/codepipeline/

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

  3. [AWS CloudFormationアクションをクラウドフォーメーションスタックセットアクションをパイプラインでアップロードします。スタックセットのテンプレート、リソース、イベントがAWS CloudFormationconsole.

  4. 左のナビゲーションパネルで、フースStackSets。リストで、新しいスタックセットを選択します。

  5. [スタックインスタンスタブ。指定したアカウントごとに 1 つのスタックインスタンスが、us-east-1 リージョンに作成されていることを確認します。各スタックインスタンスのステータスがになっていることを確認します。CURRENT

ステップ4: CloudFormationStackInstancesアクションを追加する

パイプラインで次のアクションを作成します。AWS CloudFormationStackSets を使用して残りスタックインスタンスです。

パイプラインで次のアクションを作成するには

  1. CodePipeline コンソール ()https://console.aws.amazon.com/codepipeline/

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

  2. パイプラインを編集することを選択します。パイプラインが編集モード。

  3. リポジトリの []デプロイステージ、[編集

  4. AWS CloudFormation スタックセットデプロイアクション、アクショングループの追加

  5. リポジトリの []アクションを編集ページで、アクションの詳細を追加します。

    1. Eclipse[Action name (アクション名)]に、アクションの名前を入力します。

    2. Eclipseアクションプロバイダ] で、AWS CloudFormation スタックインスタンス

    3. []入力アーティファクト] で、SourceArtifact

    4. Eclipseスタックセット名に、スタックセットの名前を入力します。これは、スタックセットの名前です。最初のアクションで提供されます。

    5. Eclipse展開ターゲットに、アカウントファイルをアップロードしたアーチファクト名とファイルパスを入力します。たとえば、デフォルトのソースアーティファクト名を使用して次のように入力します。SourceArtifact

      SourceArtifact::accounts.txt
    6. Eclipseデプロイターゲット AWS リージョン,残りのスタックインスタンスsまたはus-east-2およびeu-central-1以下を実行します。

      us-east2, eu-central-1
    7. Eclipse障害耐性のパーセンテージに」と入力します。20

    8. Eclipse最大同時実行数に」と入力します。25

    9. [Save] を選択します。

    10. 変更を手動で解除します。更新されたパイプラインが Deploy ステージに 2 つのアクションとともに表示されます。

ステップ5: デプロイメントのスタックセットリソースを表示する

スタックセットデプロイのリソースとステータスを表示できます。

リソースを表示するには

  1. CodePipeline コンソール ()https://console.aws.amazon.com/codepipeline/

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

  3. [AWS CloudFormationアクションをAWSCloudFormation スタック インスタンスアクションをパイプラインでアップロードします。スタックセットのテンプレート、リソース、イベントがAWS CloudFormationconsole.

  4. 左のナビゲーションパネルで、cフースStackSets。リストで、スタックセットを選択します。

  5. [スタックインスタンスタブ。指定した各アカウントの残りのすべてのスタックインスタンスが、予想されるリージョンで作成または更新されたことを確認します。各スタックインスタンスのステータスがになっていることを確認します。CURRENT

ステップ 6: スタックセットを更新する

スタックセットを更新し、インスタンスに更新をデプロイします。この例では、更新用に指定するデプロイメントターゲットにも変更を加えます。更新に含まれていないインスタンスは、古いステータスに移行します。

  1. CodePipeline コンソール ()https://console.aws.amazon.com/codepipeline/

  2. []パイプラインで、パイプラインを選択してから、編集。リポジトリの []デプロイステージ、[編集

  3. 編集することを選択します。AWS CloudFormation スタックセットアクションをパイプラインでアップロードします。Eclipse説明で、既存の説明をスタックセットの新しい説明で上書きします。

  4. 編集することを選択します。AWS CloudFormation スタックインスタンスアクションをパイプラインでアップロードします。Eclipseデプロイターゲット AWS リージョンを削除するにはus-east-2アクションの作成時に入力された値。

  5. 変更を保存します。選択リリースの変更を使用してパイプラインを実行します。

  6. アクションを開きます。AWS CloudFormation。[StackSet 情報タブ。EclipseStackSet の説明で、新しい説明が表示されていることを確認します。

  7. [スタックインスタンスタブ。[]ステータスで、us-east-2 のスタックインスタンスのステータスがOUTDATED