📚

初めてのAmazon EFS ~概要編~

に公開

🔍 AWS EFSとは

複数のEC2インスタンスから同時にアクセスできるNFS互換のファイルストレージサービス
ファイルストレージとは、データを「ファイル」として階層的(ディレクトリ構造)に保存・管理するストレージのこと。

NFSとは

UNIX/Linuxで標準的に使われるファイル共有プロトコル。サーバー上のフォルダをネットワーク越しに、他のコンピュータから「自分のPCフォルダ」のように使用できる仕組み

🍀 基本的な構成要素と設定

①ファイルシステム

  • EFSで最も基本的なリソース
  • 1つのファイルシステムは複数のAZにまたがって冗長化
  • 作成時に選べるストレージクラスでコスト最適化も可能

②マウントターゲット

  • EC2などのクライアントがEFSにアクセスするために必要なネットワークエンドポイント
  • 各AZごとに1つずつ作成可能
  • VPC内のサブネットに関連付けされ、セキュリティグループでアクセス制御

③セキュリティ

  • セキュリティグループ
    マウントターゲットに対して適用され、NFSアクセス(TCP 2049番ポート)を許可する設定が必要。
  • ネットワークACL/VPC設定
    EFSはVPC内で動作するため、VPCのルートテーブルやネットワークACLの設定を行う必要あり。
  • IAM
    EFSファイルシステムの操作(作成、削除、タグ付けなど)にはIAMポリシーが使用。

④ストレージクラス

利用頻度やコストに応じて自動または手動で選択可能。

クラス 特徴 コスト
標準 頻繁にアクセスするデータ向け 高い
低頻度アクセス たまにアクセスするファイル向け 安い(保存料は安いが、アクセス時に料金がかかる)

⑤パフォーマンスモード

ファイルシステム作成時に選択。後から変更不可。以下2種類。

🟧 General Purpose:多くのワークロードに最適。低レイテンシ
🟩 Max I/O:大規模分散システム向け。スループット重視だがレイテンシは高め

⑥スループットモード

動的に変更可能。以下2種類。

🟪 Bursting:ファイルシステムのサイズに応じてスループットが増加
🟦 Provisioned:必要なスループットを明示的に設定可能

🔥 EFSの特徴

①共有可能

ネットワーク経由でアクセスできるファイルシステム。
複数のEC2インスタンスやECSなどのコンテナサービスから同時にファイルシステムにアクセス可能
複数のアプリで共通のデータを使いたい場合に便利

②スケーラブル

容量を自分で決める必要がない。保存したファイルの量に応じて、自動的にスケールアップ(拡張)・スケールダウン(縮小)する。無駄な容量も発生しない。

③高可用性

保存したデータは、AWSが複数のアベイラビリティゾーン(AZ)に自動でコピーして保存する。
どこか1つのデータセンターに障害が起きても、他のAZからアクセス可能で、サービスが止まりにくい=「高可用性」が保たれる

④POSIX互換

EFSはLinuxの標準的なファイル操作規格である「POSIX」に準拠している。
EC2にマウントすると、/mnt/efsなどの用に、普通のLinuxフォルダと同じようにファイル操作が可能。(例:ls、cd、cpなど)

便利な機能

🔐 EFSの暗号化

新しいファイルシステムを作成する時に、AWSマネジメントコンソールまたはCLISDKを使用して暗号化可能。転送中のデータの暗号化は、EFSマウントヘルパーを使用して、EFSファイルシステムとそのクライアント間で実行できる。

レプリケーション

同一のリージョン、または別リージョンのファイルシステムとレプリケーション(複製)することができるビジネスの継続性や災害対策の一環として利用することができる。レプリケーション先のファイルシステムは読み取り専用となる

📕 他のストレージとの違い

比較 EFS EBS S3
アクセス形式 ファイル(NFS) ブロック オブジェクト
同時アクセス 複数EC2で共有可 1台のEC2専用 アプリ/API経由で共有
用途 共有ファイル、ログ、Webデータ DB、OS、高性能I/O バックアップ、静的サイト、画像など
スケーラブル 自動 サイズ固定(手動変更) 自動

🍁 使用方法の流れ

  1. EFSを作成(AWSマネジメントコンソールまたはCLI)
  2. マウントターゲットを作成(各VPC/AZに対応)
  3. EC2にNFS経由でマウント
sudo mount -t nfs4 -o nfsvers=4.1 <efs-endpoint>:/ /mnt/efs

まとめ

  • 複数のEC2から同時にアクセスできる共有ファイルストレージ
  • 自動スケーリングで容量管理が不要
  • 標準・低頻度アクセスの2タイプでコスト最適化

Discussion