DNS フェイルオーバーで Route 53 のヘルスチェックを使用する方法を教えてください。

最終更新日: 2020 年 10 月 8 日

Amazon Route 53 ヘルスチェックを使用して DNS フェイルオーバーを設定するにはどうすればよいですか?

簡単な説明

Route 53 を使用してリソースの正常性を確認し、DNS クエリに対する応答として正常なリソースのみ返るようにすることができます。DNS フェイルオーバー設定には 3 つのタイプがあります。

  1. アクティブ/パッシブ: Route 53 はプライマリリソースをアクティブに返します。障害が発生した場合、Route 53 はバックアップリソースを返します。この方法は、フェールオーバーポリシーを使用して設定します。
  2. アクティブ/アクティブ: Route 53 は複数のリソースをアクティブに返します。障害が発生した場合、Route 53 は正常なリソースにフェイルバックします。この方法は、フェールオーバー以外のルーティングポリシーを使用して設定します。
  3. 組み合わせ: 複数のルーティングポリシー (例: レイテンシーベース、加重) を組み合わせて、より複雑な DNS フェイルオーバーを設定します。

解決方法

注意: Amazon CloudFront がプライマリターゲットである場合、以下の解決策は適用されません。

アクティブ/パッシブフェイルオーバー

アクティブ/パッシブの DNS フェイルオーバーは、1 つのプライマリリソースおよび 1 つのセカンダリリソースを使用する最もシンプルな方法です。

注意: 次に進む前に必ず、プライマリリソースの Route 53 ヘルスチェックを作成してください。

フェイルオーバーエイリアスレコードの値​を使用して、プライマリリソースおよびセカンダリリソースの 2 つのリソースレコードを作成します。レコードごとに、以下を実行します。

  1. [Name] に、リソースの名前 (例: resource.example.com) を入力します。
    注意: 両方のリソースに同じ名前を使用します。
  2. [Type] で、[A - IPv4 address] を選択します。
  3. [Alias] で、[Yes] を選択します。
  4. [Alias Target] に、プライマリリソースの DNS 名を入力します。[Alias Hosted Zone ID] が表示されます。
  5. [Routing Policy] では、[Failover] を選択します。
  6. プライマリレコードの [Failover Record Type] で [Primary] を選択します。[Set ID] ​に、一意の名前 (例: elb-Primary) を入力します。
  7. セカンダリレコードの [Failover Record Type] で [Secondary] を選択します。[Set ID] ​に、一意の名前 (例: elb-Secondary) を入力します。
  8. [Evaluate Target Health] で、プライマリレコードの [Yes] を選択します。セカンダリレコードで [No] を選択します。
  9. プライマリレコードの [Associate with Health Check] で [Yes] を選択します。[Health Check to Associate] で、プライマリリソース用に作成したヘルスチェックを選択します。
  10. [Create] を選択してレコードを作成します。

レコードで、ドメインがプライマリリソースに指定されるか、セカンダリリソースにフェイルオーバーされるようになりました。

アクティブ/アクティブフェイルオーバー

アクティブ/アクティブの DNS フェイルオーバーは、DNS クエリに複数のリソースを返します。正常でないリソースがあった場合、Route 53 は別のリソースにフェイルオーバーします。

注意: 次に進む前に必ず、両方のリソースの Route 53 ヘルスチェックを作成してください。

