Alibaba CloudのHTTPDNSを使って、DNS名前解決のショートカットをしてみた

2022年10月31日掲載

キービジュアル

Alibaba Cloud HTTPDNSを使って、DNS名前解決をショートカットしてみました。

目次

  • HTTPDNSについてご存じない方に基礎知識から説明をする記事です
  • 実際にパフォーマンスがよいのか検証も行っています
  • この記事を読むことでDNSの名前解決に対して新しい選択肢を得ることが出来ます。

はじめに

モバイルアプリやWebアプリでネットワークリクエスト時、DNS名前解決処理において様々な問題が発生します。例えば、ライブツアーやポケモンGo大会など人が大勢集まるイベント会場では、基地局のセルが収容できるユーザのキャパシティを超える処理からモバイルネットワーク網が輻輳(ふくそう)するため通信の繋がりが弱いネットワーク環境になりやすいです。イベント会場でtwitterなど画像データがなかなか送れないと思った時はありませんか?

この環境において、モバイルアプリから往来のUDPベースのローカルDNS名前解決による通信ベースでアプリケーションサーバと接続する際、数百ms以上の処理時間がかかったり、もしくはタイムアウトが発生しやすくなります。基地局や携帯電話、無線通信の技術が4G、5Gとどんどん進歩しても、UDPベースでDNS接続処理をする限り、アプリケーションのネットワーク全体に様々な影響が生じます。このアプリケーションのネットワーク全体の最適化を実現するHTTPDNSプロダクトサービスが、Alibaba Cloudから新たに登場しましたので、今回はこれを紹介します。

1. HTTPDNS登場の背景

HTTPDNSは、モバイルアプリやWebアプリなど、複数の種類の端末に搭載されたアプリのドメイン名分析サービスです。ドメインハイジャック対策、正確なスケジュール設定、分析結果のニアリアルタイム更新などの機能を備えています。

DNS(Domain Name System)は、Domain Name Systemの略です。TCP/IPネットワークで使用されるドメイン階層に編成されたコンピュータおよびネットワークサービスの名前付けシステムで、ホスト名とドメイン名をIPアドレスに変換するサービスを提供します。 現在、DNSはネットワーク通信全体の流れの中で最も重要な役割を持ちます。
では、そのDNSにはどういう問題があるのでしょうか?

DNSはRoot DomainをTop、Top-level DomainsやSecond-level domains、TreeによるFQDN(Fully Qualified Domain Names)を形成しながら、インターネット上でツリー状による階層構造で形成されています。Root Domainは「.」で表され、実際にはDomain nameで構成されています。現在、Root Domainを司るルートサーバは全世界で13台しかなく、そのうち1台は日本にも配置されています。

DNSは、例えばユーザが http://www.yahoo.co.jpへアクセスする際、このWebサイトのドメイン名をIPに変換する必要があるため、ローカルDNSでDNS名前解決処理をします。ローカルDNSは、ローカルキャッシュというレコードがあるかどうかを確認し、もしあればそれを利用しますが、もしなければローカルDNSサーバからRoot DNSサーバへ再帰的に最上位のドメインネームサーバを検索し、階層的な流れでDNSコンテンツサーバ(自分自身が管理しているドメイン情報についてのみ回答するDNSサーバ)を検索して、ローカルDNSサーバへ返却する必要があります。
この場合、「ドメイン名のキャッシュ問題」「ドメイン名の転送問題」「ドメイン名の更新問題」「DNS名前解決の処理遅延問題」などが生じます。

これを解決するために、HTTPDNSという技術が登場しました。

関連記事リンク

2. HTTPDNSプロダクトサービス概要

Alibaba Cloud HTTPDNSプロダクトサービスは、モバイルアプリやWebアプリなど、複数の種類の端末に搭載されたアプリのドメイン名分析サービスです。DNS名前解決の最適化はもちろん、ドメインハイジャック対策、正確なスケジュール設定、分析結果のニアリアルタイム更新などの機能を備えています。

流れとしては、ユーザはモバイルアプリなどからHTTPDNSのAPIを呼び出して、ドメイン名構成管理システムからIPアドレスを問い合わせます。このIPアドレスを使用して、最適な待機時間で必要なビジネスにアクセスすることができます。次に、クライアントはHTTPまたはHTTPSを使用してIPアドレスにリクエストを送信します。例えば、クライアントはHTTPDNSから取得したIPアドレスに対して、ホストヘッダを指定し、標準的なHTTPリクエストを送信します。

関連記事リンク

Alibaba Cloud HTTPDNSプロダクトサービスは次の機能を備えています。

