TL

Cloud Service

DNS Traffic Management Steering Policies

同じFQDNへの問い合わせを、ヘルスチェック・送信元の地理/ASN・重み付けに応じて動的に出し分け。障害時の自動フェイルオーバーや多リージョン分散を実現するOCI DNSのインテリジェントルーティング。AWSのRoute 53ルーティングポリシーに相当。

中級信頼性パフォーマンス効率運用上の優秀性
最終更新: 2026-06-28公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.同じFQDNへの応答をヘルスチェックや地理・重みで動的に出し分ける。
  • 2.フェイルオーバー/ロードバランサ/ジオ/ASN/IPプレフィックスの各ポリシー。
  • 3.ヘルスチェック連動でダウン中のエンドポイントを自動で応答から外す。

解決する課題

  • 障害時に別リージョン/別エンドポイントへ自動で切り替えたい(フェイルオーバー)
  • ユーザーを最も近い/速いエンドポイントへ誘導したい(ジオロケーション系)
  • 複数のエンドポイントへ重み付けでトラフィックを分散したい(カナリア・段階移行)
  • ダウン中のエンドポイントをDNS応答から自動で外し、生きている先だけを返したい

主要概念と用語

  • ステアリングポリシー(Steering Policy): 同じFQDNへの問い合わせに対し、条件に応じて返す応答(アンサー)を動的に選ぶルールの集合。Route 53のルーティングポリシーに相当
  • ポリシーアタッチメント(Attachment): ステアリングポリシーを特定のゾーン内のドメイン(FQDN)に結びつける関連付け。1ドメインに1アタッチメント
  • アンサー(Answer): 返却候補となる個々のレコード値(A/AAAA/CNAMEなど)。各アンサーにプール(pool)名や**重み(weight)**といったメタデータを付与できる
  • ルール(Rule): アンサーを評価して並べ替え・除外する処理の連なり。ヘルスチェック除外、地理・ASN・IPプレフィックスでの絞り込み、重み付け、上限件数の制限などを段階的に適用
  • ヘルスチェック(Health Checks)連動: HTTP/HTTPS/TCP/ICMPの監視結果をルールに渡し、ダウン中のアンサーを自動で除外
  • ポリシータイプ: 用途別のテンプレート。FAILOVER/LOAD_BALANCER/ROUTE_BY_GEO/ROUTE_BY_ASN/ROUTE_BY_IP/CUSTOM
  • TTL: ステアリングが返すレコードのキャッシュ時間。切替の速さに直結するため、フェイルオーバー前提では短めに設定

仕様・制限・クォータ

  • ステアリングポリシーはOCI DNSの機能であり、対象ドメインはOCIで権威を持つパブリックゾーンに属している必要がある
  • 1つのドメイン(FQDN)には1つのポリシーアタッチメントのみ。複数ポリシーを同じ名前に同時適用はできない
  • ポリシーはコンパートメント配下のリソースとしてIAMポリシーで権限制御
  • アンサー数・ルール数・ポリシー数などにはサービス制限があり、上限値は変動するため公式ドキュメントとコンソールのリミット表示を参照
  • ヘルスチェック連動には別途Health Checksのモニタ設定が必要で、ステアリング側がその結果を参照する
  • 応答は権威DNSの仕組みに乗るため、最終的な切替速度はリゾルバ側のTTLキャッシュに依存する

内部の仕組み

ステアリングポリシーの本質は、同じFQDNへの問い合わせに対して固定のレコードを返すのではなく、評価のたびにアンサー候補を並べ替え・絞り込みして返す点にあります。

問い合わせが届くと、OCI DNSは対象ドメインにアタッチされたポリシーを評価します。まずアンサー集合(各アンサーにプール名・重み・地理などのメタデータが付く)を起点に、ルールを順番に適用していきます。代表的なルールは次のように働きます。

  • ヘルスチェック ルール: Health Checksの結果を参照し、ダウン中のアンサーを候補から除外する
  • 地理/ASN/IPプレフィックス ルール: 問い合わせの送信元(再帰リゾルバの位置やネットワーク)に応じて、該当プールのアンサーを優先・限定する
  • 重み付け ルール: 各アンサーのweightに比例した確率で候補を並べ替え、ロードバランサ的に分散する
  • 件数制限 ルール: 最終的に返すアンサー数を絞る(例: 1件だけ返してフェイルオーバー的に振る舞う)

これらを通過した結果が、その問い合わせへのDNS応答になります。送信元やヘルス状態が変われば同じ名前でも返る値が変わるため、静的なAレコードでは表現できない動的なルーティングを、アプリ側を一切変えずに実現できます。

ポリシータイプは初期ルールのプリセット

FAILOVERやLOAD_BALANCERなどのタイプは、上記ルールの典型的な組み合わせをあらかじめ用意したものです。CUSTOMを選べばルールを自由に積み上げられます。挙動が分かりにくいときは、タイプが内部でどのルール列に展開されているかを意識すると理解が早まります。

設計パターン / ベストプラクティス

  • DR フェイルオーバー: FAILOVERポリシー+ヘルスチェックで、プライマリ異常時にセカンダリ リージョンへ自動切替。切替前提でTTLは短めにしておく
  • 多リージョン分散・カナリア: LOAD_BALANCER(重み付け)でトラフィックを按分し、新リージョンへ少しずつ寄せる
  • データレジデンシー対応: ROUTE_BY_GEOで規制要件に応じて地域ごとに返す先を分ける
  • ネットワーク最適化: ROUTE_BY_ASNやROUTE_BY_IPで、特定の通信事業者・社内ネットワークからのアクセスを専用エンドポイントへ誘導
  • apex との併用: ゾーン頂点(apex)はALIASレコードでロードバランサへ向け、その手前の振り分けをステアリングで担う設計が相性良い
