ステージングディストリビューションと継続的デプロイポリシーを使用する - Amazon CloudFront

ステージングディストリビューションと継続的デプロイポリシーを使用する

ステージングディストリビューションと継続的デプロイポリシーは、CloudFront コンソール、AWS Command Line Interface (AWS CLI)、または CloudFront API で作成、更新、変更できます。

ステージングディストリビューションと継続的デプロイポリシーを作成する

次の手順では、ステージングディストリビューションと継続的デプロイポリシーを作成する方法を示します。

Console

AWS Management Console を使用して、ステージングディストリビューションと継続的デプロイポリシーを作成できます。

ステージングディストリビューションと継続的デプロイポリシーを作成するには (コンソール)
  1. AWS Management Consoleにサインインし、https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます。

  2. ナビゲーションペインで、[ディストリビューション] を選択します。

  3. プライマリディストリビューションとして使用するディストリビューションを選択します。プライマリーディストリビューションは、本番トラフィックを現在処理しているディストリビューションであり、これを元にしてステージングディストリビューションを作成します。

  4. [Continuous deployment] (継続的デプロイ) セクションで、[Create staging distribution] (ステージングディストリビューションを作成) を選択します。[Create staging distribution] (ステージングディストリビューションを作成) ウィザードが開きます。

  5. [Create staging distribution] (ステージングディストリビューションを作成) ウィザードで、以下の操作を行います。

    1. (オプション) ステージングディストリビューションの説明を入力します。

    2. [Next] (次へ) を選択します。

    3. ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。

      ステージングディストリビューションの設定の変更が完了したら、[Next] (次へ) を選択します。

    4. コンソールを使用して [Traffic configuration] (トラフィック設定) を指定します。これにより、CloudFront がトラフィックをステージングディストリビューションにルーティングする方法が決まります (CloudFront はトラフィック設定を継続的デプロイポリシー内に保存します)。

      [Traffic configuration] (トラフィック設定) のオプションの詳細については、「ステージングディストリビューションにリクエストをルーティングする」を参照してください。

      [Traffic configuration] (トラフィック設定) が完了したら、[Next] (次へ) を選択します。

    5. トラフィック設定を含む、ステージングディストリビューションの設定を確認したら、[Create staging distribution] (ステージングディストリビューションを作成) を選択します。

CloudFront コンソールで [Create staging distribution] (ステージングディストリビューションを作成) ウィザードを完了すると、CloudFront は以下を実行します。

  • ステップ 5c で指定した設定を使用して、ステージングディストリビューションを作成します。

  • ステップ 5d で指定したトラフィック設定を使用して、継続的デプロイポリシーを作成します。

  • ステージングディストリビューションの作成元のプライマリディストリビューションに継続的デプロイポリシーをアタッチします。

継続的デプロイポリシーをアタッチした、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront はトラフィック設定に基づいてトラフィックの指定された部分をステージングディストリビューションに送信し始めます。

CLI

ステージングディストリビューションと継続的デプロイポリシーを AWS CLI で作成するには、次の手順に従います。

ステージングディストリビューションを作成するには (CLI)
  1. aws cloudfront get-distribution コマンドと grep コマンドを一緒に使用して、プライマリディストリビューションとして使用するディストリビューションの ETag 値を取得します。プライマリーディストリビューションは、本番トラフィックを現在処理しているディストリビューションであり、これを元にしてステージングディストリビューションを作成します。

    次のコマンドでは、例を示しています。次の例では、primary_distribution_ID をプライマリディストリビューションの ID に置き換えます。

    aws cloudfront get-distribution --id primary_distribution_ID | grep 'ETag'

    ETag 値をコピーします (次のステップで必要になります)。

  2. aws cloudfront copy-distribution コマンドを使用してステージングディストリビューションを作成します。次のコマンド例では、読みやすくするためにエスケープ文字 (\) と改行を使用していますが、これらはコマンドから省略してください。次のコマンドの例で以下の操作を行います。

    • primary_distribution_ID をプライマリディストリビューションの ID に置き換えます。

    • primary_distribution_ETag をプライマリディストリビューションの ETag 値 (前のステップで取得したもの) に置き換えます。

    • (オプション) CLI_example を目的の発信者リファレンス ID に置き換えます。

    aws cloudfront copy-distribution --primary-distribution-id primary_distribution_ID \ --if-match primary_distribution_ETag \ --staging \ --caller-reference 'CLI_example'

    コマンドの出力に、ステージングディストリビューションとその設定に関する情報が表示されます。ステージングディストリビューションの CloudFront ドメイン名をコピーします (次のステップで必要になります)。