フェイルオーバーエイリアスレコードの値​を使用して、各リソースのレコードを作成します。レコードごとに、以下を実行します。

  1. [Name] に、リソースの名前 (例: resource.example.com) を入力します。
    注意: それぞれのリソースに同じ [Name] を使用します。
  2. レコードの [Type](A – IPv4 address など) を選択します。
    注意: リソースのすべてのレコードは、同じ [Type] である必要があります。
  3. [Alias] で、[Yes] を選択します。
  4. [Alias Target] に、リソースの DNS 名を入力します。[Alias Hosted Zone ID] が表示されます。
  5. [Routing Policy] を選択し、そのポリシーの適切な値 (例: Weighted policy であれば Weight) を入力します。[Set ID] ​に、このリソースの一意の名前 (例: Resource 1) を入力します。
    注意: 重み付けルーティングポリシーの場合、すべてのレコードを同じ重み (10 など) に設定します。または、すべてのレコードを異なる重みに設定します (20 と 10 など、20 レコードが 2 倍のトラフィックを受信します)。
  6. [Evaluate Target Health] で [Yes] を選択します。
  7. [Associate with Health Check] で [Yes] を選択します。
  8. [Health Check to Associate] で、このリソース用に作成したヘルスチェックを選択します。
  9. [Create] を選択してレコードを作成します。

組み合わせのフェイルオーバー

複数のルーティングポリシーとヘルスチェックを組み合わせて、複雑なフェールオーバーメカニズムを作成することができます。こうしたメカニズムにより、Route 53 は適切なレコードを返す前に、複数のレコード層を通過します。

たとえば、エンドポイントが 3 つあるとします。エンドポイント A とエンドポイント B の間のトラフィックをロードバランシングし、最初の 2 つのヘルスチェックが失敗したときにエンドポイント C にフォールバックすることができます。この設定では、2 つのルーティング層があります。下のルーティング層では、Route 53 はレコードのヘルスチェックを使用して、エンドポイント A と B が正常であることを確認します。次に、トラフィックは両方のプライマリリソース間で均等にルーティングされます。エンドポイント A と B でヘルスチェックに失敗した場合、トラフィックは上位ルーティング層にフェイルオーバーされます。上位ルーティング層では、Route 53 はセカンダリフォールバックリソースであるエンドポイント C にトラフィックをルーティングします。この設定を次のように作成します。

  1. 3 つのすべてのエンドポイントの Route 53 ヘルスチェックを作成し、ヘルスチェックレコードに関連付けます。
  2. 下位のルーティング層では、エンドポイント A と B のドメイン名に同じ重みを持つ 2 つの重み付きレコードを作成します。
    重要: エンドポイント A とエンドポイント B のヘルスチェックを必ず加重レコードに関連付けてください。このステップでは、Route 53 が各レコードのヘルスチェックステータスを決定し、それに応じてトラフィック間の負荷分散を行います。
  3. 上位のルーティング層で、エンドポイント C のドメイン名 (例: domain.example.com) のフェイルオーバーレコードを作成します。
    重要: プライマリレコードが、ステップ 2 で作成した resource.example.com のレコードに指定されるエイリアスレコードであることを必ず確認してください。また、セカンダリレコードがフェイルオーバーリソースとしてエンドポイント C に指定されていることも確認してください。
  4. Route 53 を設定して、プライマリフェイルオーバーレコードの正常性ステータスを確認します。カスタムヘルスチェックを作成して、2 つの加重レコードのヘルスステータスを判断します (計算されたヘルスチェックなど)。または、レコードオプションを使用して、ターゲットの正常性を評価します。

このフェイルオーバー設定は次のように機能します。

  1. クライアントより domain.example.com がリクエストされます。
  2. プライマリレコードがヘルスチェックを通過すると、Route 53 は、resource.example.com の負荷分散されたプライマリリソースレコードにトラフィックを送信します。これにより、クライアントはエンドポイント A またはエンドポイント B に指定されます。
  3. プライマリレコードがヘルスチェックに失敗した場合 (エンドポイント A と B がヘルスチェックに失敗した場合)、プライマリレコードは異常としてマークされます。プライマリレコードはセカンダリレコードにフェールオーバーします。続いて、Route 53 はクライアントリクエストをエンドポイント C (フォールバックリソース) に送信します。
  4. プライマリレコードがヘルスチェックを再び通過すると、Route 53 は自動的にプライマリリソースレコード (エンドポイント A と B) にフェールバックします。

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?