Azure DNS【Azureを使いこなしたい! 9】

【今回の内容】

今回はAzure DNSを用いて、IISサーバ上に作成したwebページをインターネットで公開してみたいと思います。

DNSとは、IPアドレスとドメイン名を関連付けたレコードセットを管理しているパブリックの権威サーバーであり、webサーバーやメールサーバーなどインターネットで公開させる場合に使用します。権威サーバーは、自分が管理する範囲(ゾーン)を、ルートを頂点に分担しており、範囲外の問い合わせがあれば委任先の権威サーバーの情報を応答します。

Azure DNSでは、DNSサーバーを作成することなく、この機能を行ってくれます。また、ロールベースのアクセス制御、アクティビティログ、リソースロックを利用することで、アクセスの制御や監視が出来ます。

AzureでのAzure DNSはPaaSに分類されます。

【前提事項】

1.ドメイン レジストラーにてカスタムドメイン名(インターネットとDNSで参照できるドメイン名)を作成しておくこと。

2.以下のAzure VMを構築していること。

クライアントPC(今回はWindows 10を用いました)

1.検証用Webサーバーの構築

1-1.IIS Webサーバーの構築

(1)Azure  portalの[仮想マシンの作成]にて、IIS Web用サーバーを作成します。受信ポート[HTTP(80)、HTTPS(443)、RDP(3389)]を選択します。その他Azure VM作成の詳細は、Azureを使いこなしたい! 1 ~仮想マシン Windows 10~を参照してください。

(2)IIS Web用サーバーのサーバーマネージャーにて、[役割と機能の追加]をクリックします。

(3)[次へ]をクリックします。

(4)デフォルトのままです。 → [次へ]をクリックします。

(5)デフォルトのままです。 → [次へ]をクリックします。

(6)<A>[Webサーバー( IIS)]にチェックを入れます。 → <B>[機能の追加]をクリックします。 → <C>[次へ]をクリックします。

(7)デフォルトのままです。 → [次へ]をクリックします。

(8)[次へ]をクリックします。

(9)デフォルトのままです。 → [次へ]をクリックします。

(10)<A>チェックを入れます。 → <B>[はい]をクリックします。 → <C>[インストール]をクリックします。

※今回は検証のため、自動で再起動するようにしました。状況に応じてチェックを入れてください。

(11)[閉じる]をクリックします。

(12)IIS Webサーバーのサーバーマネージャーを開きます。 → <A>[ローカルサーバー]をクリックします。 → <B>[有効]をクリックします。

※IEセキュリティを無効にしておきます。

(13)<A>[オフ]にチェックを入れます。 → <B>[OK]をクリックします。

