重み付け設定を使用すると、同一のホスト名と同一の DNS 回線に対して、IP アドレスや CNAME などの複数のレコード値を割り当てることができます。Alibaba Cloud DNS は DNS クエリに応答する際、事前設定された重み比率に基づいてレコード値を返します。これにより、異なるサーバー間でトラフィックを振り分け、負荷分散を実現します。
前提条件
重み付け設定を使用するには、同一のホスト名と DNS 回線に対して、複数の A、CNAME、または AAAA レコードが必要です。
重み付け設定が無効な場合:
A、AAAA、NS、MX、TXT レコードの場合、Alibaba Cloud DNS は指定された DNS 回線のすべてのレコードを返します。ローカル DNS サーバーは、クライアントに返すレコードを選択します。すべてのアドレスが返された場合、クライアントはランダムに 1 つを選択します。
CNAME レコードの場合、Alibaba Cloud DNS は利用可能なレコードのうち 1 つのみを返します。
制限事項
制限項目 | サポート対象 | サポート対象外 |
レコードタイプ | A、CNAME、AAAA レコード。 | その他のレコードタイプ。 |
レコードステータス | 有効なレコード。 | 無効またはロックされたレコード、およびワイルドカード DNS レコード。 |
DNS レコードの上限 | 1 つのドメインの 1 つの DNS 回線あたりの重み付け DNS レコードの最大数: Free Edition は 10、Paid Edition は 100。 | 該当なし。 |
重み値のルール | 重み値は 0 から 100 まで設定できます。デフォルトの重み比率は 1:1 です。重みを 0 に設定した場合、Alibaba Cloud DNS は対応するレコード値を返しません。 | 該当なし。 |
DNS 回線 | デフォルト回線または特定の DNS 回線に対して、重み付き A レコードを設定できます。 説明 異なる DNS 回線の重みは、互いに独立しています。 | 異なる DNS 回線間で、同一のホスト名に対して重み付きルーティングと非重み付きルーティングを混在させること。 |
手順
レコードの追加
Alibaba Cloud DNS - 権威ゾーンページに移動します。対象のドメイン名をクリックして、[解決設定]ページを開きます。
[解決設定]ページで、[Add Record]をクリックします。
デフォルトでは、同一のホスト名と DNS 回線に対して複数のレコードを追加すると、1:1:1 の重み比率が設定されます。Alibaba Cloud DNS は、この比率に基づいて IP アドレスを返します。
レコードを追加パネルで、レコードタイプを A に設定し、ホスト名を入力し、クエリソースでデフォルトを選択します。TTL を 10 分 (推奨) に設定します。レコード値負荷分散ポリシーを重みに設定し、
223.5.5.xや223.6.6.xなどの複数のレコード値を追加し、それぞれの重みを 1 に設定します。
レコードセットの変更
Alibaba Cloud DNS - 権威ゾーンページに移動します。対象のドメイン名をクリックして、[解決設定]ページを開きます。
[解決設定]ページで、[Edit]の横にあるドロップダウン矢印
をクリックし、[レコードセットを変更する]を選択します。ダイアログボックスで、レコード値とその重みを変更できます。
レコード値負荷分散ポリシーを重みに設定し、レコード値セット内の各レコード値の重みを変更します。
仕組み
重み付け設定なしの動作
IP アドレス 1.1.XX.XX、2.2.XX.XX、3.3.XX.XX を持つ 3 台のサーバーがあると仮定します。これらのサーバーは、1 つのドメインに対して同じサービスを提供しており、次の A レコードが設定されています。
タイプ | ホスト名 | DNS 回線 | 値 |
A | www | デフォルト | 1.1.XX.XX |
A | www | デフォルト | 2.2.XX.XX |
A | www | デフォルト | 3.3.XX.XX |
ローカル DNS サーバーが Alibaba Cloud DNS にクエリを送信すると、3 つの DNS レコードすべてを受信します。ローカル DNS サーバーが 3 つの IP アドレスすべてをクライアントに転送した場合、クライアントのブラウザはランダムに 1 つを選択してアクセスします。
DNS ベースの負荷分散を提供しない権威 DNS サービスの場合、このアプローチは単一サーバーの負荷をある程度軽減できます。ただし、サーバー間を区別したり、各サーバーの現在の稼働状況を反映したりすることはできません。
デフォルト重みでの動作
重み付け設定を有効にし、デフォルトの 1:1:1 比率を使用すると、Alibaba Cloud DNS は 3 つの A レコードをラウンドロビン方式で処理し、IP アドレスを順次返します。DNS 名前解決の結果は次のようになります。
リージョン 1 からのクエリは 1.1.XX.XX を返します
リージョン 2 からのクエリは 2.2.XX.XX を返します
リージョン 3 からのクエリは 3.3.XX.XX を返します
リージョン 4 からのクエリは 1.1.XX.XX を返します
リージョン 5 からのクエリは 2.2.XX.XX を返します
リージョン 6 からのクエリは 3.3.XX.XX を返します
...カスタム重みでの動作
カスタム重みを設定すると、Alibaba Cloud DNS は事前設定された比率に従って応答を返すため、トラフィックを分散できます。たとえば、3 つのレコードの重み比率を 2:1:1 に設定した場合、DNS 名前解決の結果は次のようになります。
リージョン 1 からのクエリは 1.1.XX.XX を返します
リージョン 2 からのクエリは 2.2.XX.XX を返します
リージョン 3 からのクエリは 3.3.XX.XX を返します
リージョン 4 からのクエリは 1.1.XX.XX を返します
...テスト中に DNS クエリ結果が設定された重み比率と一致しない場合がありますが、これは想定された動作です。重み付きラウンドロビンは、ローカル DNS サーバーからのリクエストに適用される粗粒度のトラフィックスケジューリング方式です。各ローカル DNS サーバーは、TTL 期間ごとに 1 回だけ権威 DNS サーバー (Alibaba Cloud DNS) にクエリを送信します。
たとえば、上海のユーザーがローカル DNS サーバー A を使用し、北京のユーザーがローカル DNS サーバー B を使用するシナリオを考えます。ローカル DNS サーバー A とローカル DNS サーバー B が Alibaba Cloud DNS にクエリリクエストを送信すると、Alibaba Cloud DNS は設定された重みポリシーに従って応答します。ただし、TTL の期間中、同じローカル DNS サーバーを共有するすべてのユーザーは、同じキャッシュされた名前解決結果を受信します。