継続的デプロイの仕組みについて説明します。
以下のトピックでは、CloudFront の継続的デプロイの仕組みについて説明します。
トピック
ステージングディストリビューションにリクエストをルーティングする
CloudFront の継続的デプロイを使用する場合、ビューワーリクエストについては何も変更する必要がありません。ビューワーは、DNS 名、IP アドレス、または CNAME を使用してステージングディストリビューションにリクエストを直接送信することはできません。代わりに、ビューワーはプライマリ (本番稼働) ディストリビューションにリクエストを送信します。CloudFront は、継続的デプロイポリシーのトラフィック設定に基づいて、これらのリクエストの一部をステージングディストリビューションにルーティングします。トラフィック設定には次の 2 つの種類があります。
- 重みベース
-
重みベースの設定では、ビューワーリクエストの指定された割合をステージングディストリビューションにルーティングします。重みベースの設定を使用する場合、セッションの維持を有効にすることもできます。これにより、CloudFront は同じビューワーからのリクエストを 1 つのセッションの一部として処理できるようになります。詳細については、「重みベースの設定におけるセッションの維持」を参照してください。
- ヘッダーベース
-
ビューワーリクエストに特定の HTTP ヘッダーが含まれている (ヘッダーと値が指定されている) 場合、ヘッダーベースの設定は、リクエストをステージングディストリビューションにルーティングします。ヘッダーと値が指定されていないリクエストは、プライマリディストリビューションにルーティングされます。この設定は、ローカルでテストする場合や、ビューワーリクエストが制御可能である場合に便利です。
注記
ステージングディストリビューションにルーティングするヘッダーには、プレフィックス
aws-cf-cd-
が含まれている必要があります。
重みベースの設定におけるセッションの維持
重みベースの設定を使用してトラフィックをステージングディストリビューションにルーティングする場合、セッションの維持を有効にすることもできます。これにより、CloudFront は同じビューワーからのリクエストを 1 つのセッションの一部として処理できるようになります。セッションの維持を有効にすると、CloudFront は Cookie を設定して、1 つのセッション内における同じビューワーからのすべてのリクエストを 1 つのディストリビューション (プライマリまたはステージング) で処理します。
セッションの維持を有効にするときに、アイドル期間を指定することもできます。ビューワーのアイドル (リクエストを送信しない) 状態がこの期間を超えると、セッションは期限切れになり、CloudFront はこのビューワーからの以降のリクエストを新しいセッションとして扱います。アイドル期間は 300 (5 分) から 3,600 (1 時間) までの秒数で指定します。
以下の場合、CloudFront はすべてのセッション (アクティブなセッションも含む) をリセットし、すべてのリクエストを新しいセッションと見なします。
-
継続的デプロイポリシーを無効または有効にする。
-
セッションの維持の設定を無効または有効にする。
プライマリーディストリビューションとステージングディストリビューションを更新する
プライマリディストリビューションに継続的デプロイポリシーがアタッチされている場合、プライマリーディストリビューションとステージングディストリビューションの両方で、以下の設定の変更が可能です。
-
すべてのキャッシュ動作設定 (デフォルトのキャッシュ動作を含む)
-
すべてのオリジン設定 (オリジンとオリジングループ)
-
カスタムエラーレスポンス (エラーページ)
-
地理的制限
-
デフォルトのルートオブジェクト
-
ログ記録の設定
-
説明 (コメント)
ディストリビューションの設定で参照される外部リソース (キャッシュポリシー、レスポンスヘッダーポリシー、CloudFront 関数、Lambda@Edge 関数など) を更新することもできます。
プライマリディストリビューションとステージングディストリビューションはキャッシュを共有しない
プライマリディストリビューションとステージングディストリビューションはキャッシュを共有しません。CloudFront が最初のリクエストをステージングディストリビューションに送信するまで、キャッシュは空です。リクエストがステージングディストリビューションに到着すると、レスポンスのキャッシュが開始されます (そのように設定している場合)。