機能

重み付きDNS

DNSレイヤーでパーセンテージごとにトラフィックを分散 — レコードごとの重みでカナリア(新バージョンを小さなユーザー割合に最初にリリース)、A/Bテスト、ブルー/グリーン(古い環境と新しい環境を並行実行し一括切り替え)、ドレイン(ターゲットを段階的にフェーズアウト)シナリオを管理します。

TR7重み付きDNSはDNSレコードを単純な等分シェアIPリストとして扱いません。各レコードに別個の重みを割り当てることで、DNSレベルでトラフィックのどの割合をどの宛先に送るかを決定できます。 重み付きラウンドロビンと重み付きランダムアルゴリズムにより、新リリース、新データセンター、新サービスグループ、テスト環境を低トラフィック比で導入できます。重みを増やしてトラフィックを段階的にシフトし、問題が発生した場合は重みを下げるか0に設定してターゲットをDNS応答から削除します。 重み変更はライブ構成リロードパイプラインに入ります。新しいDNSクエリは現在の重み分布を反映した応答を受け取り、クライアントによってすでにキャッシュされた応答はTTLが期限切れになるまで生き続けます。このため、高速遷移シナリオはTTLを低く保つことが有益です。 結果として、TR7はトラフィックパーセンテージをDNSの言葉で管理します — カナリアリリース、ブルー/グリーンカットオーバー、A/Bテスト、メンテナンスドレイン、段階的なデータセンター移行、すべて追加のロードバランシング層を立ち上げることなく。

6
分散アルゴリズム: all、rr、wrr、random、wRandom、closest
3秒
デバウンスされたライブリロードレイテンシ
0
重み値 — レコードを削除せずにターゲットをドレインモードに置く

古典的なDNSラウンドロビンはトラフィックを等しく分散しますが、現代の展開はパーセンテージ制御を必要とします。

古典的なDNSラウンドロビンは、同じレコード下のIPアドレスをほぼ等しく分散します。そのモデルは単純なロードシェアリングには適切かもしれませんが、新リリースロールアウト、A/Bテスト、ブルー/グリーンカットオーバー、データセンター移行に必要な制御を提供しません。運用チームは通常、新しい宛先にトラフィックの5%だけを送り、残りを既存システムに残したいと考えます。

DNSレベルでの重み付けなしでは、トラフィック分割はアプリケーション層または別のトラフィック分割層で解決される必要があります。これは追加のアーキテクチャ、追加の監視、追加の証明書管理、追加の障害ポイントを意味します。判断が代わりにDNS応答で行えるとき、クライアントは最初のクエリから適切な宛先に向けられます。

メンテナンスとドレインシナリオも、レコードを削除することで処理されるとき粗いです。DNSレコードからIPを削除することは新しいクエリには有効ですが、トラフィックシェアを徐々に減らしたり、ターゲットを制御された方法でローテーションから外したりするニーズに対応しません。TTLウィンドウを超えるクライアントと中間リゾルバーのキャッシュ動作も考慮する必要があります。

正しいモデルは、各DNSレコードに別個の重みを割り当て、シナリオに合うアルゴリズムを選ぶことです。重み付きラウンドロビンはバランスの取れた順序付き分散に適し、重み付きランダムは統計的なパーセンテージベース選択を提供します。0の重みはターゲットを実質的なドレインモードに置き、新しいDNS応答から削除します。

TR7重み付きDNSは、レコードごとの重み、重み付きラウンドロビン、重み付きランダム、ライブ構成リロード、weight=0ドレイン動作を通じてDNSレイヤーで制御されたトラフィック分散を提供します。

当社のアプローチ

TR7はDNS応答を静的レコードリストから持ち上げ、重み値と選択可能なアルゴリズムによって統治されるトラフィック分散判断に変えます。

重み付きラウンドロビンが重みに比例してレコードをローテーション

各IPまたはレコードメンバーに整数重みが定義されます。重み付きラウンドロビンアルゴリズムは、これらの重みを使用してプール全体にDNS応答を比例的に分散します。

