昨年末より東京リージョンでもAmazon EFSを利用できるようになりました。このAmazon EFSは Amazon Elastic File System の略称であり、ストレージサービスを提供します。ストレージサービスというとこれまで Amazon S3 がありましたが、Amazon EFS は EC2 などに設置しているサーバに直接マウントすることができます。(S3は Storage Gateway が必要)
今回はこのAmazon EFSの利用方法を紹介します。
Amazon EFS ファイルシステムの作成
AWSコンソール画面よりEFSを選択、「ファイルシステムの作成」ボタンより作成ウィザードを開始します。この画面から3つのアベイラビリティゾーンが利用されていることがわかります。利用したいVPC・サブネットなどに合わせて設定しますが、今回はデフォルトのまま進めます。
次の画面では、オプション設定の構成を行うことができます。必要に応じて設定しますが、今回はデフォルトのまま進みます。
最後に設定を確認して「ファイルシステムの作成」ボタンを押すと、EFSの作成が開始されます。利用可能な状態になるには数分かかりますので、各アベイラビリティゾーンのマウントターゲットの状態が「利用可能」になるまで待ちましょう。
Amazon EC2 の起動
Amazon EFS が利用可能になるまでの間に、Amazon EC2 を作成します。今回はOSにAmazon Linux 2を選択し作成します。特別な設定は不要ですので、全てデフォルトで作成します。
セキュリティグループの設定
Amazon EC2 から Amazon EFS にアクセスするには EFS の Inbound にTCP 2049ポートを開放する必要があります。EFSの画面上でセキュリティグループIDを確認し、EFSのセキュリティグループのインバウンドを開き「編集」ボタンを押します。そしてTCP 2049ポートを適切に開きます。
下記は、EFSのセキュリティグループIDが表示されている箇所を示しています。
Amazon EFS マウント手順
それではEC2にEFSをマウントしましょう。その手順は「Amazon EC2 のマウント手順 (ローカル VPC から)」に書かれています。
今回はOSにAmazon Linuxを利用しているので、次のコマンドでEFSマウントヘルパーをインストールします。
sudo yum install -y amazon-efs-utils
そしてマウントするためのディレクトリを作成します。
sudo mkdir /mnt/efs
EFSマウントヘルパーを利用してEFSをマウントします。
sudo mount -t efs fs-xxxxxxx:/ /mnt/efs
もしなかなかコマンドが返ってこないときは、ポートが正常に開いていないことが疑われます。Amazon EFSのセキュリティグループのポートを確認してください。
これでEC2よりEFSを利用できるようになりました。試しにファイルを作成してみましょう。通常のLinuxのファイルシステムと同じように扱うことができます。
まとめ
Amazon EFSは料金が高いだけあってパフォーマンスが非常に優れています。従来のEBSのように容量を気にすることはないですし、S3のような転送の遅さをきにすることなく利用できます。お金に余裕があればぜひ利用してみて下さい。