安全で正確な解決結果
・ドメインのハイジャックを防止し、クライアントの地域と対応するISPを正確に特定し、正確な解決結果を提供します。

・ワイヤレス通信等、ISPネットワーク上の不確実な状況によりアプリが利用できなくなるリスクを効率的に抑制することができます。

ネットワーク全体のドメイン名解決

Akamaiなどの海外サービスプロバイダのドメイン名を含む、ネットワーク全体のドメイン名を解決します。

ソフトウェア定義DNS(SDNS)
解決のためにパラメータや戻り値、解決ルール、解決までの手法をカスタマイズし、位置情報付きスケジューリングやインテリジェントなスケジューリングを実現します。

費用対効果の高い統合
HTTPDNSはiOS/Android 両方のSDKとサーバとクライアントでHTTPDNSサービスへのアクセスを容易にするHTTP(HTTPS)API を介して素早く接続することが可能です。

HTTPDNSの特長は次の通りです。

特長

概要

ドメインハイジャック対策


ドメインハイジャックを効果的に防止します。

正確なスケジュール設定


クライアントの場所を正確に特定し、
スケジュールの精度を15%向上させます。

低レイテンシで再解決

クライアントSDKと連携しながら、解決結果をミリ秒単位の低レイテンシで待ち時間を短縮します。

解決結果の迅速な更新

DNSコンテンツサーバからの解決結果の変更を、24時間待つことなく、迅速に同期します。

低い処理失敗率

ワイヤレスネットワーク環境など、不安定なネットワーク環境での接続によるDNS解決処理の失敗を効果的に抑制します。

高可用性

複数のリージョンのクラスタ内にサーバを配置することで、サービスの高可用性を確保します。

HTTPDNSの利用イメージとしては、次のStep-by-stepになります。

STEP1. EMASサービスの有効化
Alibaba Cloudアカウントを使用して、HTTPDNSサービスを有効化します。

STEP2. ドメイン名の追加
EMASコンソールで解決するドメイン名を追加します。

STEP3. ドメイン名を迅速に確認
単一のドメイン名を解決するためのAPIを使用して、ドメイン名が有効であることを迅速に確認します。

STEP4. サービスへのアクセス
SDKを組み込むか、APIを使用して、HTTPDNSサービスにアクセスします。

STEP5. 解決結果を表示
日次、月次単位で解決結果を表示します。

3. HTTPDNSプロダクトサービスの機能について

3-1. ドメインハイジャック対策

  • HTTPDNSを使用すると、ISPのローカルDNSサーバをバイパスして、ドメインのハイジャックを防止することができます。
  • HTTPDNSのHTTPベースの設計は、ほぼ全てのネットワーク環境で使用することができます。また、HTTPDNSは、認証やHTTPSなどのセキュリティを備えた拡張機能を提供し、悪意のある攻撃やハイジャックを防止します。
  • 商用HTTPDNSサービスは、厳格なService Level Agreement(SLA、サービスレベル契約)に準拠してキャッシュを管理します。これにより、ローカルDNSサーバのキャッシュ汚染問題が回避されます。

3-2. 正確なスケジューリング

  • ISPの中には、運用コストを削減するために、他のISPのローカルDNSノードにDNSリクエストを送信します。これは、ドメイン名解決の精度に重大な影響を及ぼします。
  • HTTPDNSは、クライアントのIPアドレスをDNSコンテンツサーバに直接配信します。HTTPDNSは、ローカルDNSサーバから返されたIPアドレスを無視し、クライアントIPアドレスに基づいて、正確なスケジューリングを実行します。これにより、ローカルDNSサーバからの干渉を回避できます。

 

 3-3.解決結果のリアルタイム更新

  • ローカルDNSクエリが初めて処理されるか、キャッシュされた解決処理結果が期限切れになると、最終的な解決結果を取得するために複数のDNSサーバを再帰的に実行する場合があります。これにより、ネットワークリクエストの待機時間が長くなります。
  • HTTPDNSは、DNSキャッシュのTTL(time to live)制限を厳格に従ってキャッシュを更新します。DNSコンテンツサーバ上で変更された解決結果はリアルタイムで同期されます。

4. ユースケース

4.1 往来のドメイン名解決

HTTPDNSは、ローカルDNSの代わりにドメイン名解決処理を使用できます。
そのため、例えばスマホアプリ側とサーバ間の通信で初回もしくは1回限りの通信が多いシナリオでも、HTTPDNSを経由することで、スマホアプリはローカルキャッシュを使うことなくサーバ側とシームレスな通信を行うことが出来ます。

4.2 サーバ側の解決要求

