ファイルシステム
ファイルシステムは、データをファイルで管理する仕組みのこと。ファイルの中に、ファイルやデータを入れていくよ。
NFS
NFS(Network File System)は、ネットワークで繋がった複数のストレージを共有してファイルシステムを作るサービスまたはプロトコルのこと。接続したストレージが持っているファイルやデータに、接続元から読み書きすることができる。複数のサーバーがファイルを共有する必要がある場合に、NFSが使われるよ。
Amazon EFS
Amazon EFSは、NFSでアクセスする、Linuxベースの共有ファイルシステムを提供するAWSリソース。
以前はAmazon EC2とAmazon EBSを使ってNFSを構築していたけれど、コストが割高になってしまう、管理が煩雑になってしまうといった課題があった。
Amazon EFSを使えば、簡単に高パフォーマンスなNFSを構築することができる。3つ以上のアベイラビリティゾーンにデータを保存するので、耐久性も高いよ。
Amazon EFSは、複数のEC2インスタンスからアクセスを受けて、データを共有する際よく使われる。具体的には、アプリの共有ファイル、ビッグデータ分析、WEB配信などだよ。
NFSv4は、NFSのバージョン4のプロトコルです。バージョン3はインターネット上で利用できなかったけど、バージョン4はインターネット上で利用できるように改良されたよ。
マウントターゲットは、Amazon EFSに接続するためのもの。EC2インスタンスとAmazon EFSは、マウントターゲットを介して通信している。
マウントターゲットは、アベイラビリティゾーンごとに作成する必要がある。マウントターゲットごとにセキュリティグループを適用することで、不要なアクセスを排除することができるよ。
パフォーマンスモード
Amazon EFSは、汎用パフォーマンスモードと最大I/Oパフォーマンスモードの2つのパフォーマンスモードがあるよ。
多くの場合、汎用パフォーマンスモードを使うことになる。汎用パフォーマンスモードはレイテンシーを抑えることができるよ。
しかし、数千台のEC2インスタンスから大量アクセスがあるような場合は、最大I/Oパフォーマンスモードが適している。レイテンシーを犠牲にすることになるので、十分に検討する必要があるけれど、大規模なアクセスに対応できるのは最大I/Oパフォーマンスモードだよ。
パフォーマンスモードの選択には、Amazon ClowdwatchのPercentlOLimitというメトリクスが参考になる。PercentlOLimitが高くなる場合、最大I/Oパフォーマンスモードの方が適している。パフォーマンスモードは後から変更することができないため、作り直すことになってしまうけれど、汎用パフォーマンスモードでPercentlOLimitが高くなるようなら、最大I/Oパフォーマンスモードにするべきだよ。
特徴 | レイテンシー | 用途 | |
---|---|---|---|
汎用 パフォーマンスモード |
一般的なアクセス頻度 | 低い | 一般的な場合 |
最大I/O パフォーマンスモード |
数千台のEC2インスタンスから大量アクセスがある | 高い | ビックデータの分析アプリと組み合わせる場合など |
スループットモード
Amazon EFSの性能を選べるものとして、パフォーマンスモードの他にスループットモードがある。スループットモードは、バーストスループットモードとプロビジョニングスループットモードの2つから選択することができ、後から変更することができる。
バーストスループットモードは、バースト機能があるもの。クレジット<がある時は高性能だけれども、クレジットを使い切ると低性能になってしまう。
プロビジョニングスループットモードは、エンジニアが指定した性能を常に発揮するもの。コストが掛かるけれど、バーストスループットモードのように性能に波がなく、安定して求められる性能を発揮することができる。
スループットモードモードの選択には、Amazon ClowdwatchのBurstCreditBalanceというメトリクスが参考になる。試しにバーストスループットモードで作ってみて、クレジットを使い果たしている場合、プロビジョニングスループットモードに変更するべきだよ。
amazon-efs-utils
amazon-efs-utilsは、接続の推奨事項の提供、データ転送時の暗号化、ログの記録をするツール。Amazon EFSを使う際、amazon-efs-utilsを併せて使うと様々な支援を受けることができる。追加料金はかからないので、気軽にインストールできるよ。