東京リージョンの EFS をバージニア北部リージョンの EC2 インスタンスから VPC ピアリング経由でマウントしてみた (Route 53 プライベートホストゾーン編)
はじめに
テクニカルサポートの 片方 です。
以前、東京リージョンの Amazon Elastic File System(Amazon EFS)を、バージニア北部リージョンの EC2 インスタンスから、クロスリージョン VPC ピアリング経由でマウントする検証を行いました。
こちらでは、別 VPC から EFS をマウントする際に、EFS のマウントターゲットのプライベート IPv4 アドレスと EFS の DNS 名の対応を、EC2 インスタンスの /etc/hosts に記載して実現していました。
<EFS マウントターゲットのプライベート IPv4 アドレス> <ファイルシステム ID>.efs.<リージョン>.amazonaws.com
/etc/hosts を使用する方法は、単一の EC2 インスタンスで手早く検証する場合に便利です。
一方で、マウントする EC2 インスタンスが増えると、各インスタンスへの設定配布や変更管理が必要になります。
また、EFS マウントターゲットを削除して再作成すると、プライベート IP アドレスが変わる場合があります。その場合、/etc/hosts を設定したすべての EC2 インスタンスで設定変更が必要です。
この課題への対応として、Route 53 プライベートホストゾーンに A レコードを作成し、別の VPC にある EFS マウントターゲットのプライベート IPv4 アドレスを名前解決する方法があります。
本ブログでは、元記事のネットワーク構成をベースに、/etc/hosts を使用せず、Route 53 プライベートホストゾーンを利用して EFS の DNS 名を名前解決します。そのうえで、米国東部(バージニア北部)リージョンの EC2 インスタンスから、東京リージョンの EFS をマウントしてみます。
構成
以下の構成を使用します。
- EFS ファイルシステム: 東京リージョン(ap-northeast-1)
- EC2 インスタンス: 米国東部(バージニア北部)リージョン(us-east-1)
- VPC 間接続: クロスリージョン VPC ピアリング接続
- 名前解決: Route 53 プライベートホストゾーン
- IP アドレス: IPv4
- マウント方法: Amazon EFS マウントヘルパー(amazon-efs-utils)
前提条件
以下の条件を満たしていることを前提とします。
- 検証に必要な AWS リソースを作成・変更できる権限があること
- EC2 インスタンスに接続できること
- EFS 側 VPC と EC2 側 VPC の CIDR ブロックが重複していないこと
- EFS 側 VPC と EC2 側 VPC 間で VPC ピアリング接続が確立されていること
- 双方のルートテーブルに、対向 VPC の CIDR ブロック宛てのルートが設定されていること
- EFS マウントターゲットのセキュリティグループで、EC2 側 VPC からの NFS 通信(TCP 2049)が許可されていること
- EC2 インスタンスに amazon-efs-utils がインストールされていること
- 検証後に作成したリソースを削除できること
また、Route 53 プライベートホストゾーンを利用するため、EC2 インスタンスが存在する VPC で以下の DNS 属性を有効にします。
- enableDnsSupport
- enableDnsHostnames
Route 53 プライベートホストゾーンで定義した名前を利用する場合、これら 2 つの DNS 属性を true に設定する必要があります。
なお、EFS のマウントターゲットを東京リージョンの ap-northeast-1a に 1 つだけ作成して検証します。
実施済みの設定
以下の記事で作成した環境を利用します。
上記記事を参考に、以下の設定を実施済みの状態から開始します。
- 東京リージョンに Amazon EFS ファイルシステムを作成
- 東京リージョンの EFS 側 VPC に EFS マウントターゲットを作成
- 米国東部(バージニア北部)リージョンの EC2 側 VPC に Amazon EC2 インスタンスを作成
- EFS 側 VPC と EC2 側 VPC の間にクロスリージョン VPC ピアリング接続を作成
- 双方のルートテーブルに、対向 VPC の CIDR ブロック宛てのルートを追加
- EFS マウントターゲットのセキュリティグループで、EC2 側 VPC からの NFS 通信(TCP 2049)を許可
- EC2 インスタンスに amazon-efs-utils をインストール
今回、EC2 インスタンスと EFS ファイルシステムは異なる AWS リージョンに存在します。そのため、efs-utils.conf の region に EFS が存在する東京リージョンの ap-northeast-1 を設定します。
sudo cp /etc/amazon/efs/efs-utils.conf /etc/amazon/efs/efs-utils.conf.bak
sudo sed -i 's/^#region = us-east-1/region = ap-northeast-1/' /etc/amazon/efs/efs-utils.conf
EC2 インスタンスと EFS ファイルシステムが異なる AWS リージョンにある場合、EFS マウントヘルパーを使用するために efs-utils.conf の region を設定します。 (docs.aws.amazon.com)
元記事では、EC2 インスタンスの /etc/hosts に EFS マウントターゲットのプライベート IPv4 アドレスと EFS の DNS 名を登録していました。本ブログでは、/etc/hosts による名前解決は使用しません。
やってみた
EFS のマウントターゲットを確認する
Route 53 プライベートホストゾーンの A レコードに登録するため、EFS マウントターゲットのプライベート IPv4 アドレスを確認します。
Amazon EFS コンソールで対象のファイルシステムを選択し、ネットワーク タブを開きます。
今回使用するマウントターゲットのプライベート IPv4 アドレスは、以下のとおりです。
| 項目 | 値 |
|---|---|
| EFS の DNS 名 | fs-xxxxxxxxxxxxxxxxx.efs.ap-northeast-1.amazonaws.com |
| マウントターゲットのプライベート IPv4 アドレス | 10.0.133.1 |
| マウントターゲットのアベイラビリティーゾーン | ap-northeast-1a |

