

# 継続的デプロイの仕組みについて説明します。
<a name="understanding-continuous-deployment"></a>

以下のトピックでは、CloudFront の継続的デプロイの仕組みについて説明します。

**Topics**
+ [ステージングディストリビューションにリクエストをルーティングする](#understanding-continuous-deployment-routing)
+ [重みベースの設定におけるセッションの維持](#understanding-continuous-deployment-sessions)
+ [プライマリーディストリビューションとステージングディストリビューションを更新する](#updating-staging-and-primary-distributions)
+ [プライマリディストリビューションとステージングディストリビューションはキャッシュを共有しない](#staging-and-primary-no-shared-cache)

## ステージングディストリビューションにリクエストをルーティングする
<a name="understanding-continuous-deployment-routing"></a>

CloudFront の継続的デプロイを使用する場合、ビューワーリクエストについては何も変更する必要がありません。ビューワーは、DNS 名、IP アドレス、または CNAME を使用してステージングディストリビューションにリクエストを直接送信することはできません。代わりに、ビューワーはプライマリ (本番稼働) ディストリビューションにリクエストを送信します。CloudFront は、継続的デプロイポリシーのトラフィック設定に基づいて、これらのリクエストの一部をステージングディストリビューションにルーティングします。トラフィック設定には次の 2 つの種類があります。

**重みベース**  
重みベースの設定では、ビューワーリクエストの指定された割合をステージングディストリビューションにルーティングします。重みベースの設定を使用する場合、*セッションの維持*を有効にすることもできます。これにより、CloudFront は同じビューワーからのリクエストを 1 つのセッションの一部として処理できるようになります。詳細については、「[重みベースの設定におけるセッションの維持](#understanding-continuous-deployment-sessions)」を参照してください。

**ヘッダーベース**  
ビューワーリクエストに特定の HTTP ヘッダーが含まれている (ヘッダーと値が指定されている) 場合、ヘッダーベースの設定は、リクエストをステージングディストリビューションにルーティングします。ヘッダーと値が指定されていないリクエストは、プライマリディストリビューションにルーティングされます。この設定は、ローカルでテストする場合や、ビューワーリクエストが制御可能である場合に便利です。  
ステージングディストリビューションにルーティングするヘッダーには、プレフィックス `aws-cf-cd-` が含まれている必要があります。

## 重みベースの設定におけるセッションの維持
<a name="understanding-continuous-deployment-sessions"></a>

重みベースの設定を使用してトラフィックをステージングディストリビューションにルーティングする場合、*セッションの維持*を有効にすることもできます。これにより、CloudFront は同じビューワーからのリクエストを 1 つのセッションの一部として処理できるようになります。セッションの維持を有効にすると、CloudFront は Cookie を設定して、1 つのセッション内における同じビューワーからのすべてのリクエストを 1 つのディストリビューション (プライマリまたはステージング) で処理します。

セッションの維持を有効にするときに、*アイドル期間*を指定することもできます。ビューワーのアイドル (リクエストを送信しない) 状態がこの期間を超えると、セッションは期限切れになり、CloudFront はこのビューワーからの以降のリクエストを新しいセッションとして扱います。アイドル期間は 300 (5 分) から 3,600 (1 時間) までの秒数で指定します。

以下の場合、CloudFront はすべてのセッション (アクティブなセッションも含む) をリセットし、すべてのリクエストを新しいセッションと見なします。
+ 継続的デプロイポリシーを無効または有効にする。
+ セッションの維持の設定を無効または有効にする。

## プライマリーディストリビューションとステージングディストリビューションを更新する
<a name="updating-staging-and-primary-distributions"></a>

プライマリディストリビューションに継続的デプロイポリシーがアタッチされている場合、プライマリーディストリビューションとステージングディストリビューションの両方で、以下の設定の変更が可能です。
+ すべてのキャッシュ動作設定 (デフォルトのキャッシュ動作を含む)
+ すべてのオリジン設定 (オリジンとオリジングループ)
+ カスタムエラーレスポンス (エラーページ)
+ 地理的制限
+ デフォルトのルートオブジェクト
+ ログ記録の設定
+ 説明 (コメント)

ディストリビューションの設定で参照される外部リソース (キャッシュポリシー、レスポンスヘッダーポリシー、CloudFront 関数、Lambda@Edge 関数など) を更新することもできます。

## プライマリディストリビューションとステージングディストリビューションはキャッシュを共有しない
<a name="staging-and-primary-no-shared-cache"></a>

プライマリディストリビューションとステージングディストリビューションはキャッシュを共有しません。CloudFront が最初のリクエストをステージングディストリビューションに送信するまで、キャッシュは空です。リクエストがステージングディストリビューションに到着すると、レスポンスのキャッシュが開始されます (そのように設定している場合)。