継続的デプロイポリシーを作成するには (CLI および入力ファイル)
  1. 次のコマンドを使用して、continuous-deployment-policy.yaml コマンドのすべての入力パラメータを含む、create-continuous-deployment-policy という名前のファイルを作成します。次のコマンドでは、読みやすくするためにエスケープ文字 (\) と改行を使用していますが、これらはコマンドから省略してください。

    aws cloudfront create-continuous-deployment-policy --generate-cli-skeleton yaml-input \ > continuous-deployment-policy.yaml
  2. 先ほど作成した continuous-deployment-policy.yaml という名前のファイルを開きます。このファイルを編集して、必要な継続的デプロイポリシー設定を指定し、ファイルを保存します。ファイルは以下のように編集します。

    • StagingDistributionDnsNames セクションでの編集

      • Quantity の値を 1 に変更します。

      • Items に、ステージングディストリビューションの CloudFront ドメイン名 (前のステップで保存したもの) を貼り付けます。

    • TrafficConfig セクションでの編集

      • Type として、SingleWeight または SingleHeader を選択します。

      • 他のタイプの設定を削除します。例えば、重みベースのトラフィック設定が必要な場合は、TypeSingleWeight に設定し、SingleHeaderConfig 設定を削除します。

      • 重みベースのトラフィック設定を使用するには、Weight の値を .01 (1%) から .15 (15%) までの 10 進数に設定します。

      TrafficConfig のオプションの詳細については、「ステージングディストリビューションにリクエストをルーティングする」および「重みベースの設定におけるセッションの維持」を参照してください。

  3. 次のコマンドで continuous-deployment-policy.yaml ファイルの入力パラメータを使用し、継続的デプロイポリシーを作成します。

    aws cloudfront create-continuous-deployment-policy --cli-input-yaml file://continuous-deployment-policy.yaml

    コマンドの出力の Id 値をコピーします。これは継続的デプロイポリシー ID で、次のステップで必要になります。

継続的デプロイポリシーをプライマリディストリビューションにアタッチするには (CLI および入力ファイル)
  1. 次のコマンドを使用して、プライマリディストリビューションの設定を primary-distribution.yaml という名前のファイルに保存します。primary_distribution_ID をプライマリディストリビューションの ID に置き換えます。

    aws cloudfront get-distribution-config --id primary_distribution_ID --output yaml > primary-distribution.yaml
  2. 先ほど作成した primary-distribution.yaml という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。

    • 継続的デプロイポリシー ID (前のステップでコピーしたもの) を ContinuousDeploymentPolicyId フィールドに貼り付けます。

    • ETag フィールドの名前を IfMatch に変更します。ただし、フィールドの値は変更しないでください。

    完了したら、ファイルを保存します。

  3. 次のコマンドを使用して、継続的デプロイポリシーを使用するようにプライマリディストリビューションを更新します。primary_distribution_ID をプライマリディストリビューションの ID に置き換えます。

    aws cloudfront update-distribution --id primary_distribution_ID --cli-input-yaml file://primary-distribution.yaml

継続的デプロイポリシーをアタッチした、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront はトラフィック設定に基づいてトラフィックの指定された部分をステージングディストリビューションに送信し始めます。

API

CloudFront API を使用してステージングポリシーと継続的デプロイポリシーを作成するには、以下の API オペレーションを使用します。

これらの API コールで指定するフィールドの詳細については、以下を参照してください。

ステージングディストリビューションと継続的デプロイポリシーを作成したら、プライマリディストリビューションで UpdateDistribution を使用して、継続的デプロイポリシーをプライマリディストリビューションにアタッチします。

ステージングディストリビューションを更新する

次の手順では、ステージングディストリビューションと継続的デプロイポリシーを更新する方法を示します。

Console

プライマリディストリビューションとステージングディストリビューションの両方で特定の設定を更新できます。詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。

ステージングディストリビューションを更新するには (コンソール)
  1. https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます。

  2. ナビゲーションペインで、[ディストリビューション] を選択します。

  3. プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。

  4. [View staging distribution] (ステージングディストリビューションを表示) を選択します。

  5. コンソールを使用して、ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。

ステージングディストリビューションの設定をエッジロケーションにデプロイするとすぐに、ステージングディストリビューションにルーティングされた受信トラフィックに設定が適用されます。

CLI
ステージングディストリビューションを更新するには (CLI および入力ファイル)
  1. 次のコマンドを使用して、ステージングディストリビューションの設定を staging-distribution.yaml という名前のファイルに保存します。staging_distribution_ID をステージングディストリビューションの ID に置き換えます。

    aws cloudfront get-distribution-config --id staging_distribution_ID --output yaml > staging-distribution.yaml
  2. 先ほど作成した staging-distribution.yaml という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。

    完了したら、ファイルを保存します。

  3. 次のコマンドを使用して、ステージングディストリビューションの設定を更新します。staging_distribution_ID をステージングディストリビューションの ID に置き換えます。

    aws cloudfront update-distribution --id staging_distribution_ID --cli-input-yaml file://staging-distribution.yaml