HTTPDNSの柔軟性と制御性により、ビジネスレイヤーでのカスタムスケジューリング要件を柔軟に対応することができます。
先述通り、Root Domainは世界で13台のサーバに配置しているため、中国やクアラルンプールなど国によってはRoot Domainサーバがないため、サーバから別のサーバへアクセスする際、DNS名前解決処理で遅延する場合があります。そのため、HTTPDNSを経由することで、API経由でIPアドレスを取得してくれるため、DNS名前解決処理をショートカットしてくれます。

4.3  SDNS

HTTPDNSはSDNS(Software-defined Name System)を提供しています。SDNSは従来のDNSコンテンツサーバでは対応できないドメイン名とIPアドレスのマッピングをユーザ定義関数で設定しながらDNS名前解決処理をすることができます。そのため、HTTPDNSはカスタマイズもしやすく柔軟性が高いです。
例えば、日本および中国から営業時間帯のみアクセスがあった場合はAサーバを参照、営業時間外で日本からのアクセスがあればBサーバ、中国からのアクセスはCサーバを参照、といったカスタマイズ設定も出来ます。

(参考)HTTPDNS SDNS機能

①機能の定義:

SDNSは、Software-defined Name Systemの略で、従来のDNSコンテンツサーバでは対応できないドメイン名とIPアドレスのマッピングを設定するために使用できます。

②3つの特徴:

  • カスタマイズ性:HTTPDNSでは、お客さまのビジネス要件と実際に検出されたデータに基づいて、ドメイン名解決プロセスを定義し、DNSコンテンツサーバの解決結果を改善することができます。これにより、お客さまのビジネスの最適なパフォーマンスを促進します。
  • サービス拡張:ドメイン名分析とスケジューリングに加えて、HTTPDNSは、他の機能もサポートしています。例えば、Function Computeのようなクラウドサービスを統合することによって、HTTPDNSはビジネス機能を拡張することができます。
  • 統合され最適化されたスケジューリングシステム:HTTPDNSを使用すると、 ドメイン名解決プロセスを定義し、DNS解決結果を改善し、データ情報の追加を可能にし、さまざまなDNSコンテンツサーバを統合することができます。これにより、DNSコンテンツサーバの標準化が最適化し、スケジューリング品質を向上させます。

 

5. 日本リージョン対応状況

本サービスは2022/10/19 現時点で中国本土および東南アジアで利用することができます。日本リージョンはまだ対応していません。

  • 中国杭州のノードは、中国本土のお客さまにサービスを提供しています。
  • シンガポールのノードは、香港、中国、東南アジア(シンガポール)のお客さまにサービスを提供しています。

6. 料金

HTTPDNSはHTTP解決の数に基いて課金されます。これが基本となり、PAYG(従量課金)とResource Pacakges(解決の数をオフセット)があり、また無料枠もあります。

課金項目

HTTP解決の数に基づいて課金

課金方法

PAYG(従量課金)とResource Pacakges

(解決の数をオフセット)

無料枠

HTTP解決数回数 150万回 / 月

※1つのHTTPS解決は5つの解決回数に相当します

 

従量課金制(PAYG):

データ転送プラン(Data transfer plan):

HTTPDNS料金請求例:

例えば、あなたがAlibaba Cloudのユーザで、今月の1日と2日だけHTTPDNSの解決サービスを利用したとします。
HTTPDNSがお客さまのアプリに、今月1日にHTTPベースの分析500万件、2日にHTTPベースの分析80万件、HTTPSベースの分析20万件を提供する場合、1日目に請求される件数は500万件、2日目は80万件+5×20万件で180万件となります。


従量課金:(1,800,000 + 5,000,000 - 1,500,000)×0.006 USD / 10,000件 解析で 3.18 USDとなります。

データ転送プラン:500万件の解析をカバーするデータ転送プランを購入した場合、価格は 2.5 USDです。


①従量課金

 

請求件数

請求件数

1日目

HTTPベースの分析:500万件

500万件

2日目

HTTPベースの分析:80万件

HTTPSベースの分析:20万件

(5×20万件=180万件)

180万件

従量課金

無料枠:HTTP解決数回数 150万回 / 月

(1,800,000 + 5,000,000 - 1,500,000)×0.006 USD / 10,000件=3.18 USD

 

②データ転送プラン

データ転送プラン

500万件の解析をカバーする

データ転送プラン費用

2.5 USD

その他要件がある場合は、Alibaba Cloud公式サイトのHTTPDNSを参照頂ければ幸いです。

関連記事リンク

7. HTTPDNSを検証してみる