重み付きランダムが統計的なパーセンテージベース選択を提供

重み付きランダムアルゴリズムは、すべてのクエリで重みに比例したランダム選択を実行します。高いクエリボリュームでは、観察されたトラフィック分布が定義された重み比に収束します。

ライブ更新が遅延なく新しいDNSクエリに反映

重み変更はライブ構成リロードパイプラインに入り、新しいクエリは即座に更新された分布を受け取ります。以前にキャッシュされた応答はTTLが期限切れになるまで生き続けるため、高速遷移シナリオではTTL計画が不可欠です。

重み0がドレイン動作をトリガーし、ターゲットを応答から削除

レコードの重みが0に設定されると、アクティブな候補リストから削除されます。この動作は、メンテナンス、ロールバック、またはデータセンター廃止のための制御されたドレインを提供します。

機能

重み付きDNSは、レコードごとの重み値をアルゴリズム選択、ライブ更新、トポロジー統合、メンテナンスシナリオと共に管理します。

各DNSレコードに別個の整数重みが割り当てられる

TR7では、すべてのレコードメンバーが独自の重み値を持てます。この値はトラフィック分散の相対的シェアを決定します — 5と2の重みは約5:2の比率をターゲットにします。floatが提供されると、使用前に整数に丸められます。このモデルは、容量の大きいターゲットに大きなシェアを、テストターゲットに小さなシェアを与えることを簡単にします。

重み付きラウンドロビンが制御されたバランスの取れた分散を提供

重み付きラウンドロビンは重み比に従ってローテーションでレコードを選択します。バランスの取れた分散が期待され、レコードの順次使用が許容される場合に好まれる選択です。カナリアリリース、段階的ロールアウト、容量比例トラフィック共有のための実用的なアルゴリズムです。運用者は重み値を変更するだけで分散を再形成します。

重み付きランダムが統計的に比例したトラフィック選択を実行

重み付きランダムは、すべてのDNSクエリで重みに比例したランダム選択を生成します。短い時間窓では小さな偏差が現れることがあります。高いクエリボリュームでは、分布は定義された比に収束します。A/Bテストと実験的トラフィックルーティングに適しています。低い重みの新しいターゲットは、同じレコードプール内で安全に試せます。

重み変更はライブリロードを通じて新しいクエリに伝搬

重み値が変更されると、GTM構成はライブリロードプロセスに入ります。デバウンスメカニズムが急速な連続変更を統合し、不要な再レンダリングを低減します。典型的なライブリロードレイテンシは約3秒です。新しいDNSクエリは更新された重み分布を受け取ります。クライアントとリゾルバーキャッシュの以前にキャッシュされた応答はTTLが期限切れになるまで残ります。

TTL計画は高速遷移とロールバックに重要

DNS重みが変更されると、システムは新しい応答を即座に更新します。しかしすでに発行されたDNS応答は、TTLが期限切れになるまで中間キャッシュに生き続けます。カナリア、ブルー/グリーン、または高速ロールバックシナリオでは、TTLを低く保つべきです。5〜60秒の範囲の値は、遷移をより速く反映できるようにします。安定した運用期間中は、より高いTTLが適切です。

重みを0に設定するとレコードは実質的なドレインモードになる

IPまたはレコードメンバーの重みが0に達すると、そのターゲットは新しいDNS応答から削除されます。これにより、削除せずにメンテナンスのためにレコードをドレインできます。既存のキャッシュされた応答はTTLが期限切れになるまで古い応答を使用し続け、新しいクエリはターゲットを受け取らなくなります。メンテナンス、ロールバック、データセンター廃止のための制御された可逆的な方法です。

データセンターレベルとIPレベルの重みを一緒に評価できる

TR7では、分散は単一のIPレベルに限定されません — データセンターグループとレコードメンバーの重みロジックが組み合わせて機能できます。適切なデータセンターまたは候補グループが最初に選択され、そのグループ内のレコードは重みで分散されます。このモデルは、グローバルトラフィック管理で容量とロケーションの両方を考慮するのに役立ちます。大規模展開では、分散がよりレイヤー化され管理しやすくなります。

