0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】Amazon Linux 2023 から EFS をマウントする手順(再起動後も自動マウント)

0
Posted at

Amazon Linux 2023 から EFS をマウントする手順(再起動後も自動マウント)

概要

Amazon Linux 2023(AL2023)から Amazon EFS をマウントし、OS再起動後も自動的にマウントされるよう /etc/fstab を設定する手順。

今回の構成例:

  • OS:Amazon Linux 2023
  • EFS File System ID:fs-xxxxxxxxxxxxxxxxx
  • マウントポイント:/mnt/efs
  • TLSによる転送中暗号化を使用

事前確認

EFSをマウントする前に、以下を確認しておく。

EFS側

対象VPC/AZにEFSのマウントターゲットが作成されていること。

EFS側のSecurity Groupで以下を許可する。

Protocol : TCP
Port     : 2049
Source   : EC2に設定しているSecurity Group

EC2側

EC2からEFSのマウントターゲットへ通信可能であること。

EC2側Security GroupのOutboundを制限している場合は、TCP/2049の通信を許可する。


手順

1. rootユーザーへ切り替える

sudo su -

2. amazon-efs-utilsをインストールする

Amazon EFS用のマウントヘルパーをインストールする。

dnf -y install amazon-efs-utils

インストール確認。

rpm -q amazon-efs-utils

3. マウントポイントを作成する

今回は /mnt/efs を使用する。

mkdir -p /mnt/efs

確認。

ls -ld /mnt/efs

4. /etc/fstabをバックアップする

設定変更前にバックアップを取得する。

cp -p /etc/fstab /etc/fstab.bak

確認。

ls -l /etc/fstab*

5. EFSの自動マウント設定を追加する

以下を /etc/fstab に追記する。

echo 'fs-xxxxxxxxxxxxxxxxx:/ /mnt/efs efs _netdev,tls 0 0' >> /etc/fstab

設定内容を確認する。

grep efs /etc/fstab

以下が表示されればOK。

fs-xxxxxxxxxxxxxxxxx:/ /mnt/efs efs _netdev,tls 0 0

設定内容

項目 内容
fs-xxxxxxxxxxxxxxxxx:/ EFS File System ID
/mnt/efs マウントポイント
efs amazon-efs-utilsを利用
_netdev ネットワークファイルシステムとして扱う
tls TLSによる転送中暗号化
0 0 dump / fsck対象外

6. /etc/fstabの設定でマウントする

mount -a

エラーが表示されなければマウント成功。


7. マウント状態を確認する

df -hT | grep efs

例:

127.0.0.1:/      nfs4      8.0E     0  8.0E   0% /mnt/efs

amazon-efs-utils で tls オプションを利用している場合、127.0.0.1:/ のように表示されることがある。

別の確認方法:

mount | grep /mnt/efs

8. 書き込み確認

テストファイルを作成する。

touch /mnt/efs/efs_test.txt

確認。

ls -l /mnt/efs/efs_test.txt

問題なければ削除する。

rm -f /mnt/efs/efs_test.txt

再起動後の自動マウント確認

/etc/fstab に登録しているため、OS再起動後もEFSが自動マウントされる。

reboot

再接続後、以下を確認する。

df -hT | grep efs

以下のように /mnt/efs が表示されれば、自動マウント成功。

127.0.0.1:/      nfs4      8.0E     0  8.0E   0% /mnt/efs

fstab経由のマウントを再起動せず確認する

EFSを利用しているプロセスがないことを確認したうえで、一度アンマウントする。

umount /mnt/efs

その後、マウントポイントのみ指定してマウントする。

mount /mnt/efs

この場合、/etc/fstab の設定が使用される。

確認。

df -hT | grep efs

トラブルシューティング

unknown filesystem type 'efs'

以下のエラーが表示される場合。

mount: /mnt/efs: unknown filesystem type 'efs'.

amazon-efs-utils がインストールされていない可能性がある。

dnf -y install amazon-efs-utils

確認。

rpm -q amazon-efs-utils

その後、再度実行する。

mount -a

Connection timed out

TCP/2049の通信経路を確認する。

主な確認項目:

  • EFS Mount Targetが存在するか
  • EFS側Security GroupでTCP/2049を許可しているか
  • EC2側Security GroupのOutboundが許可されているか
  • EC2とEFS間に必要なルーティングが存在するか
  • DNS名前解決が正常か

/mnt/efs is already mounted

以下のように表示される場合。

/mnt/efs is already mounted, please run 'mount' command to verify

すでにEFSがマウント済み。

以下で確認する。

df -hT | grep efs

または、

mount | grep /mnt/efs

findmnt --verifyでWarningが出る

例えば以下。

[W] unreachable source: fs-xxxxxxxxxxxxxxxxx:/: No such file or directory
[W] efs seems unsupported by the current kernel
[W] cannot detect on-disk filesystem type

0 parse errors, 0 errors, 3 warnings

EFSは通常のローカルファイルシステムではなく、amazon-efs-utils のマウントヘルパーを利用するため、findmnt が完全には判定できないことがある。

実際のマウント確認は以下で行う。

mount -a
df -hT | grep efs

最終確認コマンド

fstab 設定確認。

grep efs /etc/fstab

マウント確認。

df -hT | grep efs

詳細確認。

mount | grep /mnt/efs

書き込み確認。

touch /mnt/efs/efs_test.txt
ls -l /mnt/efs/efs_test.txt
rm -f /mnt/efs/efs_test.txt

まとめ

AL2023からEFSをマウントする場合、基本的には以下の流れ。

amazon-efs-utilsインストール
        ↓
マウントポイント作成
        ↓
/etc/fstabバックアップ
        ↓
EFS設定をfstabへ追加
        ↓
mount -a
        ↓
マウント確認
        ↓
再起動
        ↓
自動マウント確認

/etc/fstab の設定例:

fs-xxxxxxxxxxxxxxxxx:/ /mnt/efs efs _netdev,tls 0 0

_netdev を指定することでネットワークファイルシステムとして扱い、tls を指定することでEFSとの通信を暗号化する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?