すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud DNS:ECS の DNS クエリリクエストのレート制限の緩和策

最終更新日:Dec 17, 2025

Virtual Private Cloud (VPC) 内の各 Elastic Compute Service (ECS) インスタンスには、毎秒 5,000 クエリという DNS クエリの制限があります。単一のインスタンスからの DNS クエリ数がこのしきい値を超えると、インスタンスはレート制限の対象となります。これは、可用性に関するサービスレベルアグリーメント (SLA) が保証できなくなることを意味します。この問題を緩和するには、次の 2 つのアプローチを検討してください:

  • ECS インスタンスの数を増やすことで、DNS クエリリクエストをより多くの ECS インスタンスに分散できるため、各 ECS インスタンスの DNS クエリリクエストの数を減らすことができます。

  • キャッシュアクセラレーションのために ECS ホストで nscd(Name Service Cache Daemon)サービスを有効にします。

    説明

    nscd サービスが有効になっている場合、DNS レコードの変更が有効になるまでに時間がかかります。

nscd とは

nscd は、passwd、group、hosts、services、netgroup などのネームサービス情報をキャッシュするシステムキャッシュサービスです。システムのキャッシュヒット率を向上させ、ネームサービスクエリの数とトラフィック量を削減することで、サービスの応答を高速化します。このガイドでは、ECS インスタンスからの DNS クエリ数を削減するために使用される hosts の設定に焦点を当てます。

nscd の一般的な Linux コマンド

コマンド

説明

yum install -y nscd

nscd をインストールします。

systemctl start nscd

nscd を起動します。

systemctl stop nscd

nscd を停止します。

systemctl restart nscd

nscd を再起動します。

systemctl status nscd

nscd の動作ステータスをクエリします。

nscd -g

さまざまなパラメータの構成ステータスと、有効になった後のキャッシュヒット率の統計を出力します。

nscd -i

指定されたキャッシュを無効にします。 passwd、group、hosts、services、netgroup などを指定できます。 例:nscd -i hosts。

cat /etc/nscd.conf

現在の nscd 構成の詳細をクエリします。

vi /etc/nscd.conf

nscd 構成パラメータを変更します。

nscd のインストール

nscd は通常、Linux オペレーティングシステムにデフォルトでインストールされています。 現在の ECS インスタンスに nscd が既にインストールされているかどうか不明な場合は、次のコマンドを実行して確認できます。

systemctl status nscd # nscd の実行ステータスを確認します。

検出結果が次のようになっている場合、nscd はインストールされていません。

image.png

インストールするには、次のコマンドを実行します。

yum install -y nscd

image.png

もう一度コマンドを実行して、nscd の実行状態を確認します。 nscd はインストールされていますが、実行されていません。

image.png

nscd サービスの有効化

nscd サービスを有効にするには、次のコマンドを入力します。

systemctl start nscd

もう一度コマンドを実行して、nscd の実行状態を確認します。 nscd が実行されています。

image.png

説明

CentOS または Red Hat オペレーティングシステムに nscd をインストールするには、コマンド yum install -y nscd を実行します。

Debian または Ubuntu オペレーティングシステムに nscd をインストールするには、コマンド apt-get install -y nscd を実行します。

Nscd 構成パラメータ

nscd のデフォルトの構成ファイルパスは /etc/nscd.conf です。 次のコマンドを実行することで、nscd 構成を表示できます。

cat /etc/nscd.conf

image.png

主要な構成パラメータの説明

構成パラメータ

説明

debug-level

reload-count

アクティブなキャッシュリフレッシュに関連しています。 この構成パラメータは、成功したリクエストキャッシュがアクティブにキャッシュをクエリおよび更新する回数を決定します。

paranoia

パラノイアモード。 有効にすると、nscd は定期的に再起動します。

restart-interval

paranoia が有効になっている場合、このパラメータは再起動間隔時間を示します。

enable-cache

キャッシュサービスを有効にします。

positive-time-to-live

成功したレスポンスキャッシュの有効期間。

negative-time-to-live

失敗したレスポンスキャッシュの有効期間。 失敗したキャッシュがビジネスリクエストに影響を与えないように、0 に設定することをお勧めします。

check-files

/etc/passwd、/etc/group、/etc/hosts などのキャッシュファイルの変更時刻を定期的にチェックします。 最後のチェック以降にファイルが変更されている場合、キャッシュは無効になります。

persistent

有効にすると、nscd は再起動後も以前のキャッシュの内容を保持します。 paranoia が有効になっている場合は、この機能を有効にすることをお勧めします。

shared

nscd データベースを提供するためのメモリマッピングは、クライアントと共有されます。 デフォルトは yes です。 nscd -g コマンドを使用してキャッシュヒット率をクエリする場合は、shared を no に設定する必要があります。

max-db-size

nscd キャッシュデータベースの最大サイズ(バイト単位)。

重要
  • positive-time-to-live は実際には意味がありません。 TTL 値は、DNS クエリリクエストによって返される TTL に基づいています。

nscd キャッシュの有効性のテスト

nscd を無効にした状態でのテスト

  1. ECS インスタンスで次のコマンドを実行して、ポート 53 で UDP パケットをキャプチャします。

    tcpdump -i any udp and port 53
  2. 次に、nscd を無効にした状態で、ECS インスタンスで次のコマンドを複数回実行し、3 回連続でテストします。

    ping -c 1 -n www.taobao.com # ドメイン名 www.taobao.com に ping コマンドを 1 回送信します。

    image.png

  3. 対応するパケットキャプチャ結果を確認します。 ポート 53 で 3 つの DNS クエリリクエストが表示され、各 DNS クエリリクエストはドメイン名解決レコードを返します。 これは、DNS クエリレコードがキャッシュされておらず、ECS インスタンスが毎回ポート 53 を介して DNS クエリリクエストを送信する必要があることを証明しています。

    image.png

nscd を有効にした状態でのテスト

  1. start コマンドを実行して nscd サービスを有効にし、status query コマンドを使用して nscd が有効になっていることを確認します。

  2. nscd を有効にした状態で、ECS インスタンスで次のコマンドを実行し、6 回連続でテストします。 同時に、ECS インスタンスのポート 53 でパケットをキャプチャします。

    ping -c 1 -n www.taobao.com

    image.png

  3. 対応するパケットキャプチャ結果を確認します。 ポート 53 でキャプチャされる DNS クエリリクエストは 1 つだけであることがわかります。これは、DNS クエリリクエストが nscd キャッシュにヒットし、ポート 53 を介して DNS クエリリクエストを送信しなかったことを証明しています。image.png

    重要

    パケットキャプチャ中に、ping コマンドが完了した後でも、tcpdump が関連ドメイン名の DNS クエリリクエストパケットを一定の間隔でキャプチャし続けることに気付く場合があります。 これは nscd のアクティブリフレッシュメカニズムによるものであり、正常な動作です。 reload-count パラメータを 0 に設定することで、アクティブリフレッシュメカニズムを無効にできます。

  4. キャッシュヒット統計を確認することもできます。一定期間にわたって ping コマンドを複数回実行します。その後、次のコマンドを実行して統計を表示します:

    nscd -g # すべてのアクティブなパラメーターの設定とキャッシュヒット率の統計を出力します。

    image.png