トポロジーマッチ後、重みは選択されたバケット内で適用される

ジオまたはトポロジーベースの選択が使用されると、適切な候補グループが最初に識別されます。重み分散はその候補セット内で適用されます。例えばヨーロッパのユーザーはヨーロッパのデータセンターグループにルーティングされ、そのグループ内のIPは重み付けされます。トポロジー判断と重み判断は互いに干渉せずに順次適用されます。

古典的なラウンドロビンとランダムアルゴリズムも同じモデルで利用可能

重み付き分散を必要としないレコードは、古典的なラウンドロビンまたはランダム選択を使用できます。ラウンドロビンはレコードを等しく分散し、ランダムはランダムに選択します。これらのアルゴリズムは単純なシナリオに十分で、同じレコードモデルを通じて管理されるため、重み付きアルゴリズムへの切り替えに構造的変更は不要です。運用者は各DNSレコードに適切な分散動作を選択します。

closestアルゴリズムがAおよびAAAAレコードに近接ベース選択を提供

closestアルゴリズムはIP近接性選択を必要とするAおよびAAAAレコードに利用可能です。重み付き分散とは異なり、クライアントに最も近いまたは最も適切なターゲットを選択することに焦点を当てます。トポロジー、closest、重みはグローバルトラフィック管理において異なる判断レイヤーとして機能できます。結果は単にランダムではなくコンテキスト認識のDNS応答です。

運用の深さ

重み付きDNSは、重み形式、アルゴリズム選択、ライブリロードレイテンシ、TTL影響、レコード選択動作と共に運用されます。

01

重み形式

重みは数値として定義され、整数として使用されます。floatが提供されると丸められます。重み比はレコード間の相対的シェアを表し、絶対パーセンテージではありません。

02

重み付きアルゴリズムレンダリング動作

重み付きラウンドロビンおよび重み付きランダムアルゴリズムは、レコードリストと重みマップを一緒に使用します。各レコードに対してインデックス化された重み値が生成されます。この構造は、DNS応答生成中にセレクター関数によって評価されます。

03

ライブリロードレイテンシ

構成変更はデバウンスされたライブリロードプロセスを通過します。典型的なデバウンス値は3秒で、急速な連続変更のバースト中は最大待機制限が適用される可能性があります。この動作により、不要な頻繁な再レンダリング操作が低減されます。

04

TTL影響

重み変更は新しいDNSクエリに反映されます。以前の応答をすでに受け取ったクライアントまたはリゾルバーは、TTLが期限切れになるまでキャッシュされたレコードを使用し続けます。このため、TTLは遷移を計画する際に重みと同じくらい重要な運用パラメータです。

05

ドレイン動作

重み0は、レコードをアクティブな候補リストから削除するために使用されます。これにより、レコードを完全に削除せずにメンテナンスや移行を実行できます。レコードを復元するには、重みを正の値に戻します。

06

First N選択

特定のシナリオでは、アルゴリズムの代わりに数値を提供して候補リストから最初のN個のレコードを選択できます。この動作は単純で決定論的なレコード制限に有用です。重み付き分散が不要な特殊ケースに実用的なオプションです。

使用場面

カナリア展開で新リリースに小さなトラフィックシェアを与える

新リリースIPは低い重みを受け取り、現在のリリースは高い重みを受け取ります。新バージョンは約5%のトラフィックで開始し、メトリックが健全に見えるにつれて重みは段階的に上げられます。問題が発生した場合、新リリースは重みを0に設定することでドレインされます。

ブルー/グリーンカットオーバー中の制御されたDNSルーティング

ブルー環境がアクティブな間、グリーン環境は低い重みでテストされます。カットオーバー時、ブルーの重みは0に下げられ、グリーンは唯一のアクティブターゲットになります。ロールバックが必要な場合、重みは反転して以前の環境に戻ります。

A/Bテストのための2つのターゲット間の比例分散