閑話休題、HTTPDNSの実力を試すべく、実際に検証をしてみます。
今回の検証シナリオは2つあります。

  • 検証シナリオA:HTTPDNSでDNSドメイン名解決結果による処理速度と、PingによるDNSドメイン名解決(ローカルDNS)の処理速度の比較
  • 検証シナリオB:HTTPDNSでAkamaiなどの海外サービスプロバイダのドメイン名解決結果を分析

本当はモバイルアプリからコードを使ってHTTP API経由で効果測定をしたかったのですが、コードを作成等準備に時間がかかるという制約から、今回はこの簡単な2つのシナリオで進めます。
https://www.alibabacloud.com/help/en/httpdns/latest/resolve-a-domain-name

 


検証シナリオA:HTTPDNSでDNSドメイン名解決結果による処理速度と、PingによるDNSドメイン名解決(ローカルDNS)の処理速度の比較

まずは検証シナリオA:HTTPDNSとローカルDNSの処理速度を確認するために、HTTPDNS、ローカルDNSそれぞれでドメイン名解決結果による処理速度の比較をします。全体図としては次の図の通りになります。

HTTPDNSコンソール画面にて、Alibaba Cloud中国サイトのドメイン( cn.aliyun.com )を入力します。Alibaba Cloud中国サイトは中国サーバにあり、このDNS名前解決をするための要となるRoot Domainサーバが中国には配置されていない背景もあり、日本にいる著者はいつも中国サイトへのアクセスに時間がかかっています。

HTTPDNSコンソール画面で中国サイトのドメイン名を入力したら、IPアドレスが表示されます。このIPアドレスを使って、ターミナルからPingコマンドで通信処理速度を確認します。

結果として、最小 35ms、最大 35ms、平均35msです。

②PingによるDNSドメイン名解決:

結果今度はHTTPDNSを使わずに、ターミナルからPingコマンドで通信処理速度を確認します。

結果、最小 36ms、最大 36ms、平均36msです。

この結果から、結果としては次の通りです。

 

HTTPDNSによる
解決結果での処理速度

ローカルDNSによる名前解決の処理速度


ドメイン名

cn.aliyun.com

cn.aliyun.com

解析結果

106.11.248.144

106.11.253.83

aliyun-adns.aliyun.com.gds.alibabadns.com

検証結果

最小 = 35ms、最大 = 35ms、平均 = 35ms

最小 = 36ms、最大 = 36ms、平均 = 36ms


最小、最大、平均ともに1msほど改善されています。
もし、ローカルのターミナルでpingコマンドでなく、モバイルアプリなどからの通信の場合、コード等機械的な処理によるDNS名前解決のための待機の積み重ねから、結果が大きく変わってきます。
この結論から、アクセスするユーザの地域と対応するISPを正確に特定したうえで、サイトへアクセスするためのDNS名前解決での最短距離を提供することができます。

 

検証シナリオB:HTTPDNSでAkamaiなどの海外サービスプロバイダのドメイン名解決結果を分析
次は海外展開しているさまざまなサービスプロパイダーのドメイン名をHTTPDNSで分析します。HTTPDNSはAkamaiなどのプロパイダーを特定することもできるそうです。全体図としては次の図の通りになります。

HTTPDNSコンソール画面にて、Alobaba Cloudにアクセスします。
その結果、IPv4ベースでTokyo Region、ISP LineはAliyun製と判明できます。

次はAmazon USAへアクセスします。
その結果、IPv4ベースでUnited States Region、ISP LineはAkamaiと判明できます。

この検証から、海外サービスプロバイダのドメイン名を含めた、ネットワーク全体のドメイン名解決結果を提供することができます。

8. さいごに

HTTPDNSはHTTP/HTTPSプロトコルを利用してDNSサーバと相互に連携するため、往来のUDPプロトコルによるDNSサーバへのアクセスによる処理遅延問題や、ドメイン名ハイジャック問題を排除することができます。また、HTTPDNSはアクセスユーザの現在位置を特定したうえで、ISPやDNSサーバへの最短距離を抽出することができるため、サイトやAPIレスポンスのレイテンシを改善することもできます。

参考として、DNS over HTTPSはDNSクエリをUDPベースでHTTPSプロトコルによる暗号化をしたものなので、DNS名前解決の最適化やドメイン名ハイジャック問題払拭までは至らないので、DNSにお困りの場合はこちらを参考にする手もあります。

関連記事リンク

HTTPDNSドキュメント:

HTTPDNS

What's is  HTTPDNS?

関連サービス

Alibaba Cloud

Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。

MSPサービス

MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

おすすめの記事

条件に該当するページがございません