Amazon EBSとは?4つの特徴とS3との違いを解説!

    AWSには数多くのサービスがありますが、中でも複数あるストレージサービスはその違いが分かりづらいのではないでしょうか。ストレージといっても、データを保存するだけの機能というわけではありません。

    この記事ではストレージサービスの一つであるAmazon EBSについて、Amazon S3と比較しながらその特徴を紹介し、運用に際しての注意点を解説してゆきます。

    Amazon EBSとは?

    Amazon EBS(Elastic Block Store)とは、Amazon Web Service社が提供するクラウドサービスであるAmazon Web Service(AWS)のストレージサービスです。「Elastic」とは「弾力がある・伸縮性がある」といった意味があり、用途に合わせて柔軟な使用ができることが特徴となっています。

    データベース・アプリケーションなど様々なサービスに対応可能ですが、主に使用されるのは仮想マシンサービスであるAmazon EC2のストレージとしての用途です。「アタッチ」と呼ばれる、EC2上の仮想マシンにEBSボリュームを割り当てる設定を行うことで、仮想マシンのストレージ管理を柔軟に行うことができます。

    Amazon EBSの特徴

    Amazon EBSには様々な特徴があります。ここでは特に大きな特徴を4つご紹介してきます。

    可用性の高さ

    可用性とは、システムが停止することなく稼働し続けられる性能のことです。Amazon EBSは99.999%という稼働率を維持する設計となっており、可用性の高いシステムとなっています。1年間のダウンタイムは5~6分ほどに収まる計算です。また稼働率だけでなく、年間故障率(AFR)も 0.001%という低い水準で提供されています。こちらは、1年間に10万分の1の確立でデータが破損してしまう計算です。

    スナップショット機能

    高い可用性・耐久性のあるAmazon EBSですが、万が一に備えて「スナップショット」と呼ばれるデータのバックアップを作成することも可能です。スナップショットは差分のみを保存対象として容量を抑えた上で、Amazon S3という別の安価なストレージサービスに保存されます。

    また「Amazon Data Lifecycle Manager」という仕組みを使うことで、スナップショットの保存方法を詳細に設定できるのも大きな特徴です。この機能により、期間を設定して定期的なスナップショット取得を自動で行ったり、特定の権限を持ったユーザだけがバックアップできるようにしたり、一定期間が過ぎたらスナップショットを削除してストレージを節約したりと、データのライフサイクルを決めて効率よく運用することができます。

    2種類のディスクタイプ

    Amazon EBSでは保存するデータの用途に応じてSSDタイプとHDDタイプからディスクタイプを選択できます。SSDタイプは読み書きの速度が早いため、頻繁に更新を行うデータの保存に適する点が特徴です。一方でHDDタイプは一定時間内に処理することのできるデータの容量が大きいため、大量のデータを転送するサービスに向いています。

    また、それぞれのディスクタイプにはさらに耐久性や転送速度の異なるボリュームタイプが備わっており、用途に合わせて選択することも可能です。

    ボリュームタイプ

    ボリュームタイプは、前述したディスクタイプとはまた異なるストレージの分類です。ボリュームタイプによって料金形態、転送速度、転送できるデータの容量などが大きく変化します。例えば「スループット最適化 HDD」というボリュームタイプは安定したスループットを必要とするシステムに適しています。同じHDDタイプのボリュームタイプである「Cold HDD」と比較して大きなデータを通信できる設定となっており、その反面料金が高くなっています。

    SSDタイプのボリュームタイプでは、例えば「Provisioned IOPS SSD」というボリュームタイプに「io1」と「io2」の2種類が存在します。この2つは耐久性が異なる設定となっており、io1が99.8%~99.9%という耐久性であるに対して、io2は99.999%と大変強固な設定がされています。もちろんio2のほうが料金が高くなっているため、ユーザは使用用途に応じてボリュームタイプを変更することで費用対効果を高めることが可能です。

    また、SSDタイプには「General Purpose SSD」というボリュームタイプも存在します。こちらは料金が安い代わりに耐久性や転送速度が低めに設定されており、頻繁にアクセスがされないシステムや開発・テスト環境用のストレージとして利用されています。

    Amazon S3との違い

    AWSのクラウドストレージサービスとしてもう一つ代表的なのはAmazon S3です。それでは、両者の違いはどのようなところにあるのでしょうか。

    Amazon S3とは?

    Amazon S3はAmazon Simple Storage Serviceの略で、その名の通りとてもシンプルに使いやすいストレージです。容量無制限にデータを保存することができ、利用しているデータ容量に応じて月額で課金されます。耐久性が高いことが大きな特徴で、保存されたデータが自動的に複数のサーバーへと複製されるためデータが破損することはほぼなく、理論上の耐久性は99.999999999% (9 x 11)という驚きの数値です。

    また、シンプルと言いながらもデータの保存と運用に必要な様々な機能を備えています。例えば、セキュリティを高める機能です。Amazon S3に保存されたデータは設定により自動で暗号化することができます。またデータへのアクセス許可も詳細に設定することができるため、不正なアクセスを未然に防いだ上で、万が一データが盗まれても暗号化によりセキュリティを保つことが可能です。

    その他には、ライフサイクル機能もあります。これはデータごとにライフサイクルを設定することで、例えばバックアップデータを90日後に削除したり、大量のログデータを一定期間後に別のストレージに移すなどといったことができる機能です。このようにAmazon S3は、大量のデータを決まったスパンで取り扱う際に利用しやすいストレージといえます。

    Amazon S3とAmazon EBSの違い

    Amazon S3とAmazon EBSの最大の違いは、ストレージの種類にあります。Amazon S3は「オブジェクトストレージ」、Amazon EBSは「ブロックストレージ」というデータの保存方法を取っているのです。オブジェクトストレージは、データを「オブジェクト」という単位で保存します。これは一般的にパソコンで使用されるファイルストレージとは異なり、フォルダの階層などを作らずにフラットに保存する方法です。するとデータの移動や分散した保存がしやすくなり、データ量の増加にも対応できるようになります。よって、Amazon S3は耐久性が高く大量のデータを保存しやすいのです。

    一方で、Amazon EBSは「ブロックストレージ」という方式でデータを保存しています。ブロックストレージでは、データを「ブロック」という固定された長さの単位に分割して管理します。このブロックには番号が割り振られているため、特定のデータを書き換えたい場合はその番号をもとに検索することが可能です。これによりデータへのアクセスが容易になり、処理速度が上がります。よってAmazon EBSでは、特に処理速度を高速化したいデータの保存に適しているのです。

    ユースケースの違い

    それでは、ここまでの両者の違いをもとに具体的なユースケースの違いを見ていきましょう。まずAmazon S3は耐久性の高さと大容量データの扱いやすさから、バックアップデータの保存に適しています。また、ライフサイクル機能を備えているため定期的にデータを移動する場合にも最適です。例えば、保存された画像データをAWSのほかのサービスを利用して自動的に分析し、その結果を特定の場所に格納するといったことができます。

    一方でAmazon EBSは、データの処理が高速であるという特徴があります。よって、アプリケーションで頻繁にアクセスするようなデータなど、書き換えの多いデータの保存に向いています。具体的には仮想マシンに搭載するストレージや、データベースの保存先とすることです。様々なボリュームタイプがあることからも、このような柔軟な対応を必要とする用途においてパフォーマンスを発揮することがわかります。

    Amazon EBSを使ったシステムの可用性

    ここまで見てきたようにAmazon EBSは高速で柔軟な機能を備えたストレージサービスですが、実際に運用をするにあたって注意すべき点もあります。それは可用性の問題です。それでは、Amazon EBSを使用して運用するシステムの可用性にはどのような問題があるのでしょうか。

    Amazon EBSの可用性

    Amazon EBSは、先述の通り99.999%という高可用性を誇ります。よってAmazon EBSでストレージが搭載されているAmazon EC2仮想マシンでデータへのアクセスができずに障害が起こる可能性はかなり低いでしょう。しかし、Amazon EC2のSLAで保証されている稼働率は複数地域のサーバーを組み合わせたマルチAZ構成であっても99.99%と、Amazon EBSには及びません。また、仮想マシン上で運用するアプリケーション自体が原因でサービスが停止してしまう可能性もあります。複数のサービスを組み合わせて運用するAWSでは、関連する全てのシステムについて考慮した上で可用性を考える必要があるのです。

    運用システム全体の可用性を高める方法

    Amazon EC2や運用するアプリケーションを含むシステム全体の障害対策を行う際に有効なのが、「LifeKeeper」に代表されるHAクラスターです。HAクラスターは稼働系と待機系のサーバーを用意してシステムを冗長化することで、稼働系のサーバーに障害が発生してもそれを検知して即座に別のサーバーへとサービスを移し、運用を継続することができます。HAクラスターを利用することで、システム構成全体の中に可用性の低い箇所があったとしても、それを補うことができるのです。

    例:データレプリケーション構成

    また、クラウドサービスはハードウェアやネットワークの保守に関してはクラウドベンダー依存となっており、実際にAWSやAzureなど代表的なサービスでも障害が発生した事例があります。可用性が99.99%または99.999%と謳っていたとしても障害発生の可能性はゼロにはならず、システム停止が重大なビジネス損害につながるような場合はしっかりと対策をすることが重要なのです。

    ストレージだけでなくシステム全体を考えた可用性担保を

    Amazon EBSというストレージシステムが様々な機能を持ち、Amazon S3とは異なる用途に適しているということが分かっていただけたかと思います。また、最後に述べたシステム全体の可用性を考慮するという点もアプリケーションの運用では重要です。Amazon EC2環境におけるHAクラスターの構成パターンについては、下記の資料も参考にしてみてください。