最近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(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) |
いろいろ方法があるので、メリットデメリットをふまえて検討したいです。
参考書籍
ファイルサーバのことが事例に書いてました。
各サービスの説明もあって、初心者でもとっつきやすいです。
各サービスのことはこちらを参考にしました。