DX攻略部がリニューアルしました!

EC2上で構築したFTP環境とEFSをアクセスポイントで連携させる方法

こんにちは、DX攻略部のラムネです。

前回に引き続き今回この記事では「構築したFTP環境とEFSを連携させる方法」について解説していきたいと思います。

前回はEC2上にvsftpdでFTP環境を構築するところまでを解説しましたが、今回この記事では構築したFTPとEFSをアクセスポイントを利用して連携させ、FTP経由でEFSへのファイル転送できるようにしていきたいと思います。

なお、EC2でFTPを構築するまでについては前回の記事で解説しているので、興味がある方は前回の記事も合わせてご覧ください。

関連記事

こんにちは、DX攻略部のラムネです。 最近、お客様からのご要望で「AWSのEC2上で構築したWordPress環境へFTP経由でファイル転送をする」というものがあり、記憶が新しいうちに備忘録も兼ねてノウハウをまとめておきたいと思います[…]

  1. EFSのアクセスポイントを理解する
  2. FTPとEFSをアクセスポイントを利用して連携させる

Amazon EFSとは?

Amazon EFSとは、AWSが提供するファイルストレージサービスです。

AWS上のその他のファイルストレージサービスですと「S3」や「EBS」の方が有名かつ利用頻度が高いかと思いますが、EFSも同じファイルストレージサービスの一種になっていきます。

Amazon EFSの特徴とは?

EFSの特徴については軽く触れておきたいと思います。

EFSの特徴としては、EC2の特定ファイルをマウントさせることでEFSのファイルストレージを連携でき、複数のサーバーのファイルデータを常に同期できる点にあります。

ユースケースとしては、オートスケーリングを要件に組み込んだサービスなどでよく利用される傾向があります。

最近で実際にEFSを利用したケースですと、一定時間にアクセスの集中が見込まれるサービスで複数台のEC2で負荷分散を行うといった要件があり、その際にEC2内に存在するファイル一式(画像ファイルやWordPressのテーマファイル等)を同期させる目的で利用しました。

Amazon EFSのアクセスポイントとは?

EFSのアクセスポイントとは、EC2などのサーバー上のフォルダーに対し、EFSへのアクセスポイントを設置するできる機能です。。

例えば、EC2の特定のフォルダとEFSのファイルストレージをアクセスポイントで連結させることで、EC2とEFS間のファイル転送が容易になります。

開発ベンダーがいる会社の場合ですと、特定のフォルダーのみベンダーに共有して作業ができるようにさせることもできます。あとは、今回のようにEC2で構築したFTPサーバーからEFSにアクセスする際にもこのアクセスポイントが役立ちます

関連記事

こんにちは、DX攻略部のラムネです。 最近、お客様からのご要望で「AWSのEC2上で構築したWordPress環境へFTP経由でファイル転送をする」というものがあり、記憶が新しいうちに備忘録も兼ねてノウハウをまとめておきたいと思います[…]

EC2上のFTP環境とEFSをアクセスポイントで連携させる方法

さてここからが本題のEC2上のFTP環境とEFSをアクセスポイントを利用して連携する方法について解説していきたいと思います。

なお、今回この記事では既にEFSのファイルシステムは作成していある前提で進めていきますのでご了承ください。

STEP1: アクセスポイントの作成

まずはアクセスポイントを作成しましょう。

アクセスポイントの作成はEFSのアクセスポイント管理画面上の「アクセスポイントを作成」から発行することができます。

続いて、アクセスポイントの作成画面から必要箇所を入力していきます。

詳細の設定

まず「詳細」の設定については下記の通りです。

「ファイルシステム」は既に作成済みのEFSファイルシステムを指定し、「名前」の部分は管理し易い名前を付けてください。

「ルートディレクトリパス」については、アクセスポイントを利用するユーザーにEFSファイル上のどの範囲まで編集できるようにするかを設定できます。特に制限を設けずにすべて編集可能にする場合は「/」または空欄のままで問題ありません。

