Amazon EFS
複数の EC2 インスタンスから同時にアクセスできる共有ファイルストレージ
何ができるか
Amazon EFS (Elastic File System) は、複数の EC2 インスタンスから同時に読み書きできるフルマネージドのファイルストレージサービスです。NFS (Network File System) プロトコルに対応しており、Linux の標準的なファイル操作でデータにアクセスできます。保存するデータ量に応じて自動的に容量が拡張・縮小されるため、事前の容量計画が不要です。
どのような場面で使うか
複数のサーバーで共有するコンテンツの保存、Web サーバー間で共有する設定ファイルやメディアファイルの管理、コンテナ環境での永続ストレージ、ビッグデータ分析のデータ共有、機械学習の学習データの共有など、複数のサーバーからデータを共有する場面で利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
会社の共有フォルダに例えるとわかりやすいでしょう。社内ネットワーク上の共有フォルダは、どのパソコンからでもアクセスでき、誰かがファイルを追加すれば他の人もすぐに見られます。EFS も同じように、複数のサーバーから同じファイルにアクセスできる共有ストレージです。
EFS とは
Amazon Elastic File System (EFS) は、AWS が提供するフルマネージドの共有ファイルストレージです。EBS が 1 つの EC2 インスタンスに接続する専用ディスクであるのに対し、EFS は複数の EC2 インスタンスから同時にマウントして使える共有ディスクです。ファイルの追加や削除に応じてストレージ容量が自動的に増減するため、ディスク容量の管理が不要です。
主な特徴
EFS の大きな特徴は、ペタバイト規模まで自動的にスケールする弾力性です。ファイルを保存すればストレージが自動的に拡張され、削除すれば縮小されます。また、数千の EC2 インスタンスから同時にアクセスしても一貫した性能を提供します。ストレージクラスとして、頻繁にアクセスするデータ向けの Standard と、アクセス頻度の低いデータ向けの Infrequent Access (IA) が用意されており、ライフサイクル管理で自動的に移行できます。
EBS との違い
EBS と EFS はどちらも EC2 で使うストレージですが、用途が異なります。EBS は 1 つの EC2 インスタンスに専用で接続するブロックストレージで、OS のディスクやデータベースの保存先に適しています。EFS は複数のインスタンスから同時にアクセスできるファイルストレージで、共有データの保存に適しています。EBS は事前にサイズを指定する必要がありますが、EFS は自動的にサイズが変わります。
はじめかた
EFS を使い始めるには、EFS コンソールでファイルシステムを作成します。VPC とサブネットを選択し、マウントターゲットを作成すれば準備完了です。EC2 インスタンスから mount コマンドで EFS をマウントすれば、通常のディレクトリと同じようにファイルの読み書きができます。Amazon EFS マウントヘルパーを使えば、マウント設定をさらに簡単に行えます。
注意点
- EFS は EBS と比べて GB あたりの料金が高いため、共有アクセスが不要な場合は EBS を選択する方がコスト効率が良い
- Windows インスタンスからは直接マウントできないため、Windows 環境では FSx for Windows File Server を検討すること
- Infrequent Access ストレージクラスを活用すると、アクセス頻度の低いファイルのコストを大幅に削減できる
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。