この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
こんにちは。大阪オフィスの林です。
2020年11月9日(月)のアナウンスにて「Amazon FSx for Windows File ServerがDNSエイリアスを使用したファイルシステムへのアクセスをサポートするようになりました。」と発表がありました。公式ページはこちら
さっそく試してみました!
どこが変わった?
まずはAWSマネージメントコンソール上の見た目でどこが変わったのか見てみます。
Amazon FSx for Windows File Server作成時
Amazon FSx for Windows File Server作成後のダッシュボード
見て頂いてお分かりになるように「DNSエイリアス」はオプション設定の扱い且つデフォルトでは何も設定されていませんので、別に設定しなくてもAmazon FSx for Windows File Server自体は使うことは出来ます。
また、Amazon FSx for Windows File Serverの作成時/作成後、いずれのタイミングでもDNSエイリアスの設定を行うことができます。
で、何が嬉しいのか?
本アップデートの活用場所としてあげられるのは移行シーンです。
移行前の既存ストレージのDNS名と、同じDNS名を引き継ぐ(同じDNS名を設定する)ことが出来るため、例えば、サーバのアプリケーションでストレージの向き先を固定してしまっている場合などは、比較的効率的にストレージの移行が出来るようになります。文章だと少し伝わり辛いので図にまとめてみました。
いままで
システム移行のシーンを考えた時、例えばアプリケーションやツールにストレージの接続先の情報をDNS名として埋め込んでしまっている場合、今までは、Amazon FSx for Windows File Server独自且つ自動で作成されるDNS名への切り替えが必要でした。(CNAMEレコードを使えばやりようは考えられますが、、、)
これから
今回のアップデートで設定できるようになった「DNSエイリアス」を使用すると、アプリケーションやツールにストレージの接続先の情報をDNS名として埋め込んでしまっている場合や、ファイルシステムストレージをオンプレミスからAmazon FSxに移行するときなど既存のDNS名を引き続き使用してAmazon FSxにアクセスさせることができるようになります。
やってみた
それでは「DNSエイリアス」の設定をやっていきたいと思います。 本記事では、予め作成済みのAmazon FSx for Windows File Serverに対してこちらのチュートリアルに基づきながら「DNSエイリアス」の設定をしていきたいと思います!
Amazon FSxのダッシュボードから作成済みのファイルシステムを選択します。
「ネットワークとセキュリティ」から「DNSエイリアス」の「管理」を選択します。
エイリアスに指定するFQDN名を入力し「関連付け」を選択します。
こちらのドキュメントによると、作成には最大2.5分掛かるそうです。少々待ちましょう。
エイリアスがファイルシステムに関連付けられる、または関連付けが解除されるまで、最大2.5分かかります。
「ステータス」が「利用可能」になったことを確認し「閉じる」を選択します。
「DNSエイリアス」にエイリアス名が設定されていることを確認します。
ちなみにこのタイミングでサーバからDNSエイリアスに対してファイルシステムをアタッチしようとしてもうまくいきません。設定が足りていないからです。引き続き以降の作業を続けます。
PS C:\Windows\system32> net use Z: \\test-alias-1.my-test-domain.com\share
システム エラー 53 が発生しました。
ネットワーク パスが見つかりません。
PS C:\Windows\system32>
Kerberosのサービスプリンシパル名(SPN)を構成する
※ここからの手順は、Amazon FSxファイルシステムが参加しているActiveDirectoryに参加しているWindowsインスタンスから作業を実施しています※
以降の作業でActiveDirectory関連の作業を行うため、管理者としてPowerShellを開き、PowerShell ActiveDirectoryモジュールをインストールします。
PS C:\Windows\system32> Install-WindowsFeature RSAT-AD-PowerShell
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {リモート サーバー管理ツール, Windows Powe...
PS C:\Windows\system32>
既存のSPNを見つけて削除します。(SPNは、一度に1つのActiveDirectoryコンピューターオブジェクトにのみにしか関連付けることができないため)
次のコマンドを使用して既存のSPNを検索し、ファイルシステムに関連付けたDNSエイリアスに置き換えます。(下記は既存のSPNが無かった場合の出力結果です。)
※チュートリアルの手順は移行を前提とした手順となっているため、既存ファイルシステムのSPNを検索して削除する手順となっています。
PS C:\Windows\system32> $ALIAS = "test-alias-1.my-test-domain.com"
PS C:\Windows\system32> SetSPN /Q ("HOST/" + $ALIAS)
ドメイン DC=my-test-domain,DC=com を確認しています
そのような SPN は見つかりませんでした。
PS C:\Windows\system32> SetSPN /Q ("HOST/" + $ALIAS.Split(".")[0])
ドメイン DC=my-test-domain,DC=com を確認しています
そのような SPN は見つかりませんでした。
PS C:\Windows\system32>
上記でSPNが検出された場合、既存のSPNを削除します。alias_fqdn
は「DNSエイリアス」を指定し、file_system_DNS_name
に自動で割り当てられたデフォルトのDNS名を指定します。
$Alias = "alias_fqdn"
$FSxDnsName = "file_system_dns_name"
$FileSystemHost = (Resolve-DnsName ${FSxDnsName} | Where Type -eq 'A')[0].Name.Split(".")[0]
$FSxAdComputer = (Get-AdComputer -Identity ${FileSystemHost})
SetSPN /D ("HOST/" + ${Alias}) ${FSxAdComputer}.Name
SetSPN /D ("HOST/" + ${Alias}.Split(".")[0]) ${FSxAdComputer}.Name
Amazon FSxファイルシステムのActiveDirectoryコンピューターオブジェクトにSPNを設定します。
PS C:\Windows\system32> $FSxDnsName = "amznfsxt2nfjd7m.my-test-domain.com"
PS C:\Windows\system32> $ALIAS = "test-alias-1.my-test-domain.com"
PS C:\Windows\system32> $FileSystemHost = (Resolve-DnsName $FSxDnsName | Where Type -eq 'A')[0].Name.Split(".")[0]
PS C:\Windows\system32> $FSxAdComputer = (Get-AdComputer -Identity $FileSystemHost)
PS C:\Windows\system32>
PS C:\Windows\system32> Set-AdComputer -Identity $FSxAdComputer -Add @{"msDS-AdditionalDnsHostname"="$Alias"}
PS C:\Windows\system32> SetSpn /S ("HOST/" + $Alias.Split('.')[0]) $FSxAdComputer.Name
ドメイン DC=my-test-domain,DC=com を確認しています
CN=amznfsxt2nfjd7m,OU=FSx,OU=AWS Reserved,DC=my-test-domain,DC=com の ServicePrincipalNames を登録しています
HOST/test-alias-1
更新されたオブジェクト
PS C:\Windows\system32> SetSpn /S ("HOST/" + $Alias) $FSxAdComputer.Name
ドメイン DC=my-test-domain,DC=com を確認しています
CN=amznfsxt2nfjd7m,OU=FSx,OU=AWS Reserved,DC=my-test-domain,DC=com の ServicePrincipalNames を登録しています
HOST/test-alias-1.my-test-domain.com
更新されたオブジェクト
PS C:\Windows\system32>
新しいSPNがDNSエイリアス用に構成されていることを確認します。
PS C:\Windows\system32> $FSxDnsName = "amznfsxt2nfjd7m.my-test-domain.com"
PS C:\Windows\system32> $FileSystemHost = (Resolve-DnsName ${FSxDnsName} | Where Type -eq 'A')[0].Name.Split(".")[0]
PS C:\Windows\system32> $FSxAdComputer = (Get-AdComputer -Identity ${FileSystemHost})
PS C:\Windows\system32> SetSpn /L $FSxAdComputer.Name
次の項目に登録されている CN=amznfsxt2nfjd7m,OU=FSx,OU=AWS Reserved,DC=my-test-domain,DC=com:
MSServerClusterMgmtAPI/test-alias-1.my-test-domain.com
MSServerClusterMgmtAPI/TEST-ALIAS-1
MSClusterVirtualServer/test-alias-1.my-test-domain.com
MSClusterVirtualServer/TEST-ALIAS-1
HOST/test-alias-1.my-test-domain.com
HOST/TEST-ALIAS-1
MSServerClusterMgmtAPI/amznfsxt2nfjd7m.my-test-domain.com
MSServerClusterMgmtAPI/amznfsxt2nfjd7m
MSClusterVirtualServer/amznfsxt2nfjd7m.my-test-domain.com
MSClusterVirtualServer/amznfsxt2nfjd7m
HOST/amznfsxt2nfjd7m.my-test-domain.com
HOST/amznfsxt2nfjd7m
PS C:\Windows\system32>
ファイルシステムのDNSCNAMEレコードを作成する
ファイルシステムのSPNを適切に設定した後、既存のファイルシステムに解決されていたDNSレコードを、Amazon FSxファイルシステムのデフォルトのDNSレコードに置き換えることで、Amazon FSxに切り替えることができます。
以降の作業でDNSCNAMEレコードを更新するため、PowerShellDNSサーバーモジュールをインストールします。
PS C:\Windows\system32> Install-WindowsFeature RSAT-DNS-Server
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {DNS サーバー ツール}
PS C:\Windows\system32>
既存のDNSCNAMEレコードをAmazon FSxファイルシステムのDNSレコードに切り替えます。
PS C:\Windows\system32> $ALIAS = "test-alias-1.my-test-domain.com"
PS C:\Windows\system32> $FSxDnsName = "amznfsxt2nfjd7m.my-test-domain.com"
PS C:\Windows\system32> $AliasHost=$Alias.Split('.')[0]
PS C:\Windows\system32> $ZoneName=((Get-WmiObject Win32_ComputerSystem).Domain)
PS C:\Windows\system32> $DnsServerComputerName = (Resolve-DnsName $ZoneName -Type NS | Where Type -eq 'A' | Select -ExpandProperty Name)[0]
PS C:\Windows\system32>
PS C:\Windows\system32> Add-DnsServerResourceRecordCName -Name $AliasHost -ComputerName $DnsServerComputerName -HostNameAlias $FSxDnsName -ZoneName $ZoneName
PS C:\Windows\system32>
上記でAmazonFSxファイルシステムで設定した「DNSエイリアス」のDNSCNAME値が追加されました。これを以ってDNSエイリアスを使用してファイルシステムにアクセスできます。 「DNSエイリアス」でファイルシステムをアタッチしてみます。
PS C:\Windows\system32> net use Z: \\test-alias-1.my-test-domain.com\share
コマンドは正常に終了しました。
PS C:\Windows\system32>
Zドライブでファイルシステムがマウントされていることが確認できました。
まとめ
多少手間と時間が掛かる作業ではあるものの、DNSエイリアスを使用したファイルシステムのアタッチができました。実際には移行の要件とのバランスと取りながら、ケースバイケースに応じた移行方法を検討・採用頂ければと思います。
以上、大阪オフィスの林がお送りしました!