メニュー
Amazon Route 53
開発者ガイド (API Version 2013-04-01)

Amazon Route 53 のフェイルオーバー (アクティブ/アクティブとアクティブ/パッシブ) の設定オプション

Amazon Route 53 は、その各種レコードを組み合わせて、さまざまな方法でフェイルオーバーを設定できます。以降のセクションでは、アクティブ/アクティブとアクティブ/パッシブの単純なフェイルオーバーの設定方法を簡単に説明します。より大きなツリーで各種レコードを組み合わせれば、もっと複雑な構成を作成することもできます。詳細については、「複雑な Amazon Route 53 構成におけるヘルスチェックの動作」を参照してください。

Amazon Route 53 の加重レコードおよび加重エイリアスレコードを使用してアクティブ/アクティブまたはアクティブ/パッシブのフェイルオーバーを構成する

加重レコードのグループ内のすべてのレコードにヘルスチェックを追加し、すべてのレコードにゼロ以外の重みを割り当てた場合、Amazon Route 53 の動作は、アクティブ/アクティブのフェイルオーバー構成となります。DNS クエリへの応答としては、異常がなければすべてのリソースが候補となります。

正常なレコードを Amazon Route 53 が選択するときの動作を以下に示します。

  1. Amazon Route 53 が加重レコードを選択します。選択には、同じ名前とタイプのレコードに割り当てられた重みが考慮されます。

  2. レコードに関連付けられたヘルスチェックの最新のステータスを Amazon Route 53 がチェックします。 (Amazon Route 53 は、ヘルスチェックで指定されたエンドポイントの正常性を定期的にチェックします。DNS クエリが到着した時点でヘルスチェックを実行するわけではありません。)

  3. ヘルスチェックのエンドポイントが正常であれば、Amazon Route 53 そのレコードから得た値 (IP アドレスなど) でクエリに応答します。

    ヘルスチェックのエンドポイントが正常でない場合は、別の加重レコードを選択し、同じプロセスを実行します。ヘルスチェックのエンドポイントが正常であるレコードが見つかるまで、これが繰り返されます。

加重レコードのグループ内のすべてのレコードにヘルスチェックを追加する一方で、一部のレコードにのみゼロ以外の重みを割り当て、それ以外は重みをゼロとした場合、Amazon Route 53 の動作は、アクティブ/パッシブのフェイルオーバー構成となります。(アクティブ/パッシブのフェイルオーバー構成が必要な場合、フェイルオーバーレコードの使用をお勧めします。詳細については、「Amazon Route 53 のフェイルオーバーレコードおよびフェイルオーバーエイリアスレコードを使用してアクティブ/パッシブフェイルオーバーを構成する」を参照してください。) この構成でのヘルスチェックは、アクティブ/アクティブ構成のとき (すべてのレコードの重みをゼロ以外にしたとき) と同じように動作しますが、次の例外があります。

  • Amazon Route 53 は最初、ゼロ以外の加重レコード (存在する場合) のみを考慮に入れます。

  • 重みが 0 より大きいレコードがいずれも異常であった場合、Amazon Route 53 重みがゼロである加重レコードが考慮されます。

加重レコードのグループ内のレコードにヘルスチェックが関連付けられていない場合、Amazon Route 53 はそのレコードを常に正常と見なします。クエリへの応答の候補には、そのレコードが常に含まれます。

加重レコードのグループ内に正常なレコードが 1 つも存在しなかった場合、Amazon Route 53 は、DNS クエリへの応答として何かを返す必要がありますが、レコードの優劣を選択するための判断材料がありません。この状況では、Amazon Route 53 グループに含まれるすべてのレコードが正常と見なされ、割り当てられている重みに基づいて、いずれかが選択されます。このとき、重みが 0 であるレコードは候補から外されます。