TTL が長いと切替が遅れる

ステアリングがダウンを検知して応答を切り替えても、リゾルバが古いレコードをキャッシュしている間は旧エンドポイントに流れ続けます。フェイルオーバーを実効的にするには、対象レコードのTTLを十分短く設定してください。

運用・監視

  • ヘルスチェックのステータスを監視し、OCI MonitoringのメトリクスとAlarmsで異常を検知
  • ポリシー/アタッチメントの変更はAuditログで追跡し、いつ誰が振り分けを変えたかを可視化
  • 実際にどのアンサーが返るかはdignslookupで、送信元の異なる地点(または別ASN)から検証
  • フェイルオーバーが効かないときは、まずTTL、次にヘルスチェックのモニタ設定(対象URL・しきい値)とアタッチメントの有効化を確認

コスト

課金は主に「ステアリングポリシー」と、連動させる「ヘルスチェック」の規模に応じます。

課金対象考え方コスト最適化のヒント
ステアリングポリシーポリシー単位での課金本当に出し分けが要るFQDNだけに適用する
DNSクエリステアリング対象へのクエリ数TTLを適切に取り無駄なクエリを抑える
ヘルスチェック監視対象のモニタ数で課金重要エンドポイントに絞り頻度を調整する
適用範囲を絞る

全レコードにステアリングを付ける必要はありません。フェイルオーバーや地理分散が本当に要るFQDNだけに限定すると、ポリシー数とヘルスチェック数の両方を抑えられます。

セキュリティ

  • IAMポリシー+コンパートメントでステアリングポリシー/アタッチメントの変更権限を最小化する
  • 振り分け先エンドポイントは、ステアリングだけに頼らず各レイヤ(NSG/セキュリティリスト/WAF)でも防御する。DNSは経路を案内するだけで通信そのものを止めはしない
  • 内部向けの振り分けに使う場合でも、パブリックゾーンに内部ホスト名やプライベートIPを露出させない
アンチパターン

ステアリングでアクセス制御をしようとするのは誤りです。DNSは「どこへ繋ぐか」を案内するだけで、リゾルバやクライアントが別の宛先を直接叩けば素通りします。アクセス制限は必ずネットワーク(NSG/セキュリティリスト)やWAFで行い、ステアリングは可用性・分散のための仕組みと割り切ってください。

関連サービス・比較

ステアリングはOCI DNSの一機能であり、Health Checksと密接に連動します。AWSではRoute 53のルーティングポリシーが相当します。

観点OCI ステアリングポリシーAmazon Route 53 ルーティング
位置づけDNSの動的ルーティング機能DNSの動的ルーティング機能
フェイルオーバーFAILOVERポリシーフェイルオーバールーティング
重み付け分散LOAD_BALANCER加重ルーティング
地理ベースROUTE_BY_GEO位置情報ルーティング
ネットワークベースROUTE_BY_ASN/ROUTE_BY_IPIPベースルーティング
死活監視Health Checks連動ヘルスチェック連動
適用単位ドメインへのアタッチメントレコードセット単位

ハンズオン / CLI例

最小の流れは「ヘルスチェック モニタを用意 → ステアリングポリシー作成 → ドメインへアタッチ」です。

# 1) ヘルスチェックのHTTPモニタを作成(ステアリングが参照する死活監視)
oci health-checks http-monitor create \
  --compartment-id ocid1.compartment.oc1..xxxx \
  --display-name primary-health \
  --protocol HTTPS \
  --targets '["203.0.113.10"]' \
  --path "/healthz" \
  --interval-in-seconds 30

# 2) フェイルオーバー型のステアリングポリシーを作成
#    (プライマリ異常時にセカンダリのアンサーへ切り替える想定)
oci dns steering-policy create \
  --compartment-id ocid1.compartment.oc1..xxxx \
  --display-name failover-policy \
  --template FAILOVER \
  --ttl 60

# 3) ポリシーを対象ドメイン(FQDN)へアタッチ
oci dns steering-policy-attachment create \
  --steering-policy-id ocid1.dnssteeringpolicy.oc1..xxxx \
  --zone-id ocid1.dns-zone.oc1..xxxx \
  --domain-name app.example.com

# 4) 作成済みのステアリングポリシーとアタッチメントを確認
oci dns steering-policy list \
  --compartment-id ocid1.compartment.oc1..xxxx

oci dns steering-policy-attachment list \
  --compartment-id ocid1.compartment.oc1..xxxx

OCI Service

DNS Traffic Management Steering Policiesを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

ネットワーキング

比較で見る軸

クラウド: OCI / カテゴリ: ネットワーキング / 難易度: intermediate

導入後に効く点

フェイルオーバー/ロードバランサ/ジオ/ASN/IPプレフィックスの各ポリシー。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
OCI
カテゴリ
ネットワーキング
難易度
intermediate
関連資格
設計柱
reliability / performance / operational

判断チェックリスト

  • 自社の用途が「ネットワーキング / reliability」に近いか確認する。
  • 強みである「同じFQDNへの応答をヘルスチェックや地理・重みで動的に出し分ける。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

ネットワーキングreliabilityperformanceoperational