Azure DNS【Azureを使いこなしたい! 9】
0. 目次
コンテンツ
【今回の内容】
今回は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)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応答を確認出来ました。
※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の構成は完了です。
※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