加重エイリアスレコードを使用して、アクティブ/アクティブまたはアクティブ/パッシブのフェイルオーバーを構成することもできます。重みの働きは、加重レコードの場合と同じですが、加重エイリアスレコードの正常性は、エイリアスターゲットの正常性に依存します。たとえば、加重エイリアスレコードのエイリアスターゲットが、一連の加重レコードから成るグループであり、そのグループの加重レコードの重みがいずれもゼロ以外であるとします。正常な加重レコードが 1 つでもあれば、Amazon Route 53 は、その加重エイリアスレコードを正常と見なします。正常な加重レコードがない場合、Amazon Route 53 は、その加重エイリアスレコードを異常と見なします。少なくとも 1 つの加重レコードが正常に戻るまで、Amazon Route 53 は、そのツリーのブランチのレコードを候補から除外します。

加重レコードの詳細については、「加重ルーティング」を参照してください。

Amazon Route 53 のレイテンシーレコードおよびレイテンシーエイリアスレコードを使用してアクティブ/アクティブフェイルオーバーを構成する

レイテンシーレコードのグループ内のすべてのレコードにヘルスチェックを追加した場合、Amazon Route 53 の動作は、アクティブ/アクティブフェイルオーバー構成となります。

DNS クエリへの応答に使用するレコードを Amazon Route 53 が選択する際は、レコードの正常性とレイテンシーが考慮されます。

  1. Amazon Route 53 は、リソースが置かれている Amazon EC2 リージョンとエンドユーザー間のレイテンシーに基づいてレイテンシーレコードを選択します。

  2. レコードに関連付けられたヘルスチェックの最新のステータスを Amazon Route 53 がチェックします。 (Amazon Route 53 は、ヘルスチェックで指定されたエンドポイントの正常性を定期的にチェックします。DNS クエリが到着した時点でヘルスチェックを実行するわけではありません。)

  3. ヘルスチェックのエンドポイントが正常であれば、Amazon Route 53 そのレコードから得た値 (IP アドレスなど) でクエリに応答します。

    ヘルスチェックのエンドポイントが正常でない場合は、Amazon Route 53 次善のレイテンシーを持つレイテンシーレコードを選択し、同じプロセスを実行します。ヘルスチェックのエンドポイントが正常であるレコードが見つかるまで、これが繰り返されます。

レイテンシーレコードのグループ内のレコードにヘルスチェックが関連付けられていない場合、Amazon Route 53 はそのレコードを常に正常と見なします。クエリへの応答の候補には、そのレコードが常に含まれます。

レイテンシーレコードのグループ内に正常なレコードが 1 つも存在しなかった場合、Amazon Route 53 は、DNS クエリへの応答として何かを返す必要がありますが、レコードの優劣を選択するための判断材料がありません。この状況では、Amazon Route 53 によってそれらすべてのレコードが正常と見なされ、エンドユーザーと各リージョンとの間のレイテンシーに基づいてレコードが選択されます。

レイテンシーエイリアスレコードを使用して、アクティブ/アクティブフェイルオーバーを構成することもできます。すべてのレイテンシーエイリアスレコードで [Evaluate Target Health] を true に設定した場合、レイテンシーエイリアスレコードの正常性は、エイリアスターゲットの正常性に依存します。たとえば、レイテンシーエイリアスレコードのエイリアスターゲットが、一連の加重レコードから成るグループであり、そのグループの加重レコードの重みがいずれもゼロ以外であるとします。正常な加重レコードが 1 つでもあれば、Amazon Route 53 は、そのレイテンシーエイリアスレコードを正常と見なします。正常な加重レコードがない場合、Amazon Route 53 は、そのレイテンシーエイリアスレコードを異常と見なします。少なくとも 1 つの加重レコードが正常に戻るまで、Amazon Route 53 は、そのリージョン (そのツリーのブランチ) のレコードを候補から除外します。この構成の詳細な説明については、「複雑な Amazon Route 53 構成におけるヘルスチェックの動作」を参照してください。

レイテンシーレコードの詳細については、「レイテンシーに基づくルーティング」を参照してください。

Amazon Route 53 のフェイルオーバーレコードおよびフェイルオーバーエイリアスレコードを使用してアクティブ/パッシブフェイルオーバーを構成する

