AWS のストレージサービス EBS と S3 の違い

はじめに

AWS が提供するストレージサービスには、以下のようにいくつか種類があります。

  • Amazon Elastic Block Store (Amazon EBS)
  • Amazon Elastic File System (Amazon EFS)
  • Amazon Simple Storage Service (Amazon S3)
  • Amazon Glacier
  • AWS Storage Gateway   など

上記はいずれも違いのあるサービスとなりますため、目的に応じて適切に使い分けていくことが重要です。今回はこの中でも最も基本的なストレージサービスである Amazon EBS と Amazon S3 について確認していきます。

Amazon EBS とは

Amazon EBS は、Amazon Elastic Compute Cloud (EC2) と共に使用するために設計されたブロックストレージサービスです。AWS上で操作できる仮想ディスクとして、EC2インスタンスへ接続して使用することが可能です。

Amazon EBS の特徴や機能として、以下の内容があります。

4 種類のボリュームタイプから最適な料金とパフォーマンスのバランスを選択できる

アプリケーションの特性に応じて、パフォーマンスと料金の異なる4つのボリュームタイプを選択することができます。タイプは大きくHDD(ハードディスクドライブ)、SSD(ソリッドステートドライブ)の2つから選択することができ、さらにその中から汎用的なパフォーマンスを持つものと、高いスループットに適したものの2つが用意されています。

ボリュームタイプ料金補足
汎用 SSD (gp2) ボリューム月額 1 GB あたり 0.12USD汎用 SSD ボリューム(デフォルト)
プロビジョンド IOPS SSD (io1) ボリューム月額 1 GB あたり 0.142USD、
さらに IOPS あたり 0.074USD
最高パフォーマンスの SSD ボリューム
スループット最適化 HDD (st1) ボリューム月額 1 GB あたり 0.054USDアクセス頻度の高いワークロード用の HDD ボリューム
Cold HDD (sc1) ボリューム月額 1 GB あたり 0.03USDアクセス頻度の低いワークロード用の HDD ボリューム

基本的にはHDDの方が低価格で提供されているため、比較的アクセスの少ない、例えばバックアップストレージ用として使用する場合などはHDDを、逆にアクセスが多い場合であるのならSSDを選択する、このように使い分けることが可能です。なお、参考程度ではありますが、AWSの無料利用枠にはストレージ 30 GB、I/O 200 万回、スナップショットストレージ 1 GB が含まれています。

非常に高い可用性を持つ

EBSボリュームは 99.999% の可用性を持つよう設計されています。これは、例えば1年間ずっと動かし続けた場合でも、動作しないのは数分程度となります。

スナップショット機能によるバックアップ、リストアをサポート

任意のタイミングで EBS ボリュームのスナップショットを作成することが可能です。スナップショットのデータは Amazon S3 に保存されます。スナップショットは非同期で行われるため、 EBS ボリュームがマウントされて使用中の状態であってもスナップショットを作成することは可能ではありますが、データの整合性を保つためにも静止状態で作成することが推奨されています。また、Amazon データライフサイクルマネージャーにより、スナップショットの作成や削除を作成したスケジュールに従って行うことができます。

スナップショットを定期的に作成する場合、スナップショットは増分となります。その為、新しく作成したスナップショットは、最後に作成したスナップショット以降に変更されたブロックのみを保存します。これにより、スナップショットの作成時間の短縮と容量の節約をすることができます。

例えば、最初のスナップショットを作成した時点で EBS ボリュームに 10 GiB のデータがある場合、10 GiB のデータ全体をコピーしてスナップショットを作成することになります。次に 10 GiB のデータの内 4 GiB 分のデータに変更を加えた場合に作成されたスナップショットは、変更分の 4 GiB のみとなり、変更が無い残りの 6 Gib は最初のスナップショットが参照されます。さらにここから 2 GiB 分のデータを追加してスナップショットを作成した場合には、追加分の 2 GiB をコピーして、その他変更のない 10 GiB 分のデータは以前作成したスナップショットを参照します。最終的に、ここまでデータ変更の度(1回目:10GiB使用、2回目:10GiBの内4GiB変更、3回目:10GiBに2GiB追加)に作成してきた3つのスナップショットの合計は 16 GiB となります。

また、リストアに関してはスナップショットをベースにして新規の EBS ボリュームを作成する形となります。その為、作成したスナップショットをコピーして、すべてのデータがそのままの状態で新規の EBS ボリュームを作成することが可能です。これによってテスト環境の作成なども容易に行うことができます。

信頼できるセキュリティを実現

Amazon EBS では、Amazon が管理するキー、もしくはユーザーが AWS Key Management Service (KMS)※1 を使用して作成と管理を行っているキーを使用することで、EBS ボリューム、およびスナップショットをシームレスに暗号化することができます。さらに、EC2 インスタンスと EBS ボリューム間を移動するデータも暗号化されます。また、Amazon EBS ボリュームへのアクセスは AWS Identity and Access Management (IAM)※2 によりアクセス制御を行うことができます。

Amazon S3 とは

Amazon S3 は、インターネット経由でどのようなデータでも保存やアクセスを実行できるように設計されたオブジェクトストレージサービスです。オブジェクトストレージとは、データをファイル単位やブロック単位ではなく、「オブジェクト」という単位で管理するストレージです。データの格納場所に依存することがないため、データの取り出しや移動、複製を容易に行うことができ、かつデータを分散して保管しやすいという特徴があります。これにより、データ量の増加にも柔軟に対応することができるため、大量のデータの保管や活用に適しています。また、ファイルシステムを使用しないため、OSに依存することなく使用することができるのも大きな特徴となります。

Amazon S3 の特徴や機能としては、以下の内容があります。

使用できる容量は無制限

個別のオブジェクトは最大 5 テラバイトまで、1 つの PUT でアップロード可能なオブジェクトの最大サイズは 5 GB まで(オプションによって最大 5 TBまでの拡張可能)、という一部ので制限はあるもの、格納可能なデータの総量やオブジェクトの数に制限はありません。

コスト効率が高い

実際に課される料金は様々な要素(ストレージ料金の他にリクエストとデータ取り出し、データ転送やデータ管理機能の料金があります)により異なるため具体的な料金の目安については言及できかねますが、汎用的なストレージとしては月額 1 GB あたり 0.025USD 程度と、Amazon EBS と比較して安価で利用することができます。なお、参考程度ではありますが、AWSの無料利用枠として、S3 標準ストレージクラスで 5 GB の Amazon S3 ストレージ、20,000 GET リクエスト、2,000 PUT、COPY、POST、あるいは LIST リクエスト、データ送信 15 GB を毎月、1 年間利用することが可能です。

非常に高い耐久性

Amazon S3 は、複数のシステムにまたがる S3 オブジェクトをすべて自動的に作成し複数のデバイスにわたって冗長に保存することで、99.999999999% (9 x 11) の耐久性を実現するように設計されています。

優れたセキュリティ

Amazon S3 はデフォルトでは保存したデータへのアクセスは作成したユーザーのみに限定されており(もちろん、他のユーザーにアクセス権を付与することは可能です)、アクセス許可のないユーザーによるデータへのアクセスはブロックされます。さらに S3 Block Public Access を使用することで、バケットレベル※3またはアカウントレベルですべてのオブジェクトへのパブリックアクセスをブロックできます。

また、S3 リソースに対して行われたリクエストを一覧表示する監査ログもサポートしているため、アクセスしたユーザーとアクセスされたデータを明確に把握することが可能です。

その他にも、Amazon S3 との通信はSSLで暗号化されているため、データを安全にアップロードまたはダウンロードできます。さらにサーバー側の暗号化オプションを使用することで、保存されているデータを暗号化することも可能です。

Amazon EBS と Amazon S3 の違い

Amazon EBS と Amazon S3 にはどのような違いがあるのかをまとめていきます。

・EC2インスタンスからの見え方
Amazon EBS はネットワーク接続型ではあるものの、EC2インスタンスへ直接接続(アタッチ)して使用するため、OSからはローカルディスクとして認識されます。一方、Amazon S3 ではEC2インスタンスにアタッチすることはできません。
・パフォーマンスの違い
上記のアタッチできる、できないの違いに関連して、EC2インスタンスへアタッチしてから使用する Amazon EBS は、ネットワーク通信を使用する Amazon S3 と比較して高パフォーマンスであると言われています。
・容量制限の有無
Amazon EBS の容量は1GiB~16TiBとなります(OSごとに制限がある可能性もあるため、実際の最大容量はもっと少なくなる場合があります)。その為、大容量が必要な場合には複数のEBSを使用することになります(EC2インスタンスには複数アタッチ可能)。一方、Amazon S3 には容量の制限はありません。
・料金の違い
汎用的なストレージ料金のみを比較した場合、Amazon EBS は月額 0.12USD/1GB であるのに対し、Amazon S3 は 0.025USD/1GB と5倍近くの差があります。

まとめ

AWS から提供されているストレージサービスの内、Amazon EBS と Amazon S3 についてまとめました。いずれも Amazon EC2 の使用を検討する際に大概は目にする基本的なサービスとなるため、それぞれの特徴や違いについて把握しておくに越したことはないでしょう。

今回まとめたストレージサービスは物理ディスクを使用する場合と比較して、ディスクの摩耗や性能低下、ディスク容量不足によるディスク交換や増設、またはディスクの廃棄等、ディスクに関する管理を考慮する必要が一切なくなる点が大きな強みです。機能や性能も近年でどんどん進化している分野でもあり、今後の環境構築に必要なサービスとなっていくことが予想されます。

<注釈>

※1 … AWS Key Management Service (KMS) とは
KMS は、暗号化キーを簡単に作成、管理を行うことができるフルマネージド型のサービスです。KMS を使用することにより AWS のサービスやアプリケーションでの使用を制御できるようになります。また、事前の契約や前払いは必要なく低コストで使用することができ、基本的に作成したキーの保存のために 1 USD/月 の料金を支払うのみとなります。(※キーの使用や管理に制限があり、それを超えると追加料金が発生します。)

※2 … AWS Identity and Access Management (IAM) とは
IAM は、追加料金なしで AWS アカウントに提供されている機能であり、AWS のユーザーやグループの作成および管理を行うことができ、アクセス権を使用して AWS のサービスやリソースへのアクセスを管理することができます。ユーザーやグループに対して必要最小限のアクセス権を設定することで、セキュリティの向上を図ることができます。なお、新しく作成したユーザーは、明示的に権限が付与されるまで AWS へアクセスすることはできません。

※3 … バケット とは
Amazon S3 に保存されるオブジェクトを置いておくための入れ物を指します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です