Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
DNS フェイルオーバーに Route 53 ヘルスチェックを使用する方法を教えてください。
Amazon Route 53 ヘルスチェックを使用して DNS フェイルオーバーを設定したいと考えています。
簡単な説明
Route 53 を使用してリソースの状態を確認し、DNS クエリに対する応答として正常なリソースのみを返すことができます。DNS フェイルオーバー構成には 3 つのタイプがあります。
- アクティブ/パッシブ: Route 53 はプライマリリソースをアクティブに返します。障害が発生した場合、Route 53 はバックアップリソースを返します。Route 53 はフェイルオーバーポリシーからこのメソッドを設定します。
- アクティブ/アクティブ: Route 53 は複数のリソースをアクティブに返します。障害が発生した場合、Route 53 は正常なリソースにフェイルバックします。Route 53 は、フェイルオーバー以外のルーティングポリシーからこのメソッドを設定します。
- 組み合わせ: 複数のルーティングポリシー (レイテンシーベースや加重ポリシーなど) が 1 つのツリーにまとめられ、より複雑な DNS フェイルオーバーを構成します。
解決策
**注:**Amazon CloudFront がメインターゲットである場合、以下の解決策は適用されません。
アクティブ/パッシブ フェイルオーバー
アクティブ/パッシブ DNS フェイルオーバーは、1 つのプライマリリソースと 1 つのセカンダリリソースを使用する最も簡単な方法です。
**注:**先に進む前に、必ずプライマリリソースの Route 53 ヘルスチェックを作成してください。
フェイルオーバーエイリアスレコードの値を使用して、プライマリリソースとセカンダリリソースの 2 つのリソースレコードを作成します。各レコードについて、次の手順を実行します。
- リソースの名前を入力します (「resource.example.com」など)。
**注:**両方のリソースに同じ名前を使用してください。 - [タイプ] には [A-IPV4 アドレス] を選択します。
- [エイリアス] には [はい] を選択します。
- [エイリアスターゲット] には、プライマリリソースの DNS 名を入力します。次に、[エイリアスホストゾーン ID] が表示されます。
- [ルーティングポリシー] で、[フェイルオーバー] を選択します。
- プライマリレコードでは、[フェイルオーバーレコードタイプ] に [プライマリ] を選択します。[セット ID] には一意の名前 (elb-Primary など) を入力します。
- セカンダリレコードの場合は、[フェイルオーバーレコードタイプ] に [セカンダリ] を選択します。[セット ID]には一意の名前 (「elb-Secondary」 など) を入力します。
- [ターゲットヘルスを評価] では、プライマリレコードに [はい] を選択します。2 番目のレコードには [いいえ] を選択します。
- プライマリレコードでは、[ヘルスチェックと関連付ける] で [はい] を選択します。[関連付けられるヘルスチェック] では、プライマリリソース用に作成したヘルスチェックを選択します。
- [作成] を選択してレコードを作成します。
これで、レコードはドメインをプライマリリソースにポイントするか、セカンダリリソースにフェイルオーバーします。
アクティブ-アクティブフェイルオーバー
アクティブ-アクティブ DNS フェイルオーバーは、複数のリソースを DNS クエリに返します。あるリソースに異常があると、Route 53 は別のリソースにフェイルオーバーします。
**注:**続行する前に、必ず両方のリソースの Route 53 ヘルスチェックを作成してください。
フェイルオーバーエイリアスレコードの値を使用して、各リソースのレコードを作成します。各レコードについて、次の手順を実行します。
- リソースの名前を入力します (「resource.example.com」など)。
注:各レコードには必ず同じ名前を使用してください。 - レコード [タイプ] (A-IPv4アドレスなど) を選択します。
**注:**リソースのすべてのレコードは同じ [タイプ] でなければなりません。 - [エイリアス] には [はい] を選択します。
- [エイリアスターゲット] には、リソースの DNS 名を入力します。次に、[エイリアスホストゾーン ID] が表示されます。
- [ルーティングポリシー] を選択し、そのポリシーに適した値を入力します ([加重ポリシー] の場合は 「ウェイト」など)。[セット ID] には、このリソースの一意の名前 (「Resource 1」など) を入力します。
**注:**加重ルーティングポリシーの場合は、すべてのレコードを同じウェイト (10 など) に設定します。または、すべてのレコードに異なる重みを設定します(20 と 10 など、20 のレコードは 2 倍のトラフィックを受信します)。 - [ターゲットの正常性の評価] には、[はい] を選択します。
- [ヘルスチェックと連携] で [はい] を選択します。
- [関連付けられるヘルスチェック] では、このリソース用に作成したヘルスチェックを選択します。
- [作成] を選択してレコードを作成します。
組み合わせフェイルオーバー
複数のルーティングポリシーとヘルスチェックを組み合わせて、複雑なフェイルオーバーメカニズムを作成できます。これらのメカニズムにより、Route 53 は適切なレコードを返す前に複数のレコード層を横断します。
たとえば、3 つのエンドポイントがあるとします。エンドポイント A と B の間でトラフィックを負荷分散できます。最初の 2 つのエンドポイントがヘルスチェックに失敗した場合、エンドポイント C にフォールバックできます。この構成では、2 つのルーティング層があります。下位のルーティング層では、Route 53 はレコードヘルスチェックを使用してエンドポイント A と B が正常であることを確認します。次に、トラフィックは両方のプライマリリソース間で均等にルーティングされます。エンドポイント A と B がヘルスチェックに失敗すると、トラフィックは上位のルーティング層にフェイルオーバーします。上位のルーティング層では、Route 53 はトラフィックをセカンダリフォールバックリソースとしてエンドポイント C にルーティングします。
この構成を作成するには、次の手順を実行します。
- 3 つのエンドポイントすべてに Route 53 ヘルスチェックを作成し、ヘルスチェックレコードに関連付けます。
- 下位のルーティング層では、エンドポイント A と B のドメイン名の重みが等しい 2 つの加重レコードを作成します。
**重要:**エンドポイント A と B のヘルスチェックは、必ず加重レコードと関連付けてください。このステップにより、Route 53 は各レコードのヘルスチェックステータスを判断し、それに応じてレコード間のトラフィックを負荷分散します。 - 上位のルーティング層では、エンドポイント C のドメイン名 (「domain.example.com」など) のフェイルオーバーレコードを作成します。
**重要:**プライマリレコードが、ステップ 2 で作成した「resource.example.com」のレコードを指すエイリアスレコードであることを確認してください。また、セカンダリレコードがフェイルオーバーリソースとしてエンドポイント C を指していることを確認します。 - プライマリフェイルオーバーレコードのヘルスステータスを判断するように Route 53 を設定します。カスタムヘルスチェックを作成して、2 つの加重レコードのヘルスステータスを判断します (計算されたヘルスチェックなど)。または、記録オプションを使用してターゲットの状態を評価します。
このフェイルオーバー構成では、次のワークフローを使用します。
- クライアントは「domain.example.com」をリクエストします。
- プライマリレコードがヘルスチェックに合格すると、Route 53 は「resource.example.com」の負荷分散されたプライマリリソースレコードにトラフィックを送信します。これにより、クライアントはエンドポイント A またはエンドポイント B に移動します。
- プライマリレコードがヘルスチェックに失敗した場合 (エンドポイント A と B がヘルスチェックに失敗した場合)、プライマリレコードは異常とマークされます。プライマリレコードはセカンダリレコードにフェイルオーバーします。次に、Route 53 はクライアントリクエストをエンドポイント C (フォールバックリソース) に送信します。
- プライマリレコードが再びヘルスチェックに合格すると、Route 53 はプライマリリソースレコード (エンドポイント A と B) に自動的にフェイルバックします。
関連情報
関連するコンテンツ
- 質問済み 8年前lg...
- 質問済み 5ヶ月前lg...
- 質問済み 2ヶ月前lg...
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前