フェイルオーバーレコードを使用してアクティブ/パッシブフェイルオーバー構成を作成することができます。名前とタイプが同じプライマリフェイルオーバーレコードとセカンダリフェイルオーバーレコードを作成し、それぞれにヘルスチェックを関連付けます。プライマリフェイルオーバーレコードとセカンダリフェイルオーバーレコードの参照先は、ウェブサイトとして設定されている Amazon S3 バケットから、複雑なレコードのツリーまで、何でも構いません。プライマリフェイルオーバーレコードによって参照されたすべてのリソースで異常が生じると、Amazon Route 53 クエリへの応答に使用されるリソースが、セカンダリフェイルオーバーレコードによって参照されたリソースへと自動的に切り替わります。

たとえば、example.com 用に一対のフェイルオーバーレコードを作成するとします。設定が完了すると、Amazon Route 53 は、プライマリレコードとセカンダリレコードに関連付けられたエンドポイントの正常性に基づいて、example.com のクエリに応答します。プライマリフェイルオーバーレコードとセカンダリフェイルオーバーレコードの両方にヘルスチェックが関連付けられている場合、Amazon Route 53 は、リクエストに対して次のように応答します。

  • Amazon Route 53 プライマリレコードが正常 (ヘルスチェックのエンドポイントが正常) であると判断した場合、Amazon Route 53 は、DNS クエリへの応答としてプライマリレコードのみを返します。

  • Amazon Route 53 がプライマリレコードが異常でありセカンダリレコードが正常であると判断した場合、Amazon Route 53 は、セカンダリレコードを返します。

  • Amazon Route 53 プライマリレコードとセカンダリレコードの両方が異常であると判断した場合、Amazon Route 53 は、プライマリレコードを返します。

セカンダリレコードを設定する際、ヘルスチェックを追加するかどうかは任意です。セカンダリのヘルスチェックが省略されているとき、プライマリレコードのヘルスチェックエンドポイントが異常だった場合、Amazon Route 53 は常に、セカンダリレコードで DNS クエリに応答します。セカンダリが異常であったとしても同様です。セカンダリレコードにヘルスチェックが存在しない場合、関連付けられているリソースが異常であることを Amazon Route 53 が認識せず、そのリソースは常に正常であると見なされます。

フェイルオーバーレコードは、リソースが 2 つ存在するとき、特定のリソースが稼働している限り、その単一リソースですべてのリクエストを処理する場合に使用します。たとえば、Amazon EC2 サーバーで実行される 2 つの HTTP サーバーがそれぞれ異なるリージョンに存在するとき、米国西部 (オレゴン) リージョンにある HTTP サーバーが正常であれば、その IP アドレスでクエリに応答するよう Amazon Route 53 を設定するとします。この場合、そのサーバーをプライマリフェイルオーバーレコードに指定し、セカンダリフェイルオーバーレコードには 米国西部 (北カリフォルニア) リージョンのサーバーを指定します。

フェイルオーバーエイリアスレコードは、レコードのグループが 2 つ (加重レコードのグループ、レイテンシーレコードのグループなど) あるとき、プライマリグループのリソースが 1 つでも稼働していれば、プライマリグループのリソースを使用してクエリに応答するよう Amazon Route 53 を設定する場合に使用します。プライマリグループ内のすべてのリソースがヘルスチェックで不合格となった場合、Amazon Route 53 クエリへの応答が、セカンダリグループ内のリソースに切り替わります。

フェイルオーバーレコードとフェイルオーバーエイリアスレコードを組み合わせることもできます。プライマリレコードとセカンダリレコードのどちらでも、フェイルオーバーエイリアスレコードにすることができます。たとえば、単一の HTTP サーバーに対してフェイルオーバーレコードを作成し、ウェブサイトとして設定された Amazon S3 バケットに対してフェイルオーバーエイリアスレコードを作成することも可能です (ただし、この構成では、ウェブサイトが利用できないというメッセージが Amazon S3 バケットで表示されるだけです)。

フェイルオーバーレコードおよびフェイルオーバーエイリアスレコードは、Amazon Route 53 コンソールまたは Amazon Route 53 API を使用して作成できます。コンソールの使用については、「Amazon Route 53 コンソールを使用したリソースレコードセットの作成」を参照してください。Amazon Route 53 API の使用については、『Amazon Route 53 API Reference』の「 ChangeResourceRecordSets」を参照してください。