この記事では、AWSのトレーニングサイトにて紹介されている「Introduction to Amazon Elastic File System (EFS) 」を、翻訳しながら紹介していきたいと思います。
コンテンツへのアクセス方法はこちらに記載しています。
はじめに
Amazon EFSの主な特徴は3つあります。
・クラウド上に存在するセキュアでスケーラブルなフルマネージド型ファイルシステム
・費用は保存された容量によって変わる
・同リージョン内の複数AZ間で自動的に複製
Amazon EFSのポイントは、作成したEFSはAZをまたいで複数のEC2インスタンスにアタッチすることができることです。
EFSをリクエストすると、AWSサービスはNFSを複製し、ユーザのオペレーティングシステムにマウントするためのエンドポイントを用意します。
Amazon EFSはフルマネージド型のサービスであるため、ユーザはインフラやセキュリティを気にすることなく、セキュアなファイルシステムをデプロイすることが可能です。
ユーザは、それぞれ異なるデータサーバからでもファイルシステムにアクセスができます。
そしてファイルシステム上のデータはユーザ全員が共有できるので、コピーを取る必要もありません。
Amazon EFSは自動的にスケールアップ・ダウンが行われます。そのため、スケーリングについて悩む必要はありません。
Amazon EFSは従量課金制のため、利用した分のみに課金されます。また、EFSは自動的にスケーリングされるので、必要以上に利用しているといったこともありません。
Amazon EFSは、ディレクトリファイルやリンクなど様々なタイプのファイルシステムを保管できるよう、非常に高い可用性と冗長性を備えた作りとなっています。
セキュリティも万全です。ファイルシステムへのアクセスはIAMやKMS、AmazonVPCなどの様々なシステムを使って管理することが可能です。
Amazon EFSの導入デモ
それでは、実際にAmazon EFSを作成して、どの様なサービスなのかを見ていきたいと思います。
早速、Amazon EFS を検索します。検索する際は、「Amazon EFS」でも「efs」でも問題ありません。
こちらが、Amazon EFSの画面になります。
「Create file system」をクリックして、作成を開始します。
まずは、作成するAmazon EFS をどこのVPCなどに置くかを決めます。
表示されているVPCの中から、利用する先を選択します。
VPCを選択すると、そのVPC内にあるAZ・サブネット・IPアドレス・セキュリティグループの一覧が表示されます。この中から、Amazon EFSをマウントする先を選択します。
Amazon EFS のマウント先を決めたら、Amazon EFSのタグ付を設定します。
・Key: 「Name」と入力
・Value: 作成するAmazon EFSの名前を入力
入力が完了したら、「Next Step」をクリックします。
作成前の確認画面です。
作成するVPC、マウント先のAZやサブネット、タグの内容を確認して問題が無ければ「Create File System」をクリックします。
これで、Amazon EFSの作成は完了です。構築が完了するのに、数分かかります
最初のAmazon EFS の画面に戻ると、先ほど作成したAmazon EFSが表示されているのが分かります。
図の箇所をクリックし、下にある「Amazon EC2 mount instructions」というリンクを選択します。
リンクを開くと、インスタンスごとにAmazon EFSにインストールするコマンドが表示されています。
今回はLinuxインスタンスにインストールするので、コマンドは「sudo yum install -y nfs-utils」となります。
今回は上記のコマンドを利用します。
・「sudo yum install -y nfs-utils」
インスタンスにAmazon EFSをインストールするコマンド
・「sudo mkdir efs」
efsという名前のフォルダを作成するコマンド
・「sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,hard,timeo=600,retrans=2
fs-4e6e3207.efs.us-east-1.amazonaws.com:/ efs」
Amazon EFSをマウントするコマンド
今回は、AZがそれぞれ異なる3つのインスタンスにAmazon EFSをインストールし、実際に共有することができるか試します。
3つのインスタンス名とAZはそれぞれ以下となります。
・InstanceB / us-east-1b
・InstanceC / us-east-1c
・InstanceD / us-east-1d
まず3つのインスタンスと接続します。
接続が完了したら、先ほどのコマンドを順番に入力していきます。
「yum install -y nfs-utils」と入力
「mkdir efs」と入力
「sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,hard,timeo=600,retrans=2
fs-4e6e3207.efs.us-east-1.amazonaws.com:/ efs」と入力
全てのコマンドを入力し、Amazon EFSとの接続は完了しました。
ただ、「ls」と入力してもファイルが作成されていないため、空の値しか表示されません。
次に、EFS内にファイルを作成します。
Amazon EFSに、instance-B側でファイルを作成してみましょう。
「vim instance-b.txt」と入力して、instance-b.txtというファイルを作成しました。
ここで、instance-C側で「ls」と再び入力すると、instance-b.txtが表示されます。
instance-Bで作成したファイルが、instance-C側でも確認できることがわかります。
それでは、instance-C側でもファイルを作成してみます。
「vim instance-c.txt」と入力して instance-c.txt ファイルを作成しました。
instance-D側で「ls」と入力します。
すると、 instance-b.txt と instance-c.txt の2つが表示されました。
2つのファイルが作成されていることが確認できます。
まとめ
Amazon Elastic File Systemについてのまとめは以上です。Amazon EFS内に作成されたファイルは、接続されたインスタンス同士で共有できることが分かったかと思います。複数インスタンスでのファイル共有が可能なため、チームで運用や管理をするのに非常に利用しやすいサービスかと思います。ぜひ、利用してみて下さい。