
アプリがあり、アプリ内で新しいオブジェクトを作成できるとします。新しいオブジェクト (例: say hello) が作成されるたびに、URL がhello.example.com/hi
常に特定の IP を指すようにしたいです。
これを実現するには 3 つの方法があることがわかりました。DNS エントリの数が多い場合に遅延が発生するかどうか、また以下のアプローチのどれが最も効果的かを知りたいです。
- DNSエントリを追加します *.example.com ----> IP_1
これの問題点は、不要なDNSもリダイレクトしてしまうことです。IP_1
新しいオブジェクトが作成されるたびにスクリプトを実行し、特定のDNSを動的に追加します。
hello.example.com ----> IP_1 hi.example.com -----> IP_1 .......
マッピングはたくさん必要になります。マッピングの数が増えると検索時間が長くなり、遅延が発生するのではないかという疑問があります。
マルチレベルの使用
*.object.example.com
------>IP_1
答え1
両方のアプローチに対するあなたの懸念は根拠のないものです。
[ワイルドカードDNSレコード]は不要なDNSもIP_1にリダイレクトします
- それでどうするの? 複数の DNS レコードが必要な場合、これはホスト名を認識するサービス (例: http、smtp) を実行していることを意味します。これらのサービスに対してホスト名固有の動作を構成する必要があります。
- 明示的なDNSレコードとワイルドカードを混在させることができます。DNSサーバーは最も具体的な一致を返すはずです。
マッピングの数が大幅に増えると、検索時間が増加し、遅延が発生します。
本当にひどく書かれた DNS サーバーを実行する場合のみです。Bind と powerDNS では、この問題は発生しません。
ワイルドカードではなく明示的なレコードを使用することに決めた場合 (ワイルドカードを使用する方がよい場合もありますが)、新しいレコードを A レコードではなく CNAME として作成すると、メンテナンスや移行が簡単になります。