AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Amazon が提供する DNS 名を AWS マネージド Microsoft AD と接続されている Linux マシンで使用して Amazon EFS をマウントする方法を教えてください。
Microsoft Active Directory で AWS Directory Service を使用しています。Amazon Elastic Compute Cloud (Amazon EC2) の Linux インスタンスを Active Directory ドメインに参加させたところ、EFS DNS 名を使用して Amazon Elastic File System (Amazon EFS) をマウントすることができません。
簡単な説明
AWS マネージド Microsoft AD は、すべての DNS リクエストを Amazon Virtual Private Cloud (Amazon VPC) で使用している Amazon 提供 DNS サーバーの IP アドレスに転送します。DNS サーバーは、Amazon Route 53 のプライベートホストゾーンに設定した名前を解決します。Route 53 のプライベートホストゾーンを使用していない場合は、AWS マネージド Microsoft AD は DNS リクエストをパブリック DNS サーバーに転送します。その結果、DNS リクエストはパブリック IP アドレスにのみ解決されます。
Amazon EFS ファイルシステムのドメイン名は、同じ VPC 内のマウントターゲットの IP アドレスに自動的に割り当てられます。DNS サーバーをデフォルトの Amazon 提供 DNS から変更すると、ファイルシステムは IP アドレスを解決できず、DNS マウントを行うことはできません。
解決策
DNS サーバーを設定する
次の例では、AWS マネージド Microsoft AD を使用しています。DNS サーバーは 172.31.28.100 と 172.31.4.147 です。ファイルシステムは同じ仮想プライベートクラウド (VPC) にあり、マウントターゲットは 172.31.47.69 です。
次の手順を実行します。
-
Linux EC2 インスタンスが Amazon EFS マウントターゲット の IP アドレス 172.31.47.69 に接続できることを確認するには、次のコマンドを実行します。
nc -vz 172.31.47.69 2049Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 172.31.47.69:2049. Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds. -
EC2 Linux サーバーで DNS 名を使用してファイルシステムをマウントします。
sudo mount -t efs -o tls fs-123456:/ efs df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 475M 0 475M 0% /dev tmpfs tmpfs 483M 0 483M 0% /dev/shm tmpfs tmpfs 483M 516K 483M 1% /run tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup /dev/xvda1 xfs 8.0G 1.6G 6.5G 19% / tmpfs tmpfs 97M 0 7M 0% /run/user/0 tmpfs tmpfs 97M 0 97M 0% /run/user/1000 127.0.0.1:/ nfs4 8.0E 0 8.0E 0% /home/ec2-user/efs次に、ファイルシステムをアンマウントします。
sudo umount /efsEC2 Linux サーバーでは、/etc/resolv.conf ファイルで Amazon 提供 DNS とネームサーバーを指定します。
cat /etc/resolv.conf ; generated by /usr/sbin/dhclient-script search eu-west-2.compute.internal options timeout:2 attempts:5 nameserver 172.31.0.2 -
AWS マネージド Microsoft AD を統合し、EC2 Linux サーバーでアクティブディレクトリの DNS サーバーを設定するには、次のコマンドを実行します。
echo 'supersede domain-name-servers 172.31.28.100, 172.31.4.147;' | sudo tee --append /etc/dhcp/dhclient.conf echo 'supersede domain-search "rachel.com";' | sudo tee --append /etc/dhcp/dhclient.conf sudo dhclient -r sudo dhclient -
/etc/resolv.conf ファイルに正しい DNS サーバーが設定されていることを確認するには、次のコマンドを実行します。
cat /etc/resolv.conf options timeout:2 attempts:5 ; generated by /usr/sbin/dhclient-script search rachel.com. eu-west-2.compute.internal nameserver 172.31.28.100 nameserver 172.31.4.147 -
次のコマンドを実行し、EFS DNS 名が NXDOMAIN を返すことを確認します。
dig fs-123456.efs.eu-west-2.amazonaws.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> fs-123456.efs.eu-west-2.amazonaws.com ;; global options: +cmd出力例
;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 57378 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;fs-123456.efs.eu-west-2.amazonaws.com. IN A注: 上記の出力では、DNS リクエストは A レコードには解決されず、ステータスは NXDOMAIN です。DNS 名を使用してファイルシステムをマウントした場合、マウントは失敗します。
-
DNS を使用してファイルシステムをマウントするには、DNS 名が VPC 用の Amazon 提供ネームサーバーに解決することを確認します。
dig @172.31.0.2 fs-123456.efs.eu-west-2.amazonaws.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> fs-123456.efs.eu-west-2.amazonaws.com ;; global options: +cmd出力例
;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24926 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;fs-123456.efs.eu-west-2.amazonaws.com. IN A ;; ANSWER SECTION: fs-123456.efs.eu-west-2.amazonaws.com. 60 IN A 172.31.25.79
条件付きフォワーダールールを作成する
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
ファイルシステムをマウントするには、AWS マネージド Microsoft AD に条件付きフォワーダーを設定し、DNS リクエストを Amazon 提供 DNS に転送するようにします。そうすることで、Active Directory 提供 DNS の使用時に、AWS サービスからプライベート IP アドレスへの DNS リクエストを解決できます。
注: Amazon 提供 DNS の IP アドレスは、VPC の IPv4 ネットワーク範囲のベースである IP アドレスに 2 を加えた予約済み IP アドレスです。
条件付きフォワーダールールを作成するには、次の手順を実行します。
-
ファイルシステムをマウントする対象の Linux EC2 インスタンスで、AWS CLI コマンド create-conditional-forwarder を実行します。
aws ds create-conditional-forwarder --directory-id d-9c671fb35f --remote-domain-name amazonaws.com --dns-ip-addrs 172.31.0.2 --region eu-west-2次のパラメータを使用します。
directory-id に Active Directory ID を入力します。
remote-domain-name で任意のドメインを指定します。ルールは、使用するドメインまたはサブドメインに一致するすべての完全修飾ドメイン名 (FQDN) に適用されます。
dns-ip-addrs に Amazon 提供 DNS の IP アドレスを入力します。 -
DNS 解決が EFS マウントターゲットの IP アドレスに解決されることを確認するには、dig コマンドを実行します。出力には、次のような形式でファイルシステム DNS の DNS 解決が表示されます。
dig fs-123456.efs.eu-west-2.amazonaws.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> fs-123456.efs.eu-west-2.amazonaws.com ;; global options: +cmd出力例
;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24926 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;fs-123456.efs.eu-west-2.amazonaws.com. IN A ;; ANSWER SECTION: fs-123456.efs.eu-west-2.amazonaws.com. 60 IN A 172.31.25.79 -
DNS 名を使用してファイルシステムをマウントするには、次のコマンドを実行します。
sudo mount -t efs -o tls fs-123456:/ efs [ec2-user@ip-172-31-35-167 ~]$ df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 475M 0 475M 0% /dev tmpfs tmpfs 483M 0 483M 0% /dev/shm tmpfs tmpfs 483M 520K 483M 1% /run tmpfs tmpfs 483M 0 483M 0% /sys/fs/cgroup /dev/xvda1 xfs 8.0G 1.6G 6.5G 19% / tmpfs tmpfs 97M 0 97M 0% /run/user/0 tmpfs tmpfs 97M 0 97M 0% /run/user/1000 127.0.0.1:/ nfs4 8.0E 0 8.0E 0% /home/ec2-user/efs
関連情報
Amazon EFS に接続されている Amazon EC2 インスタンスのリストを確認する方法を教えてください
マネージド型コンピューティング環境で Amazon EFS ボリュームを AWS Batch にマウントする方法を教えてください
