OpenResty Edge は権威 DNS サーバーを内蔵しており、サードパーティのプロバイダーに頼らずにドメインの DNS を直接ホストできます。Admin コンソールから、A・AAAA・CNAME・MX・TXT・NS・CAA・SRV など複数タイプの DNS レコードを追加し、各解決を地域や CIDR レンジによって地理的に振り分け、プライマリ/バックアップレコードと自動ヘルスチェック(到達可能な結果のみを返す)を設定できます。このチュートリアルでは、OpenResty Edge で DNS レコードと地理配信ルールを設定し、dig で検証し、ドメインのネームサーバーを OpenResty Edge に委任する方法を解説します。

OpenResty Edge で DNS レコードを追加する方法

OpenResty Edge の管理者用 Web コンソールにアクセスしましょう。これは当社のコンソールのサンプルデプロイメントです。各ユーザーには独自のローカルデプロイメントがあります。

OpenResty Edge の管理者用 Web コンソール(サンプルデプロイメント)

DNS アプリケーション管理インターフェースに進みます。

OpenResty Edge Admin の DNS アプリケーション管理インターフェースへ移動

「openresty.net」アプリケーションをクリックし、実際に使用されている DNS アプリケーションの設定方法を確認します。

openresty.net DNS アプリケーションの概要

まず、DNS レコードマッピング図が表示されます。これは異なる地域での解決状況を視覚的に示しています。

地域ごとの解決状況を示す DNS レコードマッピング図

ここで異なるサブドメインを選択できます。

DNS アプリケーションでサブドメインを選択

このスイッチでマッピング図の表示・非表示を切り替えられます。

DNS マッピング図の表示切り替えスイッチ

DNS レコード追加ボタンをクリックすると、リストに新しいレコードが表示されます。

リストに追加された新しい DNS レコード

リストに新しく追加された DNS レコードの行

レコードのタイプを選択できます。

DNS レコードタイプの選択(A・AAAA・CNAME・MX・TXT・NS・CAA・SRV)

レコードのサブドメイン名を入力します。例えば「blog」など。

レコードのサブドメイン名(例:blog)を入力

特定のクライアントアドレスのみがこのレコードを解決できるよう制限することができます。

このレコードを解決できるクライアントアドレスを制限

「Any」は制限を設けないことを意味します。

Any を選択してクライアント制限を設けない

CIDR を使用して制限することもできます。

CIDR レンジで解決を制限

例えば 192.168.1.1/24 のように指定します。

CIDR レンジ(例:192.168.1.1/24)を入力

地域を制限することもできます。例えば「シンガポール」など。

レコードに地域(例:シンガポール)を指定

ここでは制限を設けません。

このレコードにはクライアント制限を設けない

ここは解決結果で、直接 IP アドレスを入力できます。

解決結果の IP アドレスを直接入力

OpenResty Edge のゲートウェイクラスターを選択することもできます。

OpenResty Edge のゲートウェイクラスターを解決結果として選択

例えば「aws-london」など。

aws-london ゲートウェイクラスターを選択

これはレコードの有効期限です。

レコードの有効期限(TTL)を設定

異なる単位を選択できます。

レコードの TTL の時間単位を選択

これはプライマリレコードとバックアップレコードの切り替えスイッチです。プライマリレコードがない場合やプライマリレコードのヘルスチェックが失敗した場合、バックアップレコードが使用されます。

プライマリレコードとバックアップレコードを切り替え

OpenResty Edge は DNS レコードのヘルスチェックもサポートしており、利用不可能な結果を返すことを防ぎます。

DNS レコードのヘルスチェックを有効化

設定が完了したら「Add」ボタンをクリックします。

Add をクリックして DNS レコードを保存

dig で DNS レコードをテストする方法

次に、先ほど設定した DNS レコード内のゲートウェイノードの IP アドレスを確認します。

設定した DNS レコード内のゲートウェイノード IP を確認

IP アドレスが .240 で終わっていることがわかります。

.240 で終わるゲートウェイノード IP

次に、dig コマンドを使用して DNS クエリを実行します。

返された結果が、先ほど選択したゲートウェイクラスター内のゲートウェイノードの IP アドレスであることがわかります。

dig の出力が選択したゲートウェイクラスターと一致することを確認

複数の結果を返す必要がある場合は、複数の DNS レコードを追加できます。

再度「Add」ボタンをクリックします。

2 つ目の DNS レコードを追加

ドメイン名「blog」を入力します。

2 つ目のレコードにドメイン名 blog を入力

別のゲートウェイクラスター「aws-us-east」を選択します。

aws-us-east ゲートウェイクラスターを選択

このレコードを追加するためにクリックします。

2 つ目の DNS レコードを保存

これで「blog.openresty.net」に関する 2 つの DNS レコードができました。

blog.openresty.net が 2 つの DNS レコードに解決されるようになった

次に、再び「Gateway Cluster」インターフェイスに移動し、「aws-us-east」ゲートウェイクラスターの IP アドレスを確認します。

この IP アドレスは .84 で終わっています。

.84 で終わる aws-us-east ゲートウェイクラスター IP

そして再度「dig」コマンドを使用してクエリを実行します。

結果が正しいことがわかります。

dig が 2 つ目のレコードの期待どおりの解決結果を確認

すべての DNS レコードを手動で作成する必要はありません。このボタンをクリックすると、位置情報に基づいて DNS プランを自動生成できます。

位置情報に基づいて DNS プランを自動生成

ドメインを OpenResty Edge の権威 DNS サーバーに委任する方法

次に、DNS の設定について引き続き説明します。

「Authoritative DNS Servers」を選択します。

