AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Amazon EFS ファイルシステムのマウント、アンマウント、自動マウント、オンプレミスマウント方法を教えてください。

所要時間4分
0

Amazon Elastic File System (Amazon EFS) ファイルシステムのマウント、アンマウント、自動マウント、オンプレミスマウント方法について知りたいです。

解決策

ファイルシステムをマウントする

amazon-efs-utils パッケージをインストールすることで、EFS ファイルシステムをマウントできます。または、Mankier のウェブサイトから nfs-utils パッケージをインストールします。

amazon-efs-utils を使う

次の手順を実行します。

  1. 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
  2. Amazon EFS コンソールを開きます。

  3. ナビゲーションペインで、[ファイルシステム] を選択します。

  4. ファイルシステムを選択します。

  5. [アタッチ] を選択します。

  6. 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 を使う

次の手順を実行します。

  1. nfs-utils パッケージをインストールするには、ディストリビューションに応じて次のコマンドのいずれかを実行します。
    RHEL および CentOS ベースのディストリビューション

    $ sudo yum -y install nfs-utils

    Ubuntu ベースのディストリビューション

    $ sudo apt install nfs-common
  2. Amazon EFS コンソールを開きます。

  3. ナビゲーションペインで、[ファイルシステム] を選択します。

  4. ファイルシステムを選択します。

  5. [アタッチ] を選択します。

  6. 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 インスタンスの起動時に、起動ウィザードを使用してユーザーデータを自動的に追加し、ファイルシステムをマウントできます。

次の手順を実行します。

  1. Amazon EC2 コンソールを開きます。
  2. [インスタンスを起動] を選択します。
  3. Amazon マシンイメージ (AMI) とインスタンスタイプを選択し、[次へ: インスタンスの詳細の設定] を選択します。
  4. ユースケースに合わせてパラメータを設定します。EFS マウントに必要な仮想プライベートクラウド (VPC) とサブネットを選択していることを確認します。
  5. [インスタンスの設定] ページの [ファイルシステム] で、ファイルシステムを選択します。ファイルシステム 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 ベースのディストリビューション
    #!/bin/bash
    sudo mkdir -p /mnt/efs
    sudo yum -y install nfs-utils
    Ubuntu ベースのディストリビューション
    #!/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
    詳細については、「ユーザーデータ入力を使用して EC2 インスタンスを起動するときにコマンドを実行する」を参照してください。
  6. インスタンスを起動します。

ファイルシステムをオンプレミスにマウントする

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 クライアントを使用してマウントする」を参照してください。

AWS公式
AWS公式更新しました 19日前
コメントはありません

関連するコンテンツ