2つのランディングページまたは2つのサービスバリアントが別々のIPレコードで定義されます。重みは均等テストのために1:1、または制限された実験のために9:1に設定できます。結果分析に基づいて、トラフィック比はDNSレベルで調整されます。

データセンター移行中の段階的トラフィック転送

古いデータセンターは高い重みで開始し、新しいデータセンターは低い重みで導入されます。運用チームは100 → 80 → 50 → 20 → 0のような段階的削減でトラフィックを新しいセンターにシフトします。TTLを低く保つと、各ステップの影響がより速く観察されます。

容量比例ロードバランシング

容量の大きいバックエンドは高い重みを受け取り、より制約のあるリソースは低い重みを受け取ります。トラフィック分散はサーバー容量に比例します。運用者は重み値の更新だけで分散を再形成します。

サービス中断なしのメンテナンスドレイン

メンテナンスに入れられるバックエンドの重みは0に下げられます。新しいDNSクエリはもはやそのターゲットにルーティングされず、以前にキャッシュされた応答はTTLが期限切れになるまで使用され続けます。メンテナンスが完了すると、重みは正の値に戻され、バックエンドはサービスに再参加します。

よくある質問

重み付きラウンドロビンと重み付きランダムの違いは何ですか?
重み付きラウンドロビンは、重み比に従って順次ローテーションでレコードを選択します。分散はバランスの取れた決定論的サイクルに従います。重み付きランダムは、すべてのクエリで統計的に重みに比例したランダム選択を実行します。短い時間窓では小さな偏差が現れることがあります。高いボリュームでは、分散は定義された比に収束します。ラウンドロビンは一般的にカナリアと段階的ロールアウトシナリオに好まれ、ランダムはA/Bテストと実験的分散に適しています。
重みを0に設定することとレコードを削除することの違いは何ですか?
重み0はレコードをDNS応答から削除しますが、構成には保持します。復元するには、重みを正の値に設定するだけでレコードが再びライブになります。レコードを削除すると、構成から完全に削除されます。メンテナンス、ロールバック、移行シナリオでは、重み0はより安全で完全に可逆的なアプローチを提供します。
重み変更はいつ反映されますか?
重み変更はGTMライブリロードパイプラインに入ります。デバウンスメカニズムにより、典型的なレイテンシは約3秒です。急速な変更のバースト中は最大待機制限が適用される可能性があります。新しいDNSクエリは更新された重み分布を受け取ります。しかし以前にキャッシュされた応答はTTLが期限切れになるまで生き続けるため、高速遷移シナリオではTTLを低く保つべきです。
カナリアリリースに推奨されるTTL値は何ですか?
高速遷移とロールバック柔軟性のため、5〜60秒の範囲のTTLが推奨されます。低いTTLは、クライアントとリゾルバーキャッシュが短時間で更新されるため、重み変更の影響がより速く観察可能であることを意味します。安定した運用期間中はより高いTTLを使用できます。TTLは重みと同じくらい重要な運用パラメータです。
トポロジーベースのルーティングと重みは一緒に使用できますか?
はい。ジオまたはトポロジーベースの選択が適用されると、適切な候補グループが最初に識別されます。重み分散はその候補セット内で動作します。例えばヨーロッパのユーザーはヨーロッパのデータセンターグループにルーティングされ、そのグループ内のIPは独立して重み付けされます。トポロジー判断と重み判断は互いに干渉せずに順次適用されます。
重み値にfloatを入力できますか?
重みは数値として定義され、floatが提供されると数学的丸めによって整数に変換されます。重み比はレコード間の相対的シェアを表し、絶対パーセンテージではありません。例えば5と2の重みは約5:2の分布をターゲットにします — 意味のある量は相対比であり、正確なパーセンテージではありません。

DNSレベルでトラフィックパーセンテージを制御する

レコードごとの重みとライブリロードでカナリアリリース、ブルー/グリーンカットオーバー、A/Bテスト、データセンター移行を実現。ご自身の環境でライブセットアップをご案内します。