Authoritative DNS Servers タブを開く

ここでの設定が SOA レコードの結果となります。

SOA レコードの結果を設定

次に、あるドメインレジストラを例に、ドメインのネームサーバーを OpenResty Edge に委任する方法を説明します。以下のスクリーンショットでは Google Domains を使用していますが、このサービスは現在提供を終了し Squarespace へ移行しました。グルーレコードとカスタムネームサーバーの設定手順は、どのレジストラでもほぼ同じです。最新のレジストラ別手順については、OpenResty Edge のドキュメント(例:Namesilo)をご覧ください。

あるドメインレジストラを例にネームサーバーを OpenResty Edge へ委任

「DNS」タブを選択します。

レジストラで DNS タブを選択

「Global DNS settings」を選択します。

Global DNS settings を開く

グルーレコードを追加し、ドメイン名と OpenResty Edge ノードの IP アドレスを入力します。

グルーレコードを追加し、ドメイン名と OpenResty Edge ノード IP を入力

前のページに戻ります。

前のページに戻る

次に「Custom name servers」を選択します。

Custom name servers を選択

「manage name servers」をクリックします。

ネームサーバー管理ダイアログを開く

先ほど「Global DNS Settings」で設定したドメイン名を入力します。

Global DNS Settings で設定したネームサーバーを入力

最後にこのボタンをクリックして、カスタムドメインネームサーバーに切り替えます。

カスタムドメインネームサーバーに切り替え

これでレジストラ側から OpenResty Edge への委任が完了しました。

レジストラ側でネームサーバーの委任が完了

OpenResty Edge 管理インターフェースに戻り、DNS の設定を見てください。

この「User Group」はアクセス制御に使用されます。各 DNS アプリケーションを誰が管理できるかを制限する詳しい手順については、OpenResty Edge の Admin コンソールで DNS アプリケーションのアクセス権限を管理するをご覧ください。

DNS アクセス制御に使用する User Group タブ

よくある質問

OpenResty Edge には権威 DNS サーバーが内蔵されていますか?

はい。OpenResty Edge には権威 DNS サーバーが内蔵されています。すべてのレコードは Admin コンソールで追加・管理でき、各レコードは OpenResty Edge のゲートウェイクラスターに直接解決させることができます。

OpenResty Edge はクライアントの地域に応じて異なる解決結果を返せますか?

はい。各 DNS レコードは地域または CIDR レンジで絞り込めるため、ユーザーを最寄りのゲートウェイクラスターへ誘導できます。また、レコードを 1 件ずつ手動で追加する代わりに、位置情報に基づく DNS プランを自動生成することもできます。

OpenResty Edge は DNS フェイルオーバーをどのように処理しますか?

各レコードはプライマリまたはバックアップに設定でき、OpenResty Edge はターゲットを継続的にヘルスチェックします。プライマリの結果が存在しない、またはヘルスチェックに失敗した場合はバックアップレコードが返され、到達可能なアドレスのみが返されます。

OpenResty Edge について

OpenResty Edge は、マイクロサービスと分散トラフィックアーキテクチャ向けに設計された多機能ゲートウェイソフトウェアで、当社が独自に開発しました。トラフィック管理、プライベート CDN 構築、API ゲートウェイ、セキュリティ保護などの機能を統合し、現代のアプリケーションの構築、管理、保護を容易にします。OpenResty Edge は業界をリードする性能と拡張性を持ち、高同時接続・高負荷シナリオの厳しい要求を満たすことができます。K8s などのコンテナアプリケーショントラフィックのスケジューリングをサポートし、大量のドメイン名を管理できるため、大規模ウェブサイトや複雑なアプリケーションのニーズを容易に満たすことができます。

このチュートリアルがお役に立ちましたら、本ブログサイトや YouTube チャンネル のチャンネル登録をぜひお願いいたします。ありがとうございます!

著者について

章亦春(Zhang Yichun)は、オープンソースの OpenResty® プロジェクトの創始者であり、OpenResty Inc. の CEO および創業者です。

章亦春(GitHub ID: agentzh)は中国江蘇省生まれで、現在は米国ベイエリアに在住しております。彼は中国における初期のオープンソース技術と文化の提唱者およびリーダーの一人であり、Cloudflare、Yahoo!、Alibaba など、国際的に有名なハイテク企業に勤務した経験があります。「エッジコンピューティング」、「動的トレーシング」、「機械プログラミング」の先駆者であり、22 年以上のプログラミング経験と 16 年以上のオープンソース経験を持っております。世界中で 4000 万以上のドメイン名を持つユーザーを抱えるオープンソースプロジェクトのリーダーとして、彼は OpenResty® オープンソースプロジェクトをベースに、米国シリコンバレーの中心部にハイテク企業 OpenResty Inc. を設立いたしました。同社の主力製品である OpenResty XRay動的トレーシング技術を利用した非侵入型のプロファイリングおよびトラブルシューティングツール)と OpenResty Edge(マイクロサービスおよび分散トラフィックに最適化された多機能ゲートウェイソフトウェア)は、世界中の多くの上場企業および大企業から高い評価を得ております。OpenResty 以外にも、章亦春は Linux カーネル、Nginx、LuaJITGDBSystemTapLLVM、Perl など、複数のオープンソースプロジェクトに累計 100 万行以上のコードを寄与し、60 以上のオープンソースソフトウェアライブラリを執筆しております。

翻訳

英文版の原文と日本語訳版(本文)をご用意しております。読者の皆様による他の言語への翻訳版も歓迎いたします。全文翻訳で省略がなければ、採用を検討させていただきます。心より感謝申し上げます!