ステージングディストリビューションの設定をエッジロケーションにデプロイするとすぐに、ステージングディストリビューションにルーティングされた受信トラフィックに設定が適用されます。

API

ステージングディストリビューションの設定を更新するには、ステージングディストリビューションで UpdateDistribution を使用して、ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。

継続的デプロイポリシーを更新する

次の手順では、継続的デプロイポリシーを更新する方法を示します。

Console

継続的デプロイポリシーを更新することで、ディストリビューションのトラフィック設定を更新できます。

継続的デプロイポリシーを更新するには (コンソール)
  1. https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます。

  2. ナビゲーションペインで、[ディストリビューション] を選択します。

  3. プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。

  4. [Continuous deployment] (継続的デプロイ) セクションで、[Edit policy] (ポリシーの編集) を選択します。

  5. 継続的デプロイポリシーのトラフィック設定を変更します。完了したら、[変更を保存] を選択します。

継続的デプロイポリシーを更新した、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront は更新したトラフィック設定に基づいてステージングディストリビューションにトラフィックを送信し始めます。

CLI
継続的デプロイポリシーを更新するには (CLI および入力ファイル)
  1. 次のコマンドを使用して、継続的デプロイポリシーの設定を continuous-deployment-policy.yaml という名前のファイルに保存します。continuous_deployment_policy_ID を継続的デプロイポリシーの ID に置き換えます。次のコマンドでは、読みやすくするためにエスケープ文字 (\) と改行を使用していますが、これらはコマンドから省略してください。

    aws cloudfront get-continuous-deployment-policy-config --id continuous_deployment_policy_ID \ --output yaml > continuous-deployment-policy.yaml
  2. 先ほど作成した continuous-deployment-policy.yaml という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。

    完了したら、ファイルを保存します。

  3. 次のコマンドを使用して、継続的デプロイポリシーを更新します。continuous_deployment_policy_ID を継続的デプロイポリシーの ID に置き換えます。次のコマンドでは、読みやすくするためにエスケープ文字 (\) と改行を使用していますが、これらはコマンドから省略してください。

    aws cloudfront update-continuous-deployment-policy --id continuous_deployment_policy_ID \ --cli-input-yaml file://continuous-deployment-policy.yaml

継続的デプロイポリシーを更新した、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront は更新したトラフィック設定に基づいてステージングディストリビューションにトラフィックを送信し始めます。

API

継続的デプロイポリシーを更新するには、UpdateContinuousDeploymentPolicy を使用します。

ステージングディストリビューション設定を昇格させる

次の手順では、ステージングディストリビューション設定を昇格させる方法を示します。

Console

ステージングディストリビューションを昇格させると、CloudFront はステージングディストリビューションからプライマリディストリビューションに設定をコピーします。また、CloudFront は継続的デプロイポリシーを無効にし、すべてのトラフィックをプライマリディストリビューションにルーティングします。

設定を昇格させると、設定の変更を次回テストするときに、同じステージングディストリビューションを再利用できます。

ステージングディストリビューションの設定を昇格させるには (コンソール)
  1. https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます。

  2. ナビゲーションペインで、[ディストリビューション] を選択します。

  3. プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。

  4. [Continuous deployment] (継続的デプロイ) セクションで、[Promote] (昇格) を選択します。

  5. confirm」と入力して [Promote] (昇格) を選択します。

CLI

ステージングディストリビューションを昇格させると、CloudFront はステージングディストリビューションからプライマリディストリビューションに設定をコピーします。また、CloudFront は継続的デプロイポリシーを無効にし、すべてのトラフィックをプライマリディストリビューションにルーティングします。

設定を昇格させると、設定の変更を次回テストするときに、同じステージングディストリビューションを再利用できます。

ステージングディストリビューションの設定を昇格させるには (CLI)
  • aws cloudfront update-distribution-with-staging-config コマンドを使用して、ステージングディストリビューションの設定をプライマリディストリビューションに昇格させます。次のコマンド例では、読みやすくするためにエスケープ文字 (\) と改行を使用していますが、これらはコマンドから省略してください。次のコマンドの例で以下の操作を行います。

    • primary_distribution_ID をプライマリディストリビューションの ID に置き換えます。

    • staging_distribution_ID をステージングディストリビューションの ID に置き換えます。

    • primary_distribution_ETagstaging_distribution_ETag をプライマリディストリビューションとステージングディストリビューションの ETag 値に置き換えます。例に示すように、プライマリディストリビューションの値が最初になっていることを確認します。

    aws cloudfront update-distribution-with-staging-config --id primary_distribution_ID \ --staging-distribution-id staging_distribution_ID \ --if-match 'primary_distribution_ETag,staging_distribution_ETag'
API

ステージングディストリビューションの設定をプライマリディストリビューションに昇格させるには、UpdateDistributionWithStagingConfig を使用します。