COLUMN
Amazon EFS入門 S3、EBSとの違いと使い方
【もう迷わない!】「これ1冊でわかる クラウド・ファイルサーバーの選び方」の資料ダウンロードはこちら!
WebサイトやWebシステムを構築する場合など、共有ストレージが必要になる場合があります。
WordPressを使ったオンプレミスのWebサイトの運用を例に挙げると、サーバー1台で運用している間は特に問題になりませんが、スケーリングや高可用性のためにサーバー複数台での運用に切り替えようとした場合、アップロードした画像やプラグインなどのファイルをサーバー間で共有することが求められます。
このような状況においてはオンプレミスのNetwork File System (NFS)サーバーなどを自前で構築・運用することも可能ですが、マネージドNFSサービスを利用することによってNFSサーバーの構築・運用の負荷を軽減することができます。
この記事では、AWSのマネージドNFSサービスであるAmazon Elastic File System (EFS)の概要について解説すると共に、基本的な使用方法を解説します。
Amazon EFSの概要
特徴
Amazon EFSをファイルサーバーとして利用する場合のAWS上での基本的な構成は下図の通りです。クライアント端末はAmazon EC2を経由してアクセスします。
Amazon EFSはマネージドサービスであるため、サーバマシンやオペレーティングシステム(OS)の管理に加え、NFSサーバー自体の管理もAWSに任せることができます。 また、Amazon EFSによって管理されるNFSは高い可用性と耐久性を備えているため、一部のサーバマシンや一部のアベイラビリティーゾーン(データセンター)に障害が発生した場合でも、NFSが利用できなくなったり、NFSに保存したデータが消失したり、システムへ負の影響が及ぶことを防止できます。
さらに、Amazon EFSのストレージ容量は保存するファイルのサイズ合計によって自動的に伸縮するため、ストレージ容量をあらかじめ決める必要がありません。
なお、Amazon EFSのスループット(読み書き速度)はストレージ容量に応じて増減しますが「プロビジョンドスループットモード」というモードを選択することによって必要なスループットを指定することができるため、高いスループットが要求されるユースケースにも対応することができます。
料金体系
Amazon EFSでは「標準ストレージクラス」と「低頻度アクセスストレージクラス」の2つのストレージクラスが用意されています。
標準ストレージクラスではストレージ容量だけが課金の対象となるのに対し、低頻度アクセスストレージクラスではストレージ容量とデータ転送量の両方が課金の対象となります。
低頻度アクセスストレージクラスのストレージ料金は標準ストレージクラスのストレージ料金と比べて安価であるため、あまりアクセスしないファイルを低頻度アクセスストレージクラスのストレージに保存した方がサービスの利用料金を安く抑えることができます。
なお、「プロビジョンドスループットモード」を使用する場合、これらの料金に加えてスループットに対する料金が指定したスループットの数量に応じて発生します。
Amazon S3やAmazon EBSとの違い
Amazon EFSは「ファイルストレージ」というタイプのストレージサービスであり、LinuxなどのOSでマウント可能なファイルシステムを提供します。
Amazon EFSとは異なり、Amazon Simple Storage Service (S3)は「オブジェクトストレージ」というタイプのストレージサービスであり、データを「オブジェクト」と呼ばれる単位で読み書きするためのHTTPSなどでアクセス可能なエンドポイントを提供します。
また、Amazon Elastic Block Store (EBS)は「ブロックストレージ」というタイプのストレージサービスであり、Amazon Elastic Compute Cloud (EC2)のインスタンス(仮想マシン)にアタッチするためのボリュームを提供します。
このように利用するサービスによって異なるタイプのストレージが提供されるため、目的に応じて適切なタイプのストレージサービスを使い分ける必要があります。
Amazon EFSの使用方法
前段までではAmazon EFSの特徴や料金体系について解説しました。
解説を読むことも大切ですが、サービスを実際に体験してみることによってAmazon EFSをより深く理解することができます。
Amazon EFSの基本的な使用方法として、NFSを作成して2台のAmazon EC2インスタンス(サーバー)間でファイルを読み書きする手順を紹介します。構成は先に示した図を参照してください。
Amazon EFSファイルシステムの作成
まず、Amazon EC2インスタンスからマウントするためのNFSを作成します。
1.NFSの作成
下記のコマンドを実行してAmazon EFSファイルシステムを作成します。
なお、コマンド実行後に表示されるFileSystemIdは後の手順で必要になるので控えておきます。
$ aws efs create-file-system --creation-token my-file-system
2.マウントターゲットの作成
Amazon EC2インスタンスから作成したAmazon EFS(NFS)をマウントするためには、マウントするAmazon EC2インスタンスと同じサブネットにマウントターゲットを作成する必要があります。複数のEC2インスタンスは同じマウントターゲットを介してAmazon EFSにアクセスする流れとなります。
下記のコマンドを実行してマウントターゲットを作成します。
なお、コマンド実行後に表示されるMountTargetIdは後の手順で必要になるので控えておきます。
$ aws efs create-mount-target --file-system-id (ここに控えたFileSystemIdが入ります) --subnet-id (ここに2台のAmazon EC2インスタンスを起動するサブネットのIDが入ります) --security-groups (ここにNFS/TCP2049へのインバウンドアクセスを許可するセキュリティグループのIDが入ります)
書き込み用Amazon EC2インスタンスに
Amazon EFS(NFS)をマウント
次に、書き込み用のAmazon EC2インスタンスを起動してAmazon EFS(NFS)をマウントします。
3.書き込み用Amazon EC2インスタンスの起動
書き込み用Amazon EC2インスタンスをマウントターゲットとして作成したネットワーク内で起動します。
なお、Amazonマシンイメージ(AMI)はLinuxであれば基本的にどれでも良いですが、今回は「Amazon Linux 2 AMI」を使用します。
4.必要なパッケージのインストール
起動したEC2インスタンスにSSHで接続し、下記のコマンドを実行して必要なパッケージをインストールします。
$ sudo yum install -y nfs-utils
5.書き込み用Amazon EC2インスタンスにAmazon EFS(NFS)をマウント
パッケージのインストールが完了した後、下記のコマンドを実行してAmazon EFS(NFS)をマウントします。
$ sudo mkdir ~/efs
$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport (ここに控えたFileSystemIdが入ります).efs.(ここにリージョンが入ります).amazonaws.com:/ ~/efs
読み込み用Amazon EC2インスタンスに
Amazon EFS(NFS)をマウント
次に、読み込み用のAmazon EC2インスタンスを起動してAmazon EFS(NFS)をマウントします。手順としては、書き込み用のAmazon EC2インスタンスの時と同じです。
6.読み込み用Amazon EC2インスタンスの起動
読み込み用のAmazon EC2インスタンスをマウントターゲットとして作成したネットワーク内で起動します。
7.必要なパッケージのインストール
起動したEC2インスタンスにSSHで接続し、下記のコマンドを実行して必要なパッケージをインストールします。
$ sudo yum install -y nfs-utils
8.読み込み用Amazon EC2インスタンスにAmazon EFS(NFS)をマウント
パッケージのインストールが完了した後、下記のコマンドを実行してAmazon EFS(NFS)をマウントします。
$ sudo mkdir ~/efs
$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport (ここに控えたFileSystemIdが入ります).efs.(ここにリージョンが入ります).amazonaws.com:/ ~/efs
書き込み、読み込みのテスト
ファイルの書き込みと読み込みをテストします。
9.ファイルにメッセージを書き込む
下記のコマンドを実行してファイルにメッセージを書き込みます。
$ sudo sh -c 'echo "Hello Amazon EFS" > /home/ec2-user/efs/test'
10.ファイル内容を表示する
下記のコマンドを実行してファイルの内容を表示します。
表示される内容が前の手順で書き込んだメッセージと同じであることを確認します。
$ sudo cat ~/efs/test
Hello Amazon EFS
クリーンアップ
11.クリーンアップ作業
下記のコマンドを実行してAmazon EFSファイルシステムとマウントターゲットを削除します。
また、Amazon EC2インスタンスではEBSボリュームが自動的に作成されてしまうので、起動した2台のAmazon EC2インスタンスにアタッチされたAmazon EBSボリュームも削除します。
$ aws efs delete-mount-target --mount-target-id (ここに控えたMountTargetIdが入ります)
$ aws efs delete-file-system --file-system-id (ここに控えたFileSystemIdが入ります)
おわりに
高い可用性・耐久性に加えて伸縮自在性まで備えたNFSを自前で構築・運用するのは決して容易なことではありません。
そのようなNFSを手軽に利用することが可能な点はAmazon EFSの魅力の一つといえます。
AWS導入に向けて他に知っておくべきこと
AWSの各サービスは構築する情報システムによって利用適性が異なります。実際の構築にあたってはクラウド導入・運用支援事業者が提供している支援サービスを活用することで、自社の検討・構築・運用工数の削減が期待できます。
- はじめてのクラウド導入や社内ファイル共有環境のクラウド化を検討されている方はこちらから
はじめてのクラウドはファイルサーバーから
AWSの導入をご検討の方はNTT東日本にお気軽にご相談ください。
RECOMMEND
その他のコラム
無料ダウンロード
自社のクラウド導入に必要な知識、ポイントを
この1冊に総まとめ!
あなたはクラウド化の
何の情報を知りたいですか?
- そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
- 【AWS・Azure・Google Cloud】
どれが自社に最もマッチするの? - 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
- 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?
初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。
NTT東日本では
そんなあなたにクラウド導入に必要な情報を
1冊の冊子にまとめました!
クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・
- システムインフラの維持にかかるトータルコストがあまり変わらない。。
- 情シス担当者の負担が減らない。。
- セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
-
そもそも”クラウド化”とは?
その本質的なメリット・デメリット - 自社にとって
最適なクラウド環境構築のポイント - コストを抑えるための
具体的なコツ - 既存環境からスムーズにクラウド化を
実現するためのロードマップ
など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。
面倒でお困りのあなたへ
クラウドのご相談できます!
無料オンライン相談窓口
NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!
NTT東日本が選ばれる5つの理由
- クラウド導入を
0からワンストップでサポート可能! - 全体最適におけるコスト効率・業務効率の改善を
中立的にご提案 - クラウド環境に問題がないか、
第3者目線でチェック
してもらいたい - 安心の24時間・365日の対応・保守
- NTT東日本が保有する豊富なサービスの組み合わせで
”課題解決”と”コスト軽減”を両立
特に以下に当てはまる方はお気軽に
ご相談ください。
- さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
- オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
- オンプレミスとクラウド移行した際のコスト比較を行いたい
- AWSとAzure、どちらのクラウドが自社に適切かわからない
- クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
- クラウド利用中、ネットワークの速度が遅くて業務に支障がでている
クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。