インフラ

AWSでファイルサーバを構築する方法を比較してみた(EBS・EFS・S3)

最近AWS上で、NFSでファイルサーバを構築することがありました。

AWSはサービスの種類がものすごいです。
そのため、ファイルサーバを構築するのにも様々な選択肢があります。
そこで、思いつく手段を比較してみました。

EBS

概要

一番シンプルな方法だと思います。

EBS(Elastic Block Storage)は、オンプレでいうとディスクです。

オンプレで構築していたシステムの
NFSサーバをそのままAWS上で稼動させることができます。

EC2にEBSをマウントして、EBSボリュームを共有します。

スナップショットを取得することで、バックアップします。

メリット

  • パフォーマンスが高い
  • バックアップ・リストアが容易(スナップショット)
  • オンプレミスから移行が容易

デメリット

  • EC2が単一障害点になってしまう
  • 拡張が少し面倒(EBSボリュームの容量を増やす操作が必要)
  • 定額課金(コストが確保した、EBSの容量分かかる)

EFS

概要

EBSの部分をEFSに置き換えた方法です。

EFS(Elastic File System)はオンプレでいうNASです。
EFSはEBSと違い、複数のEC2から直接マウントすることが可能です。

従量課金制で自動的に容量が拡張されるので、拡張性が高いです。
バックアップは、AWSでは「EFS-to-EFSバックアップソリューション」を推奨しています。

メリット

  • 拡張性が高い
    • ユーザからは実質無制限の容量
  • 信頼性が高い
    • 複数のAZの冗長的に保存される
  • 可用性が高い
    • 複数のEC2に直接マウントできるためELB使用して、EC2を冗長化することも可能
  • パフォーマンスが高い
  • コスト効率が良い(従量課金制)

デメリット

  • EBS,S3に比べるとコストが高い
    • EBSの3倍、S3の14倍

S3 + Storage Gateway

S3_Storagegateway

概要

S3(Simple Storage Service)をファイルサーバのように使用する方法です。
S3は、クラウド型のオブジェクトストレージサービスです。

EC2に直接アタッチすることはできないので、Storage Gatewayというサービスを使用します。

バックアップは、S3のバージョニング機能を使用します。

メリット

  • 拡張性が高い
    • ユーザからは実質無制限の容量
  • コストが安い
  • コスト効率が良い(従量課金制)
  • 信頼性が高い
    • 複数のAZの冗長的に保存される
  • データ耐久性が高い 99.999999999%

デメリット

  • パフォーマンスが低い(S3へのアクセスに影響される)
  • Storage GatewayのEC2が単一障害点になってしまう

まとめ

結論としては、コストが許容できるならEFSがおすすめです。
高パフォーマンス・高可用性でさらに自動で拡張されるため、もっとも楽です。

「EFSだとコストが高すぎるなー」という場合は、以下になると思います。

  • パフォーマンス重視 EBS
  • コスト重視 S3

図にすると、こんな感じです。
※S3は標準ストレージ、EBSは汎用SSD(gp2)としています

項目 EFS EBS S3
コスト △(0.36USD/GB) ○(0.12USD/GB) ◎(0.025USB/GB)
パフォーマンス
可用性 ◎(複数AZ) ×(シングルAZ) ◎(複数AZ)

いろいろ方法があるので、メリットデメリットをふまえて検討したいです。

参考書籍

ファイルサーバのことが事例に書いてました。
各サービスの説明もあって、初心者でもとっつきやすいです。

各サービスのことはこちらを参考にしました。