(14)<A>[Internet Explorer]をクリックします。 → <B>アドレスバーに[http://localhost/]と入力します。 → Enterキーを押します。 →  IISのデフォルトWebページが表示されます。

これで、IIS Webサーバーの構築は完了です。

2.Azure DNSの構築

2-1.DNSゾーンの作成

(1)Azure portalにて、<A>検索バーに[DNSゾーン]と入力します。 → <B>[DNSゾーン]をクリックします。

(2)[作成]または[DNSゾーンの作成]をクリックします。

(3)<A>[サブスクリプション]を選択します。[リソースグループ]を選択または新規作成します。 → <B>[名前]を入力します。 → <C>[次:タグ>]をクリックします。

※[名前]は、カスタムドメイン名を入力します。

(4)[次:確認および作成>]をクリックします。

※今回は検証のため、デフォルトのままとしました。

(5)[作成]をクリックします。

(6)デプロイが行われます。 → [リソースに移動]をクリックします。

(7)DNSゾーンが作成されました。

※NSとSOAレコードセットは自動的に作成されます。

2-2.DNSレコードの作成

(1)DNSゾーンのブレードを開きます。 → [レコードセット]をクリックします。

(2)<A>[名前]を入力します。 → <B>[種類]を選択します。 → <C>デフォルトのままです。 → <D>[IPアドレス]を入力します。 → <E>[OK]をクリックします。

(3)レコードセットが追加されました。

2-3.DNSゾーンの確認

※コマンドプロンプトにて[nslookup]を使用して確認します。

(1)<A>クライアントPCの[スタートメニュー]で右クリックします。 → <B>[ファイル名を指定して実行]をクリックします。

(2)<A>[cmd]と入力します。 → <B>[OK]をクリックします。

(3)[nslookup]+[半角スペース]+[ホスト名]+[半角スペース]+[ネームサーバー]を入力します。 → Enterキーを押します。

※ネームサーバーは1、2、3、4のどれを入力しても良いです。

(4)ホスト名が名前解決されました。

※まだ、カスタムドメイン名のネームサーバーはドメインレジストラーレコードのままなので、ゾーンに割り当てられたAzure DNSネームサーバーに送られた場合のみ、このゾーンに対するDNSクエリが解決されます。

2-4.ドメインの委任

※実際の運用ドメインの場合は、 ドメインレジストラーのネームサーバーレコードをAzure DNSのネームサーバーに置き換えて、インターネット上でホスト名を解決してもらいます。

今回は、お名前.comというドメインレジストラーでの設定手順を簡単に記載します。

(1)[ネームサーバーの設定]をクリックします。

(2)<A>上タブ[他のネームサーバーを利用]をクリックします。 → <B>[Azure DNSのネームサーバー]を入力します。 → <C>[確認画面へ進む]をクリックします。

※[Azure DNSのネームサーバー]は4つ全て入力します。コピー&ペーストすると間違えずに済みますが、最後の.(ドット)を消さないと確認画面へ進めませんでした。

(3)[設定する]をクリックします。

これで、お名前.comでのAzure DNSのネームサーバーへの置き換えは完了です。

3.エイリアスレコード

3-1. エイリアスレコードの作成

※エイリアスレコードセットは[サービスインスタンス]を参照しているため、パブリックIPアドレスが変更された場合でも、シームレスに自動更新されてDNSの名前解決が出来ます。今回は、[Azure パブリックIPリソース]を参照するように設定します。

(1)[DNSゾーン]のブレードを開きます。 → [レコードセット]をクリックします。

(2)<A>先ほど作成したWebサーバーの[名前]を入力します。 → <B>[種類]を選択します。 → <C>[はい]にチェックを入れます。 → <D>デフォルトのままです。 → <E>[サブスクリプション]を選択します。 → <F>[Azureリソース]を選択します。 → <G>デフォルトのままです。 → <H>[OK]をクリックします。

※[Azureリソース]は、先ほど作成したWebサーバーの[パブリックIPアドレスリソース]を選択します。Webサーバーの[パブリックIPアドレスリソース]を確認するには、4-1.静的パブリックIPアドレスとレコードセットの作成(4)~(5)を参照してください。

(3)レコードセットが追加されました。

(4)クライアントPCにて、<A>[Microsoft Edge]をクリックします。 → <B>アドレスバーに[http://先ほど作成したWebサーバーのFQDN/]を入力します。 → Enterキーを押します。 → WebサーバーのWebページが確認出来ました。

これで、エイリアスレコードの作成は完了です。

3-3.エイリアスレコードの確認

※コマンドプロンプトにて[nslookup][psping]を使用して確認します。

[PsPing]の使用方法については、PsPingの使用方法を参照してください。

(1)<A>クライアントPCの[スタートメニュー]で右クリックします。 → <B>[ファイル名を指定して実行]をクリックします。

(2)<A>[cmd]と入力します。 → <B>[OK]をクリックします。

(3)[cd]+[半角スペース]+[PSToolsの展開先]を入力します。 → Enterキーを押します。 → [psping]+[半角スペース]+[Webサーバーのホスト名]+[:]+[Webサーバーの開放しているポート番号]を入力します。 → Enterキーを押します。

[nslookup]+[半角スペース]+[Webサーバーのホスト名]を入力します。 → Enterキーを押します。

(4)Azure Portalにて、Webサーバーのブレードを開きます。 → <A>[停止]をクリックします。 → <B>[OK]をクリックします。

(5)Webサーバーが停止したら、[開始]をクリックします。パブリックIPアドレスが先ほどと変わっていることを確認します。

(6)クライアントPCのコマンドプロンプトに戻り、[ipconfig]+[半角スペース]+[/flushdns]を入力します。 → DNSリゾルバーキャッシュをクリアすることが出来ます。

(7)[nslookup]+[半角スペース]+[Webサーバーのホスト名]を入力します。 → Enterキーを押します。

[psping]+[半角スペース]+[Webサーバーのホスト名]+[:]+[Webサーバーの開放しているポート番号]を入力します。 → Enterキーを押します。 → パブリックIPアドレスが変わっても、エイリアスレコードのおかげで正引きでの名前解決とPsPing応答を確認出来ました。

1

※PsPingのダウンロードや使用方法について簡単に手順を記載します。詳細はこちらを参照してください。【参考】マイクロソフト公式HP PsPing – Windows Sysinternals | Microsoft Docs

(1)[PsTools]をクリックします。

(2)[フォルダーに表示]をクリックします。

(3)[エクスプローラー]が開きます。 → <A>[PSTools]を右クリックします。 → <B>[すべて展開]をクリックします。

(4)<A>[参照]をクリックして展開先を指定します。 → <B>[展開]をクリックします。

(5)指定した展開先にPSToolsが展開されます。

(6)<A>[スタートメニュー]で右クリックします。 → <B>[ファイル名を指定して実行]をクリックします。

(7)<A>[cmd]と入力します。 → <B>[OK]をクリックします。

(8)<A>[cd]+[半角スペース]+[PSToolsの展開先]を入力します。 → Enterキーを押します。 → <B>[psping]+[半角スペース]+[相手のホスト名]+[:]+[相手の開放しているポート番号]を入力します。 → Enterキーを押します。

(9)[Agree]をクリックします。

※初回のみです。

(10)相手からの応答がありました。

4.逆引きDNSの構成

4-1.静的パブリックIPアドレスとレコードセットの作成

(1)<A>Azure Portalの検索バーに[パブリックIPアドレス]と入力します。 → <B>[パブリックIPアドレス]をクリックします。

(2)[作成]をクリックします。

(3)<A>デフォルトのままです。 → <B>[SKU]を選択します。 → <C>[名前]を入力します。 → <D>[静的]を選択します。 → <E>[DNS名ラベル]を入力します。 → <F>[サブスクリプション][場所]を選択します。[リソースグループ]を選択または新規作成します。 → <G>[作成]をクリックします。

※[SKU]は、使用されているロードバランサーのSKUと一致させる必要があります。

(4)Webサーバーのブレードを開きます。 → <A>[ネットワーク]をクリックします。 → <B>[ネットワークインターフェイス]をクリックします。

(5)<A>[IP構成]をクリックします。 → <B>[パブリックIPアドレス]をクリックします。

(6)<A>[先ほど作成したパブリックIPアドレス]を選択します。 → <B>[保存]をクリックします。

(7)[DNSゾーン]のブレードを開きます。 → Webサーバーの[レコードセット]をクリックします。

(8)<A>先ほど作成したパブリック[IPアドレス]を入力します。 → <B>[いいえ]をクリックします。 → <C>[保存]をクリックします。

これで、静的パブリックIPアドレスをWebサーバーに付与し、レコードセットの作成が完了しました。

4-2.Azure PowerShell(Azモジュール)を用いた逆引きDNSの構成

※逆引きDNSの構成は、Azure portalによる操作はサポートされていない(2022/9現在)ため、今回は Azure PowerShell(Azモジュール)を用います。インストール方法は、Azure PowerShell(Azモジュール)のインストールを参照してください。

(1)<A>[スタートメニュー]で右クリックします。 → <B>[Windows PowerShell(管理者)]をクリックします。

(2)[Connect-AzAccount]を入力し、サインインします。

(3)以下のコマンドにて、逆引きDNSの構成を行います。

[ $pip = Get-AzPublicIpAddress -Name “静的パブリックIPアドレス” -ResourceGroupName “リソースグループ名
>> $pip.DnsSettings.ReverseFqdn = “レコードセットの名前+カスタムドメイン名
>> Set-AzPublicIpAddress -PublicIpAddress $pip]を入力します。 → Enterキーを押します。

※コマンドプロンプトにて[nslookup][psping]を使用して確認します。

(4)<A>クライアントPCの[スタートメニュー]で右クリックします。 → <B>[ファイル名を指定して実行]をクリックします。

(5)<A>[cmd]と入力します。 → <B>[OK]をクリックします。

(6)[nslookup]+[半角スペース]+[Webサーバーの静的パブリックIPアドレス]を入力します。 → Enterキーを押します。

[cd]+[半角スペース]+[PSToolsの展開先]を入力します。 → Enterキーを押します。 → [psping]+[半角スペース]+[Webサーバーの静的パブリックIPアドレス]+[:]+[Webサーバーの開放しているポート番号]を入力します。 → Enterキーを押します。

※正引きの確認も行いました。

これで、Azure PowerShell(Azモジュール)を用いた逆引きDNSの構成は完了です。

Copy to Clipboard

1

※Azure PowerShell(Azモジュール)のインストールや使用方法について簡単に手順を記載します。今回はWindows10のWindows PowerShellにて行いましたが、PowerShellでもコマンドの入力内容は同じです。PowerShellをインストールしたい場合は、こちらを参照してください。PowerShell7のインストール

(1)<A>[スタートメニュー]で右クリックします。 → <B>[Windows PowerShell]をクリックします。

(2)[$PSVersionTable.PSVersion]を入力します。 → Enterキーを押します。

※現在のPowerShellのバージョンを確認します。 バージョン7.0または 7.1の場合は、更新バージョンをインストールすることをお勧めします。【参考】マイクロソフト公式HP PowerShell バージョン 7.0 および 7.1 を更新して、リモート コード実行の脆弱性から保護する | Azure の更新情報 | Microsoft Azure

(3)[Get-ExecutionPolicy]を入力します。 → Enterキーを押します。

※PowerShellでスクリプト実行するためには設定値が[RemoteSigned]以下の制限になっている必要があります。

(4)<A>[Set-ExecutionPolicy]+[半角スペース]+[RemoteSigned]を入力します。 → <B>[y]を入力します。 → Enterキーを押します。

(5)<A>[Install-Module]+[半角スペース]+[-Name]+[半角スペース]+[Az]+[半角スペース]+[-Scope]+[半角スペース]+[CurrentUser]を入力します。 → <B>[y]を入力します。 → Enterキーを押します。

※システム上のすべてのユーザーに対してモジュールをインストールするには、[Windows PowerShell(管理者として実行)]にて、[Install-Module -Name Az -AllowClobber -Scope AllUsers]を入力します。

(6)[y]を入力します。 → Enterキーを押します。

(7)インストールが行われます。

(8)インストールが完了すると、コマンドを入力出来るようになります。

(9)[Connect-AzAccount]を入力します。

(10)<A>[アカウント名]を入力します。 → <B>[次へ]をクリックします。

※アカウント名は、[メールアドレス]、[電話番号]、[Skype]のいずれかを入力します。

(11)<A>[パスワード]を入力します。 → <B>[サインイン]をクリックします。

(12)サインイン出来ました。

(13)[Disconnect-AzAccount]を入力します。 → サインアウト出来ました。

※Wingetを使用したPowerShell7のインストールについて簡単に手順を記載します。今回はWindows10にて行いました。(PowerShell7はWindowsPowerShell5.1のサイド バイ サイド バージョンであり、アップグレードをすることにはなりません。)

(1)<A>[スタートメニュー]で右クリックします。 → <B>[Windows PowerShell]をクリックします。

(2)<A>[winget]+[半角スペース]+[search]+[半角スペース]+[Microsoft.PowerShell]を入力します。 → <B>[y]を入力します。 → Enterキーを押します。

※[y]を入力することで、wingetのインストールが行われます。

※文字化けして、以下の画面のようになることがありますが、同内容なので、[y]を入力します。

(3)[winget]+[半角スペース]+[install]+[半角スペース]+[–id]+[半角スペース]+[Microsoft.PowerShell]+[半角スペース]+[–source]+[winget]を入力します。 → Enterキーを押します。

※今回は7.2.6.0バージョンを選択しました。

(4)インストールが行われます。

(5)[スタートメニュー]をクリックします。 → PowerShell7が表示されました。

※1 WingetをMicrosoft Storeからインストールするには、こちらを参照してください。【参考】マイクロソフト公式HP Use the winget tool to install and manage applications | Microsoft Learn

※2 MSIパッケージ、ZIPパッケージ、.NETグローバルツール、Microsoft Storeパッケージからインストールしたい場合は、こちらを参照してください。なお、アップデートする際は、最初にPowerShellをインストールしたときと同じ方法を使用することが推奨されています。【参考】マイクロソフト公式HP Windows への PowerShell のインストール – PowerShell | Microsoft Learn

BLOG POSTS