Amazon Elastic File System

EFSのアクセスポイントを利用してマウントしてみた

こんにちは、SRE課の下西です。
今回はEFSのアクセスポイントを使用してCentOS7系のサーバにマウントすることについて
記事にしていきます。

アクセスポイントとは

オペレーティングシステムのユーザーとグループの使用を強制し、オプションでファイルシステム内のディレクトリへのアクセスを制限することができます。
この機能を利用して一つのEFSで複数個所へのマウントを行うこともできます。
https://docs.aws.amazon.com/ja_jp/efs/latest/ug/efs-access-points.html

アクセスポイント作成

まずはEFSを適当に作成します。EFSの作成については割愛。
EFSを作成するとファイルシステムIDが発行されるのでマウント時はそれを使用します。

1.アクセスポイント作成
作成したEFSを選択してアクセスポイントの項目を選び、[アクセスポイントの作成]を選択。

2.以下の情報を入力して、[アクセスポイントの作成]を選択

名前:testdirectory
ルートディレクトリパス:/www/vhosts/test.com/WWW

[POSIX ユーザー - オプション]
⇒これは入力しない

[ルートディレクトリ作成のアクセス許可 - オプション]
所有者ユーザー ID:48
所有者グループ ID:48
ルートディレクトリパスに適用する POSIX アクセス許可:2770

今回は所有者をapacheとしています

※ルートディレクトリパスの長さは100文字を超えることはできず最大4つのサブディレクトリまで
 になります
※"ルートディレクトリ作成"を今回行っていますが、ルートディレクトリを作成しない場合はEFSのマウント
 領域(/efsとする)配下に対象領域が無いとアクセスポイントの作成に失敗します
 EFSのマウント領域にアクセスポイントで指定した領域がある場合はルートディレクトリの作成情報は無く
 ともマウント可能です

同様の手順でマウントしたい領域分作成します。今回は2つ作成。
作成したらアクセスポイントIDが発行されますのでそれをマウントに使用します。

サーバ側でマウント作業

まずはEFSを適当なところにマウントします。
mkdir /efs
mount -t efs {ファイルシステムID}:/ /efs

次に作成した2つのアクセスポイントをそれぞれマウントします。

mkdir /add_disk1
mkdir /add_disk2
mount -t efs -o tls,accesspoint={アクセスポイントID1} {ファイルシステムID} /add_disk1
mount -t efs -o tls,accesspoint={アクセスポイントID2} {ファイルシステムID} /add_disk2

※ここで環境によっては以下のようなエラーが出る場合があります

WARNING: Your client lacks sufficient controls to properly enforce TLS. Please upgrade stunnel, or disable "stunnel_check_cert_hostname" in /etc/amazon/efs/efs-utils.conf.
See https://docs.aws.amazon.com/console/efs/troubleshooting-tls for more detail.

アクセスポイントをマウントする場合、転送中のデータの暗号化にOpenSSL 1.0.2以降のバージョンと適したstunnelのバージョンが必要になるためです。
https://docs.aws.amazon.com/ja_jp/efs/latest/ug/upgrading-stunnel.html

公式の手順に従ってstunnelのアップグレードを実施します。

yum install -y gcc openssl-devel tcp_wrappers-devel
curl -o stunnel-5.58.tar.gz https://www.stunnel.org/downloads/stunnel-5.58.tar.gz
tar xvfz stunnel-5.58.tar.gz
cd stunnel-5.58/
./configure
make

古いリンクを削除し最新版のリンクをはる
rm /bin/stunnel
make install
ln -s /usr/local/bin/stunnel /bin/stunnel

stunnelのバージョンに関してはhttps://stunnel.org/downloads.htmlで確認できます。
今回は現時点で最新の5.58としました。

改めて先ほどのコマンドでアクセスポイントのマウントを行います。

mount -t efs -o tls,accesspoint={アクセスポイントID1} {ファイルシステムID} /add_disk1
mount -t efs -o tls,accesspoint={アクセスポイントID2} {ファイルシステムID} /add_disk2
df -hT
-----------------------------------------------------------
ファイルシス                                   タイプ   サイズ  使用  残り 使用% マウント位置
{ファイルシステムID}.efs.ap-northeast-1.amazonaws.com:/ nfs4       8.0E     0  8.0E    0% /efs
127.0.0.1:/                                    nfs4       8.0E     0  8.0E    0% /add_disk1
127.0.0.1:/                                    nfs4       8.0E     0  8.0E    0% /add_disk2
-----------------------------------------------------------

アクセスポイントで作成した領域がマウントされました!

アクセスポイントで"/www/vhosts/test.com/WWW"を指定しているので
/efs/www/vhosts/test.com/WWWを/add_disk1にマウントしていることになります。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA