AWSでファイルサーバーを構築する際のストレージの選び方

Amazon Web Services (AWS)は複数のストレージサービスを提供しており、それぞれのサービスはデータを保存する役割において共通しています。
しかしながら、ストレージへアクセスする方法などがそれぞれ異なっており、目的に応じて適切なサービスを使い分ける必要があります。
この記事ではストレージの違いを説明するために「オブジェクトストレージ」「ファイルストレージ」「ブロックストレージ」の3つのタイプのストレージについて解説すると共に、ファイルサーバーを構築する状況を想定してどのような場面でどのタイプのストレージサービスを選定すべきかについて述べます。
なお、AWS上でのファイルサーバーの構築については、「Amazon FSx for Windowsとは何か?」もご参照ください。

ストレージの違いについて

オブジェクトストレージ

オブジェクトストレージとは、データを「オブジェクト」と呼ばれる可変長の単位で読み書きするタイプのストレージを指す言葉として用いられます。
オブジェクトストレージは、オブジェクトを読み書きするためのHTTPSなどでアクセス可能なエンドポイントを提供します。
オブジェクトストレージによっては高い可用性や耐久性を備えている一方で、これらを実現するために更新や削除がすぐに反映されないなどの性質を伴うものもあります。
このように、更新や削除がすぐに反映されない性質は「結果整合性」と呼ばれ、データセンター内でデータを複製するなどの可用性や耐久性を高めるためのしくみによって反映が遅延します。
なお、AWSではオブジェクトストレージを提供するサービスとして、Amazon Simple Storage Service (S3)を利用することができます。
さらに、Amazon S3ではアクセスする頻度によって異なる料金体系のオブジェクトストレージを提供しており、汎用の「Amazon S3 標準」、ややアクセス頻度が低めのデータ向けの「Amazon S3 標準 – 低頻度アクセス」、アーカイブ向けの「Amazon S3 Glacier」などがよく利用されます。

ファイルストレージ

ファイルストレージとは、データを「ファイル」と呼ばれる可変長の単位で読み書きするタイプのストレージを指す言葉として用いられます。
ファイルストレージは、WindowsやLinuxなどのオペレーティングシステム(OS)から標準的にマウント可能なファイルシステムを提供します。
ファイルストレージは可変長の単位で読み書きする点においてオブジェクトストレージと似ていますが、ディレクトリ(フォルダ)構造という管理のしくみを備えている点がオブジェクトストレージとは異なります。
オブジェクトストレージによってはディレクトリ構造によく似た管理のしくみを備えているものもありますが、多くの場合、ファイルストレージのディレクトリ構造と比べて機能が制限されます。
なお、AWSではオブジェクトストレージを提供するサービスとして、Amazon Elastic File System (EFS)、Amazon FSx for Windows File System、Amazon FSx for Lustreを利用することができます。
これらのサービスはマネージドファイルシステムを提供しているという点では共通していますが、提供するファイルシステムの種類がそれぞれ異なっています。

ブロックストレージ

ブロックストレージとは、データを「ブロック」と呼ばれる固定長の単位で読み書きするタイプのストレージを指す言葉として用いられます。
ブロックストレージは、仮想マシンなどにアタッチするためのボリュームを提供します。
ブロックストレージは固定長の単位で読み書きする点においてオブジェクトストレージやファイルストレージとは異なっています。
多くの場合、ブロックストレージに直接アクセスすることはなく、通常はファイルシステムの構築とインストールされたOS経由でブロックストレージにデータを読み書きします。
なお、AWSではブロックストレージを提供するサービスとして、Amazon Elastic Block Store (EBS)を利用することができます。

ファイルサーバー構築時のストレージ選定

前段ではストレージの違いについて「オブジェクトストレージ」「ファイルストレージ」「ブロックストレージ」の3つのタイプのストレージの違いについて解説しました。
これらのストレージには相違はあっても優劣はなく、それぞれのストレージが備える性質が置かれた状況によってメリットまたはデメリットになり、状況に応じて適切なストレージを選定することが重要となります。
以下、これらのストレージの違いを踏まえた上で、応用編としてファイルサーバーを構築する状況を想定してどのような場面でどのタイプのストレージサービスを選定すべきかについて述べます。

オブジェクトストレージであるAmazon S3を使用する場面

結論から述べると、Amazon S3はオブジェクトストレージなので、WindowsやLinuxなどのオペレーティングシステム(OS)から標準的にマウント可能なファイルシステムが提供されず、AWS Storage Gateway などと組み合わせない限り、Amazon S3単体ではファイルサーバーとして利用することができません。
しかしながら、シンプルなAPIに加えて高い可用性や耐久性を備えるAmazon S3はファイルサーバーのバックエンドに適しており、Amazon S3をベースとしてオリジナルのファイルサーバーシステムを構築する場面などでのストレージの選択肢の一つです。
AWSではAWS Storage Gatewayというサービスが提供されていて、このサービスを利用することによってAmazon S3をバックエンドとし、NFSなどのファイルシステムを提供するファイルサーバーを手軽に構築することができます。

ファイルストレージであるAmazon EFSを使用する場面

ファイルサーバーを構築するという目的において、ファイルストレージであるAmazon EFSは最も自然な選択肢の一つであり、クライアントからアクセス可能なファイルサーバーを素早く構築することができます。
なお、Amazon EFSはLinux/Unixでよく利用されるNFSと呼ばれるファイルシステムを提供しますが、その他にもWindowsファイルシステムを提供するAmazon FSx for Windows File Systemや、Lustreと呼ばれるハイパフォーマンスコンピューティングの分野で利用されるファイルシステムを提供するAmazon FSx for Lustreも利用することができます。
これらのサービスはマネージドファイルシステムサービスであり、AWSにファイルシステムの管理を任せることができるため、ファイルサーバーの構築や運用の負荷を軽減することができます。

ブロックストレージであるAmazon EBSを使用する場面

Amazon EFSをはじめとするマネージドファイルシステムサービスでは要件を満たせず、自前でファイルサーバーを構築しなければならない状況においては、Amazon Elastic Compute Cloud (EC2)のインスタンス(仮想マシン)などを利用してシステムを構築することができます。なお、負荷分散など何らかの理由がある場合にはEC2インスタンスを複数たてることがあり、その場合には構成図の上側に記載されているEC2インスタンスにはNFSサーバーを、下側に記載されている2つのEC2インスタンスにはNFSクライアントをインストールする必要があります。Amazon EBSがアタッチされた(1つの)EC2のみ(構成図の上側のみ)で構成することも可能です。
Amazon EBSはAmazon EC2インスタンスにアタッチ可能なボリュームを提供し、ファイルサーバーが管理するファイルの保管などに利用することができます。
自前のファイルサーバーを構築する場合、ボリューム上に構築するファイルシステムの種類などを自由に決めることができる反面、自らの責任において管理しなければならないため、構築後の運用なども視野に入れた上で十分に検討することが大切です。

おわりに

データを保存するストレージはシステムにおいて重要な役割を担っています。
利用する目的に応じて適切なストレージを選定するために必要な知識を持つことが求められます。

ネットワークからクラウドまでトータルサポート!!
NTT東日本のクラウド導入・運用サービスを確認してください!!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る