Amazon EFS ファイルシステムのマウント、アンマウント、自動マウント、オンプレミスマウント方法を教えてください。
Amazon Elastic File System (Amazon EFS) ファイルシステムのマウント、アンマウント、自動マウント、オンプレミスマウント方法について知りたいです。
解決策
ファイルシステムをマウントする
amazon-efs-utils パッケージをインストールすることで、EFS ファイルシステムをマウントできます。または、Mankier のウェブサイトから nfs-utils パッケージをインストールします。
amazon-efs-utils を使う
次の手順を実行します。
-
amazon-efs-utils パッケージをインストールするには、ディストリビューションに応じて次のコマンドのいずれかを実行します。
Amazon Linux 1、Amazon Linux 2、Amazon Linux 2023$ sudo yum install -y amazon-efs-utils
Ubuntu および Debian ベースのディストリビューション
$ sudo apt-get update $ sudo apt-get -y install git binutils rustc cargo pkg-config libssl-dev $ git clone https://github.com/aws/efs-utils $ cd efs-utils $ ./build-deb.sh $ sudo apt-get -y install ./build/amazon-efs-utils*deb
お使いのディストリビューションが rust または cargo パッケージを提供していないか、1.70 より前のバージョンが提供されている場合は、rustup を使用して rust と cargo をインストールします。
'curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh . "$HOME/.cargo/env"
RPM をビルドしてインストールするには、ディストリビューションに応じて以下のいずれかのコマンドを実行します。
OpenSUSE または SLES$ sudo zypper refresh $ sudo zypper install -y git rpm-build make rust cargo openssl-devel $ git clone https://github.com/aws/efs-utils $ cd efs-utils $ make rpm $ sudo zypper --no-gpg-checks install -y build/amazon-efs-utils*rpm
その他すべてのディストリビューション
$ sudo yum -y install git rpm-build make rust cargo openssl-devel $ git clone https://github.com/aws/efs-utils $ cd efs-utils $ make rpm $ sudo yum -y install build/amazon-efs-utils*rpm
-
Amazon EFS コンソールを開きます。
-
ナビゲーションペインで、[ファイルシステム] を選択します。
-
ファイルシステムを選択します。
-
[アタッチ] を選択します。
-
SSH または、AWS Systems Manager の機能である Session Manager を使用してインスタンスに接続します。次に、以下のコマンドを実行します。
$ sudo mkdir -p /mnt/efs $ sudo mkdir -p /mnt/efs-ap $ sudo mount -t efs -o tls fs-12345678:/ /mnt/efs $ sudo mount -t efs -o tls,accesspoint=fsap-12345678 fs-01233210 /mnt/efs-ap
注: 例の値はすべて、お使いの値に置き換えてください。
nfs-utils を使う
次の手順を実行します。
-
nfs-utils パッケージをインストールするには、ディストリビューションに応じて次のコマンドのいずれかを実行します。
RHEL および CentOS ベースのディストリビューション$ sudo yum -y install nfs-utils
Ubuntu ベースのディストリビューション
$ sudo apt install nfs-common
-
Amazon EFS コンソールを開きます。
-
ナビゲーションペインで、[ファイルシステム] を選択します。
-
ファイルシステムを選択します。
-
[アタッチ] を選択します。
-
SSH または Session Manager を使用してインスタンスに接続し、次のコマンドを実行します。
$ sudo mkdir -p /mnt/efs $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-DNS:/ ~/efs-mount-point
または、
IP アドレスを使用してマウントするには、次のコマンドを実行します。$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/ ~/efs-mount-point
注: 例の値はすべて、お使いの値に置き換えてください。
ファイルシステムをアンマウントする
ファイルシステムをアンマウントするには、次のコマンドを実行します。
$ umount /mnt/efs
マウントポイントがビジー状態の場合は、-l パラメータを指定して umount コマンドを実行します。
$ umount -l /mnt/efs
/etc/fstab を使用してファイルシステムを自動マウントする
再起動しても Amazon EFS マウントを維持するために /etc/fstab にエントリを作成するには、次のコマンドを実行します。
# vim /etc/fstab
amazon-efs-utils を使う
fs-########:/ /mnt/efs efs _netdev,nofail,noresvport,tls,iam 0 0
nfs-utils を使う
fstab でパラメータを設定します。
fs-########.efs.REGION.amazonaws.com:/ /mnt/efs nfs4 defaults,_netdev,nofail 0 0 # mount -a
マウントヘルパーを使用するマウントオプションについては、「EFS ファイルシステムの自動マウント」を参照してください。
注: クライアントの Amazon Elastic Compute Cloud (Amazon EC2) とは別のアベイラビリティーゾーンのマウントターゲットの IP アドレスを使用してマウントすることができます。このマウント方法では、アベイラビリティーゾーン間のデータ転送料金が発生し、遅延が発生する場合があります。
起動ウィザードを使用して、インスタンスの起動時にファイルシステムをマウントする
Amazon EC2 インスタンスの起動時に、起動ウィザードを使用してユーザーデータを自動的に追加し、ファイルシステムをマウントできます。
次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- [インスタンスを起動] を選択します。
- Amazon マシンイメージ (AMI) とインスタンスタイプを選択し、[次へ: インスタンスの詳細の設定] を選択します。
- ユースケースに合わせてパラメータを設定します。EFS マウントに必要な仮想プライベートクラウド (VPC) とサブネットを選択していることを確認します。
- [インスタンスの設定] ページの [ファイルシステム] で、ファイルシステムを選択します。ファイルシステム ID の横にあるパスが、EC2 インスタンスが使用するマウントポイントです。このパスは必要に応じて変更できます。
ファイルシステムをマウントすると、ユーザーデータが [高度な詳細] セクションで自動的に生成されます。
または、#cloud-config package_update: true package_upgrade: true runcmd: - yum install -y amazon-efs-utils - apt-get -y install amazon-efs-utils - yum install -y nfs-utils - apt-get -y install nfs-common - file_system_id_1=fs-0cae1679a766bcf49 - efs_mount_point_1=/mnt/efs/fs1 - mkdir -p "${efs_mount_point_1}" - test -f "/sbin/mount.efs" && printf "\n${file_system_id_1}:/ ${efs_mount_point_1} efs tls,_netdev\n" >> /etc/fstab || printf "\n${file_system_id_1}.efs.us-east-1.amazonaws.com:/ ${efs_mount_point_1} nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0\n" >> /etc/fstab - test -f "/sbin/mount.efs" && grep -ozP 'client-info]\nsource' '/etc/amazon/efs/efs-utils.conf'; if [[ $? == 1 ]]; then printf "\n[client-info]\nsource=liw\n" >> /etc/amazon/efs/efs-utils.conf; fi; - retryCnt=15; waitTime=30; while true; do mount -a -t efs,nfs4 defaults; if [ $? = 0 ] || [ $retryCnt -lt 1 ]; then echo File system mounted successfully; break; fi; echo File system not available, retrying to mount.; ((retryCnt--)); sleep $waitTime; done;>
Amazon EFS ファイルシステムをカスタム AMI または特定のオプションでマウントするには、次のコマンドを実行してカスタムユーザーデータを追加します。
RHEL および CentOS ベースのディストリビューション
Ubuntu ベースのディストリビューション#!/bin/bash sudo mkdir -p /mnt/efs sudo yum -y install nfs-utils
詳細については、「ユーザーデータ入力を使用して EC2 インスタンスを起動するときにコマンドを実行する」を参照してください。#!/bin/bash sudo mkdir -p /mnt/efs sudo apt install nfs-common sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/ /mnt/efs
- インスタンスを起動します。
ファイルシステムをオンプレミスにマウントする
Amazon EFS ファイルシステムをオンプレミスサーバーにマウントするには、Amazon EFS とオンプレミスサーバー間の接続が必要です。オンプレミスサーバーと Amazon Virtual Private Cloud (Amazon VPC) の間の接続を確立するには、AWS Direct Connect と AWS VPN を使用します。次に、以下のコマンドを実行して NFS クライアントをインストールし、ファイルシステムをマウントします。
$ sudo yum -y install nfs-utils (Red Hat Linux) $ sudo apt-get -y install nfs-common (Ubuntu) $ mkdir ~/efs $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/efs
詳細については、「チュートリアル: オンプレミスの Linux クライアントを使用してマウントする」を参照してください。
関連するコンテンツ
- 質問済み 1年前lg...
- 質問済み 2年前lg...
- 質問済み 1年前lg...
- AWS公式更新しました 1年前
- AWS公式更新しました 6ヶ月前
- AWS公式更新しました 1年前