POSIXユーザーの設定

次に「POSIXユーザー」の設定については下記の通りです。

ユーザーIDとグループIDはご自身の都合に合わせて設定してください。

なお、ユーザーIDとグループIDは下記コマンドで調べることができます。

id

idというたったこれだけのコマンドですが、ユーザーIDとグループIDを調べることができます。

また、ユーザーがどのグループに属しているかについてはsudo groups [ユーザー名]のコマンドで調べることも可能です。

EFSのPOSIXユーザーとは、複数のEC2インスタンスからEFSにアクセスする際、同じUIDおよびGIDでアクセスすることができるEFS上のユーザーアカウントのことです。なお、UIDとGIDについては一般的にapacheなら48番、rootなら0番を設定するのが定石です。

ルートディレクトリ設定のアクセス許可の設定

最後に「ルートディレクトリ設定のアクセス許可」の設定については下記の通りです。

 

STEP2: EC2上でアクセスポイントをマウント

EC2上でEFSと連携させたいフォルダに対し、下記コマンドでマウントを行います。

sudo mount -t efs -o tls,accesspoint=[アクセスポイントID] [ファイルシステムID]:/ [ディレクトリーパス]

例えば、EC2内でユーザーを作成しますと、/home/ftp-userのようなルートディレクトリが自動的に生成されるため、今回は/home/ftp-user/appというフォルダにEFSのアクセスポイントを設置する場合は下記のようなコマンドを実行します。

sudo mount -t efs -o tls,accesspoint=fsap-xxxxxxxxxxxx fs-xxxxxxxxxxxx:/ /home/ftp-user/app

EFSのアクセスポイントを解消(umount)する方法も覚えておこう!

EFSのアクセスポイントを使えばコマンド一つでファイルの同期・連携・連動が可能になりますが、「アクセスポイントを変更したい!」「アクセスポイントを誤った場所に設置してしまった!」という事態が発生することも踏まえ、umountの方法もしっかりと覚えておきましょう。

umountのコマンドは下記の通りです。

sudo umount [mountしたフォルダパス]
例えば、今回の例の場合はsudo umount /home/ftp-user/appでEC2とEFSのアクセスポイントを解除することができます。
umountコマンドを使うことでEC2とEFSの連携を一気に解消できる!

STEP3: 疎通確認

ここまでの設定で/home/ftp-user/app配下はEFSのルートディレクトリ以下が表示され、また今回の設定の場合は書き込みもできるはずですので合わせて疎通確認を行いましょう。

FTP環境とFTP接続用のユーザーは前回の記事で既に作成済みですので、実際に接続を行い、適当なファイルをアップロードしてみることをおすすめします。

まとめ

本記事では「vsftpdで構築したEC2上のFTP環境からEFS上のファイルストレージにアクセスポイントを用いてアクセスする方法」について解説してきました。

本日の記事の解説ポイントは下記の通りです。

  1. EFSのアクセスポイントはEC2上の好きなところに設置可能!
  2. アクセスポイントを活用することでベンダーに必要な範囲のフォルダのみを共有可能!
  3. アクセスポイントの設置はmountを、解除はumountを使おう!

EFSはネット上の情報が少なく何かと苦労するサービスですが、AWSの公式ドキュメントを読みながら進めた結果なんとかなりました。

EC2で立てたFTP環境からEFSに接続するという少々マニアックな内容ではありましたが、アクセスポイントの本来の用途として活用できたのではないかと思います。

DX攻略部でも日々お客様からの開発のご相談対応を行っていますが、EFSは忘れかけたタイミングでちょくちょく登場するため、今回自分自身が忘れないという目的も兼ねて記事にまとめることができ良かったです。

以上、本記事が少しでもお役に立てれば幸いです。最後までお読みいただきありがとうございました。