【RHEL9】Amazon EFSをEC2にマウントする手順(セキュリティグループ・永続化まで完全解説)

EFSアイキャッチ

RHEL9環境でEFSをマウントしようとした際に、以下のエラーに遭遇しました。

No match for argument: amazon-efs-utils

どうやらRHEL9では、デフォルトでAWS関連のリポジトリが登録されておらず、amazon-efs-utils をそのままインストールできないようです。

そのため本記事では、SSM(Systems Manager)を利用してamazon-efs-utilsをインストールする方法を含めて解説します。

AWS環境で共有ストレージを構築する際によく利用されるのがAmazon EFSです。
本記事では、RHEL9のEC2インスタンスにEFSをマウントする手順を、初学者でも迷わないように解説します。

■前提条件

  • EC2(RHEL9)が作成済み
  • SSH接続が可能
  • 同一VPC内にEFSを作成する

■Step1:EC2のセキュリティグループ設定

EFSは NFS(TCP 2049) を使用して通信します。

そのため、EC2側のセキュリティグループで以下を確認します。

✔ アウトバウンド設定

項目設定
プロトコルTCP
ポート2049
宛先EFSのセキュリティグループ

■Step2:EFS用セキュリティグループの作成

✔ なぜセキュリティグループが必要?

Amazon EFSは単なるストレージではなく、実体は以下の構造になっています。

  • EFS本体:論理リソース
  • マウントターゲット:ENI(Elastic Network Interface)

つまり👇

👉 EFSへのアクセス制御はENIに紐づくセキュリティグループで行う必要がある

✔ 作成するセキュリティグループ設定(インバウンドルール)

項目設定
プロトコルTCP
ポート2049
送信元EC2のセキュリティグループ

■Step3:EFSの作成手順

AWSマネジメントコンソールにログインしEFSダッシュボードへ移動
右上の「ファイルシステムの作成」をクリック

名前を適宜入力し、今回は「カスタマイズ」をクリックします。

ファイルシステムの作成画面

ファイルシステムの設定を確認、今回はデフォルトのまま

「ネットワークアクセス」の箇所でStep2で作成したEFS用のSGを入力

ファイルシステムポリシーは今回は空白のまま「次へ」をクリック

「確認して作成する」に遷移するので確認し、問題がなければ「作成」をクリック。(今回は割愛)

成功が出るのを確認

■Step4:EC2側の準備(SSM & EFS utils)

✔ SSM Agentのインストール

curl -o amazon-ssm-agent.rpm https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/latest/linux_amd64/amazon-ssm-agent.rpm
sudo dnf install -y amazon-ssm-agent.rpm
#エージェント自動起動&起動
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
sudo systemctl status amazon-ssm-agent

AWSマネジメントコンソールから確認

AWSマネジメントコンソールにログインし「System Manager」のダッシュボードへ移動
左部メニューより「ノードを詳しくみる」より該当のEC2が表示されるのを確認

✔ amazon-efs-utils のインストール

https://docs.aws.amazon.com/ja_jp/efs/latest/ug/setting-up-aws-sys-mgr.html

AWS公式

System Managerのダッシュノードへ移動し「ディストリビューター」を選択
「AmazoneFsutils」をクリック(検索メニューに入力すれば簡単に見つけられます!)

一回限りのインストールをクリック

設定画面に遷移するので適宜入力し「実行」をクリック

下記画面のように「正常に送信されました!」と表示されることを確認

数秒待って「成功」を確認

✔ インストール確認

rpm -qa | grep amazon-efs-utils
which mount.efs
インストール確認

■Step5:EFSのマウント

✔ マウント前確認

cat /etc/fstab
df -h

✔ マウント実行

sudo mkdir /efs-tmp
sudo chmod 755 /efs-tmp
sudo mount -t efs -o tls fs-xxxxxxxx:/ /efs-tmp

作成確認

df -h

👉 /efs-tmp が表示されていれば成功!

■Step6:EFSの永続化設定

sudo vi /etc/fstab
fs-xxxx:/ /efs-tmp efs _netdev,tls 0 0

✔ 反映確認

sudo mount -a

エラーが出なければOKです。

■まとめ

  • EFSはENI(マウントターゲット)経由で接続される
  • セキュリティグループの設定が最重要
  • amazon-efs-utils が必須
  • /etc/fstab で永続化可能