次の手順で、EFS の DNS 名に対する A レコードとして 10.0.133.1 を登録します。
Route 53 プライベートホストゾーンを作成する
Route 53 コンソールで、ホストゾーン から ホストゾーンを作成 を選択します。
以下の内容でプライベートホストゾーンを作成します。
| 項目 | 値 |
|---|---|
| ドメイン名 | fs-xxxxxxxxxxxxxxxxx.efs.ap-northeast-1.amazonaws.com |
| タイプ | プライベートホストゾーン |
| VPC | 米国東部(バージニア北部)リージョンの EC2 側 VPC |
| リージョン | us-east-1 |
作成後、対象のプライベートホストゾーンが EC2 側 VPC に関連付けられていることを確認します。

繰り返しとなりますが、Route 53 のプライベートホストゾーンを利用する VPC では、enableDnsSupport と enableDnsHostnames を有効にする必要があります。
EFS の DNS 名を A レコードとして登録する
作成したプライベートホストゾーンを開き、レコードを作成 を選択します。
以下の内容で A レコードを作成します。
| 項目 | 値 |
|---|---|
| レコード名 | 空欄 |
| レコードタイプ | A |
| 値 | 10.0.133.1 (対象 EFS の IPv4 アドレス) |
| TTL | 300 |
| ルーティングポリシー | シンプルルーティング |

レコード名を空欄にすると、プライベートホストゾーン名そのものに対する A レコードを作成できます。今回の検証では、以下の名前を 10.0.133.1 に名前解決できるようになります。
fs-038322bb98746fc2b.efs.ap-northeast-1.amazonaws.com
EC2 インスタンスから名前解決を確認する
バージニア北部リージョンの EC2 インスタンスへ接続し、getent コマンドで EFS の DNS 名を名前解決します。
EFS_DNS=fs-xxxxxxxxxxxxxxxxx.efs.ap-northeast-1.amazonaws.com
getent ahostsv4 "${EFS_DNS}"
Route 53 に登録した EFS マウントターゲットのプライベート IPv4 アドレスが返れば成功です。

dig コマンドが利用できる場合は、Route 53 Resolver を明示して確認することもできます。
dig +short @169.254.169.253 "${EFS_DNS}" A
EFS をマウントする
EC2 インスタンスでマウントポイントを作成し、EFS の DNS 名を指定してマウントします。
sudo mkdir -p /mnt/efs
sudo mount -t efs -o tls \
fs-xxxxxxxxxxxxxxxxx.efs.ap-northeast-1.amazonaws.com:/ \
/mnt/efs
EFS マウントヘルパーは amazon-efs-utils に含まれます。今回のように、EC2 インスタンスと EFS ファイルシステムが異なる AWS リージョンにある場合は、事前に efs-utils.conf の region に EFS が存在するリージョンを設定します。
本ブログでは、EFS が東京リージョンに存在するため、ap-northeast-1 を設定しています。
これで、Route 53 のプライベートホストゾーンとレコードを使用した実装は終了です。
お疲れ様でした!
確認してみた
mountpoint コマンドで、/mnt/efs がマウントポイントとして認識されていることを確認します。
mountpoint /mnt/efs
続けて、ファイルを作成できることも確認します。
sudo touch /mnt/efs/test-file.txt
ls -l /mnt/efs/test-file.txt
以下のように test-file.txt が表示されれば、EC2 インスタンスから EFS へ読み書きできています。
-rw-r--r--. 1 root root 0 Aug 4 00:00 /mnt/efs/test-file.txt

以上で、Route 53 プライベートホストゾーンを使用して名前解決を行い、別リージョンの EC2 インスタンスから EFS をマウントできることを確認できました。成功ですね!
まとめ
Route 53 プライベートホストゾーンを利用し、米国東部(バージニア北部)リージョンの EC2 インスタンスから、クロスリージョン VPC ピアリング接続経由で東京リージョンの EFS をマウントしました。
/etc/hosts を使用する方法と比較すると、名前解決の設定を Route 53 に集約できる点がメリットです。
マウントする EC2 インスタンスが複数ある場合でも、各インスタンスの /etc/hosts を個別に更新する必要がありません。
一方で、EFS マウントターゲットのプライベート IPv4 アドレスが変わった場合は、Route 53 の A レコードを更新する必要があります。また、本ブログではマウントターゲットを 1 つだけ使用しているため、可用性が求められる本番環境では、複数アベイラビリティーゾーンへのマウントターゲット配置、DNS レコードの設計、レコード更新の運用または自動化をあらかじめ検討してください。
別 VPC または別リージョンから EFS を利用する場合は、名前解決だけでなく、VPC 間接続、ルートテーブル、セキュリティグループでの NFS 通信(TCP 2049)の許可が必要です。
本記事が、別 VPC または別リージョンから EFS を利用する際の名前解決設計の参考になれば幸いです。
参考資料
- 東京リージョンの EFS をバージニア北部リージョンの EC2 インスタンスから VPC ピアリング経由でマウントしてみた | DevelopersIO
- プライベートホストゾーンの使用 - Amazon Route 53
- 別の VPC からの EFS ファイルシステムのマウント - Amazon Elastic File System
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました







