ステージングディストリビューションと継続的デプロイポリシーを使用する
ステージングディストリビューションと継続的デプロイポリシーは、CloudFront コンソール、AWS Command Line Interface (AWS CLI)、または CloudFront API で作成、更新、変更できます。
ステージングディストリビューションと継続的デプロイポリシーを作成する
次の手順では、ステージングディストリビューションと継続的デプロイポリシーを作成する方法を示します。
- Console
-
AWS Management Console を使用して、ステージングディストリビューションと継続的デプロイポリシーを作成できます。
ステージングディストリビューションと継続的デプロイポリシーを作成するには (コンソール)
AWS Management Consoleにサインインし、https://console.aws.amazon.com/cloudfront/v4/home
で CloudFront コンソールを開きます。 -
ナビゲーションペインで、[ディストリビューション] を選択します。
-
プライマリディストリビューションとして使用するディストリビューションを選択します。プライマリーディストリビューションは、本番トラフィックを現在処理しているディストリビューションであり、これを元にしてステージングディストリビューションを作成します。
-
[Continuous deployment] (継続的デプロイ) セクションで、[Create staging distribution] (ステージングディストリビューションを作成) を選択します。[Create staging distribution] (ステージングディストリビューションを作成) ウィザードが開きます。
-
[Create staging distribution] (ステージングディストリビューションを作成) ウィザードで、以下の操作を行います。
-
(オプション) ステージングディストリビューションの説明を入力します。
-
[Next] (次へ) を選択します。
-
ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。
ステージングディストリビューションの設定の変更が完了したら、[Next] (次へ) を選択します。
-
コンソールを使用して [Traffic configuration] (トラフィック設定) を指定します。これにより、CloudFront がトラフィックをステージングディストリビューションにルーティングする方法が決まります (CloudFront はトラフィック設定を継続的デプロイポリシー内に保存します)。
[Traffic configuration] (トラフィック設定) のオプションの詳細については、「ステージングディストリビューションにリクエストをルーティングする」を参照してください。
[Traffic configuration] (トラフィック設定) が完了したら、[Next] (次へ) を選択します。
-
トラフィック設定を含む、ステージングディストリビューションの設定を確認したら、[Create staging distribution] (ステージングディストリビューションを作成) を選択します。
-
CloudFront コンソールで [Create staging distribution] (ステージングディストリビューションを作成) ウィザードを完了すると、CloudFront は以下を実行します。
-
ステップ 5c で指定した設定を使用して、ステージングディストリビューションを作成します。
-
ステップ 5d で指定したトラフィック設定を使用して、継続的デプロイポリシーを作成します。
-
ステージングディストリビューションの作成元のプライマリディストリビューションに継続的デプロイポリシーをアタッチします。
継続的デプロイポリシーをアタッチした、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront はトラフィック設定に基づいてトラフィックの指定された部分をステージングディストリビューションに送信し始めます。
- CLI
-
ステージングディストリビューションと継続的デプロイポリシーを AWS CLI で作成するには、次の手順に従います。
ステージングディストリビューションを作成するには (CLI)
-
aws cloudfront get-distribution コマンドと grep コマンドを一緒に使用して、プライマリディストリビューションとして使用するディストリビューションの
ETag
値を取得します。プライマリーディストリビューションは、本番トラフィックを現在処理しているディストリビューションであり、これを元にしてステージングディストリビューションを作成します。次のコマンドでは、例を示しています。次の例では、
primary_distribution_ID
をプライマリディストリビューションの ID に置き換えます。aws cloudfront get-distribution --id
primary_distribution_ID
| grep 'ETag'ETag
値をコピーします (次のステップで必要になります)。 -
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-matchprimary_distribution_ETag
\ --staging \ --caller-reference 'CLI_example
'コマンドの出力に、ステージングディストリビューションとその設定に関する情報が表示されます。ステージングディストリビューションの CloudFront ドメイン名をコピーします (次のステップで必要になります)。
-
継続的デプロイポリシーを作成するには (CLI および入力ファイル)
-
次のコマンドを使用して、
continuous-deployment-policy.yaml
コマンドのすべての入力パラメータを含む、create-continuous-deployment-policy という名前のファイルを作成します。次のコマンドでは、読みやすくするためにエスケープ文字 (\) と改行を使用していますが、これらはコマンドから省略してください。aws cloudfront create-continuous-deployment-policy --generate-cli-skeleton yaml-input \ > continuous-deployment-policy.yaml
-
先ほど作成した
continuous-deployment-policy.yaml
という名前のファイルを開きます。このファイルを編集して、必要な継続的デプロイポリシー設定を指定し、ファイルを保存します。ファイルは以下のように編集します。-
StagingDistributionDnsNames
セクションでの編集-
Quantity
の値を1
に変更します。 -
Items
に、ステージングディストリビューションの CloudFront ドメイン名 (前のステップで保存したもの) を貼り付けます。
-
-
TrafficConfig
セクションでの編集-
Type
として、SingleWeight
またはSingleHeader
を選択します。 -
他のタイプの設定を削除します。例えば、重みベースのトラフィック設定が必要な場合は、
Type
をSingleWeight
に設定し、SingleHeaderConfig
設定を削除します。 -
重みベースのトラフィック設定を使用するには、
Weight
の値を.01
(1%) から.15
(15%) までの 10 進数に設定します。
TrafficConfig
のオプションの詳細については、「ステージングディストリビューションにリクエストをルーティングする」および「重みベースの設定におけるセッションの維持」を参照してください。 -
-
-
次のコマンドで
continuous-deployment-policy.yaml
ファイルの入力パラメータを使用し、継続的デプロイポリシーを作成します。aws cloudfront create-continuous-deployment-policy --cli-input-yaml file://continuous-deployment-policy.yaml
コマンドの出力の
Id
値をコピーします。これは継続的デプロイポリシー ID で、次のステップで必要になります。
継続的デプロイポリシーをプライマリディストリビューションにアタッチするには (CLI および入力ファイル)
-
次のコマンドを使用して、プライマリディストリビューションの設定を
primary-distribution.yaml
という名前のファイルに保存します。primary_distribution_ID
をプライマリディストリビューションの ID に置き換えます。aws cloudfront get-distribution-config --id
primary_distribution_ID
--output yaml > primary-distribution.yaml -
先ほど作成した
primary-distribution.yaml
という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。-
継続的デプロイポリシー ID (前のステップでコピーしたもの) を
ContinuousDeploymentPolicyId
フィールドに貼り付けます。 -
ETag
フィールドの名前をIfMatch
に変更します。ただし、フィールドの値は変更しないでください。
完了したら、ファイルを保存します。
-
-
次のコマンドを使用して、継続的デプロイポリシーを使用するようにプライマリディストリビューションを更新します。
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 コールで指定するフィールドの詳細については、以下を参照してください。
-
AWS SDK またはその他の API クライアントの API リファレンスドキュメント
ステージングディストリビューションと継続的デプロイポリシーを作成したら、プライマリディストリビューションで UpdateDistribution を使用して、継続的デプロイポリシーをプライマリディストリビューションにアタッチします。
ステージングディストリビューションを更新する
次の手順では、ステージングディストリビューションと継続的デプロイポリシーを更新する方法を示します。
- Console
-
プライマリディストリビューションとステージングディストリビューションの両方で特定の設定を更新できます。詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。
ステージングディストリビューションを更新するには (コンソール)
https://console.aws.amazon.com/cloudfront/v4/home
で CloudFront コンソールを開きます。 -
ナビゲーションペインで、[ディストリビューション] を選択します。
-
プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。
-
[View staging distribution] (ステージングディストリビューションを表示) を選択します。
-
コンソールを使用して、ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。
ステージングディストリビューションの設定をエッジロケーションにデプロイするとすぐに、ステージングディストリビューションにルーティングされた受信トラフィックに設定が適用されます。
- CLI
-
ステージングディストリビューションを更新するには (CLI および入力ファイル)
-
次のコマンドを使用して、ステージングディストリビューションの設定を
staging-distribution.yaml
という名前のファイルに保存します。staging_distribution_ID
をステージングディストリビューションの ID に置き換えます。aws cloudfront get-distribution-config --id
staging_distribution_ID
--output yaml > staging-distribution.yaml -
先ほど作成した
staging-distribution.yaml
という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。-
ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。
-
ETag
フィールドの名前をIfMatch
に変更します。ただし、フィールドの値は変更しないでください。
完了したら、ファイルを保存します。
-
-
次のコマンドを使用して、ステージングディストリビューションの設定を更新します。
staging_distribution_ID
をステージングディストリビューションの ID に置き換えます。aws cloudfront update-distribution --id
staging_distribution_ID
--cli-input-yaml file://staging-distribution.yaml
ステージングディストリビューションの設定をエッジロケーションにデプロイするとすぐに、ステージングディストリビューションにルーティングされた受信トラフィックに設定が適用されます。
-
- API
-
ステージングディストリビューションの設定を更新するには、ステージングディストリビューションで UpdateDistribution を使用して、ステージングディストリビューションの設定を変更します。更新できる設定の詳細については、「プライマリーディストリビューションとステージングディストリビューションを更新する」を参照してください。
継続的デプロイポリシーを更新する
次の手順では、継続的デプロイポリシーを更新する方法を示します。
- Console
-
継続的デプロイポリシーを更新することで、ディストリビューションのトラフィック設定を更新できます。
継続的デプロイポリシーを更新するには (コンソール)
https://console.aws.amazon.com/cloudfront/v4/home
で CloudFront コンソールを開きます。 -
ナビゲーションペインで、[ディストリビューション] を選択します。
-
プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。
-
[Continuous deployment] (継続的デプロイ) セクションで、[Edit policy] (ポリシーの編集) を選択します。
-
継続的デプロイポリシーのトラフィック設定を変更します。完了したら、[変更を保存] を選択します。
継続的デプロイポリシーを更新した、プライマリディストリビューションの設定をエッジロケーションにデプロイすると、CloudFront は更新したトラフィック設定に基づいてステージングディストリビューションにトラフィックを送信し始めます。
- CLI
-
継続的デプロイポリシーを更新するには (CLI および入力ファイル)
-
次のコマンドを使用して、継続的デプロイポリシーの設定を
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 -
先ほど作成した
continuous-deployment-policy.yaml
という名前のファイルを開きます。ファイルを編集し、以下の変更を加えます。-
継続的デプロイポリシーの設定を必要に応じて変更します。例えば、トラフィック設定をヘッダーベースから重みベースに変更したり、重みベースの設定でトラフィックの割合 (重み) を変更したりできます。詳細については、「ステージングディストリビューションにリクエストをルーティングする」および「重みベースの設定におけるセッションの維持」を参照してください。
-
ETag
フィールドの名前をIfMatch
に変更します。ただし、フィールドの値は変更しないでください。
完了したら、ファイルを保存します。
-
-
次のコマンドを使用して、継続的デプロイポリシーを更新します。
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 は継続的デプロイポリシーを無効にし、すべてのトラフィックをプライマリディストリビューションにルーティングします。
設定を昇格させると、設定の変更を次回テストするときに、同じステージングディストリビューションを再利用できます。
ステージングディストリビューションの設定を昇格させるには (コンソール)
https://console.aws.amazon.com/cloudfront/v4/home
で CloudFront コンソールを開きます。 -
ナビゲーションペインで、[ディストリビューション] を選択します。
-
プライマリディストリビューションを選択します。これは、本番トラフィックを現在処理しているディストリビューションで、ステージングディストリビューションの作成元のディストリビューションです。
-
[Continuous deployment] (継続的デプロイ) セクションで、[Promote] (昇格) を選択します。
-
「
confirm
」と入力して [Promote] (昇格) を選択します。
- CLI
-
ステージングディストリビューションを昇格させると、CloudFront はステージングディストリビューションからプライマリディストリビューションに設定をコピーします。また、CloudFront は継続的デプロイポリシーを無効にし、すべてのトラフィックをプライマリディストリビューションにルーティングします。
設定を昇格させると、設定の変更を次回テストするときに、同じステージングディストリビューションを再利用できます。
ステージングディストリビューションの設定を昇格させるには (CLI)
-
aws cloudfront update-distribution-with-staging-config コマンドを使用して、ステージングディストリビューションの設定をプライマリディストリビューションに昇格させます。次のコマンド例では、読みやすくするためにエスケープ文字 (\) と改行を使用していますが、これらはコマンドから省略してください。次のコマンドの例で以下の操作を行います。
-
primary_distribution_ID
をプライマリディストリビューションの ID に置き換えます。 -
staging_distribution_ID
をステージングディストリビューションの ID に置き換えます。 -
primary_distribution_ETag
とstaging_distribution_ETag
をプライマリディストリビューションとステージングディストリビューションのETag
値に置き換えます。例に示すように、プライマリディストリビューションの値が最初になっていることを確認します。
aws cloudfront update-distribution-with-staging-config --id
primary_distribution_ID
\ --staging-distribution-idstaging_distribution_ID
\ --if-match 'primary_distribution_ETag
,staging_distribution_ETag
' -
-
- API
-
ステージングディストリビューションの設定をプライマリディストリビューションに昇格させるには、UpdateDistributionWithStagingConfig を使用します。