AWSのブロックストレージサービス「Amazon EBS」の概要とその他ストレージサービスを紹介

はじめに

ストレージはデータを保存するために欠かせない仕組みです。スマートフォンを利用している人は、長く同じ機種を利用している中でストレージの容量が不足しているというメッセージを目にしたこともあるのではないでしょうか。日常生活に密接しているスマートフォンで上記のような文言を見かけることもあるため、2023年の現在においてストレージはIT業界の専門用語というだけではなく一般的になりつつあると言えるでしょう。しかし、ストレージを深く理解しようとすると種類だけでも様々あり、仕組みもそれぞれ異なるためそれなりの学習コストが必要となります。

近年は企業のシステムだけではなく政府関連のシステムにおいてもオンプレミスからクラウドへの移行が進んでいる傾向にありますが、その他サービス同様にクラウドサービスにおけるストレージサービスはより気軽に利用でき、かつ大容量・高機能となっています。

Amazonのクラウドサービスである「AWS(Amazon Web Services)」にも複数のストレージサービスがあり、用途によって使い分けができるようになっています。この記事ではAWSのブロックストレージサービスである「Amazon EBS」について紹介していきます。なお今回はストレージをより深く理解するきっかけとなるようストレージの概要やその種類、AWSで提供されているその他ストレージサービスとの違いについても紹介します。これからAWSへの移行を検討しているエンジニアの方、ストレージやAWSについて学習しているという方はぜひご覧ください。初めてAWSに触れる方に向けて最初にAWS全般についても解説しているため、既に把握している方は「ブロックストレージとは?」から読み進めてみてください。

AWSのサービスについて

AWSは2006年にAmazonが提供開始したクラウドサービスで、MicrosoftにおけるMicrosoft Azure、GoogleにおけるGCP(現在のGoogle Cloud)に相当します。当初は仮想マシンサービスの「Amazon Elastic Compute Cloud (EC2)」やオブジェクトストレージサービスの「Amazon Simple Storage Service(S3)」といった限られたサービスのみ提供されていましたが、その後ネットワーク、データベース、機械学習、データ分析関連等の200以上の多種多様なサービスがリリースされ、AWS内で様々な分野のシステム開発が可能な状態にまでなりました。なお当初からあったEC2やS3は2023年現在でも提供されているAWSの代表的なサービスであり、今回取り上げるAmazon EBSとも関連性があるため後ほど詳しく紹介します。

各サービスにはそれぞれ世界各国のリージョンが用意されている他、無料枠が設けられているサービスもあり、一定の範囲内であれば無料でシステム構築・運用することも可能となっています。また、AWSもその他のクラウドサービス同様にスケーリング(拡張)が柔軟に行えるためスモールスタート(小規模で開始して状況に応じて規模を拡大)してビジネスの拡大と共にシステムも規模を広げるという利用方法が可能となっています。料金体系も基本的には他のクラウドサービスと同じく従量課金制ですが、サービスによっては定額固定での支払いが可能なものもあります。

AWSを利用することで難しいことはわからなくともAmazonが蓄積した高度な技術を簡単に利用することができ、強力なバックボーンネットワークやセキュリティサービス等のインフラも利用可能となります。

なおAWSには「責任共有モデル」が定義されており、これによってベンダー側とユーザー側の責任範囲が明確に示されています。クラウドサービスは管理をベンダー側に委ねて開発に専念できるというイメージが強く、それは決して間違いではないのですが、1〜100まで全てをベンダーが管理してくれるわけではなく、その範囲を正しく理解していないと重大なセキュリティ事故に繋がってしまう可能性があります。クラウドサービスは以前のようにセキュリティ面で利用を敬遠する必要こそなくなっているものの、手放しに運用していては守れるものも守れなくなります。そのため、どこまでをAWSが管理する責任範囲(マネージド)でどこからがユーザーの責任となるかが定義されており、公式サイト内に「責任共有モデル」として公表されている状況です。

既にEC2とS3について紹介しましたが、その他AWSの代表的なサービスとしてはリレーショナルデータベースサービスの「Amazon RDS」、プログラムの実行に特化したサービスの「AWS Lambda」、システムの管理・監視サービスの「Amazon CloudWatch」、データウェアハウスサービスの「Amazon Redshift」、コンテンツ配信サービスの「Amazon CloudFront」等が挙げられます。これらのサービスはもちろん単体で利用することも可能ですが、大抵の場合は複数を合わせて運用される傾向にあります。なおクラウドサービスには主にSaaS、PaaS、IaaSというサービス形態がありますがAWSのサービスにおいてはPaaS、IaaSが提供されています

ブロックストレージとは?

ストレージは一般的にブロックストレージ、オブジェクトストレージ、ファイルストレージという3種類に分けられます。なおAWSにおいてはEC2にインスタンスストレージという機能もあります。

ストレージはデータを長期保存することを目的とした保管場所となり、スマートフォン等では画像・動画等のデータを保存する場所のことをそう呼ぶことが多いです。保存する際の方法や機能の違いによってストレージの種類が分類されており、そのうちブロックストレージは主にクラウドサービス上で提供される「クラウドストレージ」の一つとなります。SAN(ストレージエリアネットワーク)やクラウド上に設置されており、一つのデータを複数の独立したブロックに分けて保存するという特徴があります。

上記に挙げたSANとは、一連のコンピュータネットワークからは独立したネットワーク内に配備されたHDD・SDDを接続して複数のサーバーから接続にした仕組みであり、こうすることでコンピュータとストレージは1:1ではなく共有できる状態となり、不要な容量を削減することができるようになりました。また、本来は異なるネットワーク上であるにもかかわらずサーバーに直接接続されているストレージのように扱えるようになっています。なお利用する際はサーバーとストレージが配備されたネットワーク間を接続するハードウェアとして「SANスイッチ」が必要となります。

似たような仕組みとして「NAS(ネットワーク接続ストレージ、またはネットワークアタッチドストレージ)」というものもありますが、こちらの場合はファイルシステムによりデータの管理が行われます。複数サーバーとのデータ共有が可能で、高額のものとなるとRAID機能やホットスワップ機能を備えていることもあります。SANはファイルシステムが不要となるため、一般的企業システム等で処理速度を早めたい場合はSANが選択される傾向にあります。またSAN・NASに対してDAS(Direct-Attached Storage)という呼ばれ方をするものがありますが、これはコンピュータに内蔵されていたり何らかのケーブルで外付けされたりしている直接接続されたストレージ(HDD・SSD・光学ドライブ・テープドライブ)を他と区別するために後から付けられた呼称です。

話を戻しますが、ブロックストレージではブロックごとに小分けにされたデータに対してそれぞれユニーク(一意)な識別子が付与されます。SANはそれらを効率的に利用できるように配置を行い、複数の環境にブロックを分散したりOSに依存せず利用できるような構成にしたりしてくれます。OSに依存しないというのは、例えばWindowsのNTFSやVMwareのVMFSで利用できるようにするということです。ブロックストレージはファイルタイプ、所有権、タイムスタンプといった類のメタデータは保持しない(基本的なファイル属性は保持される)という特徴もあることを覚えておきましょう。

ブロックストレージの具体的な仕組みとして、データの書込みをする際は複数のブロックに分散して実際のデータを書き込み、さらにデータルックアップテーブルに識別子の情報を記録します。読み取りの際は特定のデータへのリクエストが発生するとデータルックアップテーブルの情報を使用して対象のブロックを全て特定し、本来あった状態にマージを行ったうえでデータを提供します。

以上のことよりブロックストレージには高レベルなパフォーマンスが必要とするシステムに適している、OSやファイルシステムに依存することなく動作可能という幅広い互換性がある、といったメリットがあることがわかっていただけたことでしょう。さらにクラウドサービスならではの水平スケーリングによってクラスターやノードの追加が可能である、データの上書きをする際は上書きが必要となるブロックのみ更新が行われるため大容量なデータであっても効率的な運用が可能というメリットもあることを加えておきます。

AWSで提供されていると述べたインスタンスストレージは「インスタンスストア」とも呼ばれ、こちらは基本的にブロックストレージと同仕様であるもののインスタンスに一時的なストレージを提供するという仕組みになっています。バッファやキャッシュ、スクラッチデータ、一時コンテンツ等の短期間の保持が必要となるデータに適しています。

オブジェクトストレージ、ファイルストレージについて

非構造化形式の「オブジェクト」と呼ばれる単位でデータを格納・管理し、それぞれのオブジェクトにユニークな識別子を付与する仕組みです。オブジェクトはアプリケーションによって管理されるためファイルシステムは不要です。これだけだとブロックがオブジェクトに変わっただけで大差ないように見えますが、オブジェクトストレージの方は例えば写真における撮影者・解像度・形式・日時といったような詳細なメタデータを保持できる仕様となっています。そのため複雑なメタデータの管理を行いたい場合は適していると言えます。また高速な処理よりも耐久性(障害が発生しづらい状況)やスケーラビリティ、大容量のデータを取り扱いたい場合、更新頻度の少ない静的なファイル保存にもオブジェクトストレージが適しています。AWSにおいては「Amazon S3」が該当サービスとなります。

ファイルストレージはIT業界にかかわらずパソコンを利用したことがあれば使用したことのある人がほとんどと思われるタイプでその歴史も長いです。Windowsで何らかのフォルダを作成して、その中にデータを保存するという流れが既にこのファイルストレージを使っている状態となります。非常に理解しやすい仕組みではあるものの、データに対して単一のパスしか保持できないためその他ストレージのタイプと比べてパフォーマンスに劣るというデメリットがあります。またWindowsではNTFS、LinuxではNFSといったようにOSによって構造が異なるため互換性の部分でも劣るため企業システムでの利用というよりは、個人レベルで簡易的にストレージを利用したいという場合に適しています。AWSにおいては「Amazon EFS」が該当サービスとなります。

Amazon EBSの特徴

ブロックストレージについては既に解説したため、ここではAmazon EBSそのものの特徴に焦点を絞って紹介していきます。EBSとは「Amazon Elastic Block Store」の略で、同じ「Elastic」という言葉を含む仮想マシンサービスEC2(Amazon Elastic Compute Cloud)にアタッチ(割り当て)して利用されるサービスとなります。他のAWSサービスにアタッチすることはできないのでご注意ください。この「Elastic」は日本語で「柔軟・伸縮自在」という意味を持っており、クラウドサービスの大きなメリットの一つである柔軟な拡張性を表した言葉と言えるでしょう。

EC2のコンソール内にはEBS用のコンソールとして「Elastic Block Store」という項目が存在しており、ここから様々な設定を行うこととなります。EBSではHDDとSDDのボリュームタイプ(プラン)が用意されていて、さらに異なる特徴を持つタイプに分けられている他、スケジューリングすることでバックアップ(スナップショット)を自動取得できるような機能があり、I/Oも最小限に抑えられるような仕組みが採用されているためその可用性は「99.999%(ファイブナイン)」にも及ぶことが公表されています。

なおバックアップは保存期間や細かいポリシーの設定も可能です。バックアップ機能を利用すると、例えばAWSで運用中のシステムで障害が発生しデータに不整合が発生した場合、一旦EBSのデタッチ(解除)を行ってバックアップから復元したボリュームをアタッチし直すことでバックアップ取得時のデータに戻し、再度データの整合性が取れる状態にすることができます。

セキュリティにおいてはAWS Key Management Service(KMS)というサービスを利用することで暗号化が可能となります。暗号化したキーに関してはユーザー自身で管理する必要がなくAWS側で管理してくれるので便利なサービスです。

さらにSAP HANA、Oracle、Microsoft SQL Server、PostgreSQL、MySQLといったリレーショナル、NoSQLのデータベース実行環境として利用できること、ビッグデータ分析エンジンに対してリサイズやアタッチ・デタッチで最適化する際にも利用できることが公式サイト上でも紹介されています。

EBSで選択できる4つのボリュームタイプ(プラン)

2023年5月時点のボリュームタイプはHDD、SSDそれぞれ2種類ずつで、SSDのプランとしては汎用SSD「gp2」とプロビジョンド IOPS SSD「io1」、HDDのプランとしてはスループット最適化 HDD「st1」、コールド HDD「sc1」があります。なお「io1」に関しては最大スループットや料金が異なるバージョンの「io2」「io2 Block Express」も提供されています。

汎用SSD「gp2」は価格とアクセス速度のバランスが良いことが特徴のタイプで、開発環境等のようにランダムなデータアクセスが行われる際に適しています。初めから3,000IOPS(IOPS:1秒間における読込・書込の可能回数)が保証されています。

プロビジョンド IOPS SSD「io1」は4つの中でも一番高パフォーマンスを発揮できますがコストが高いです。SSD自体が高速なアクセスに適していますが「io1」は最大64,000IOPSのパフォーマンスに対応しているため、アクセス頻度の高い大規模システム等のようにより高速な処理が求められる場合に適しています。複数のEC2で同時に利用できる「マルチアタッチ」という機能を備えている点も特徴的です。

スループット最適化 HDD「st1」は最大500IOPSと抑えられているものの、低コストでの利用が可能でありながら処理能力が高くコストパフォーマンスの良いタイプと言えます。SSDよりスピードの劣るHDDですが、このタイプのHDDは高速なものが採用されておりストリーミングやログの処理、ビッグデータ解析に適しています。

最後のコールド HDD「sc1」は「st1」より低コストで利用でき最大250IOPSとなっています。そのため、処理能力を求めないログデータやバックアップデータ等のようにアクセス頻度が少ないデータの保存に適したタイプと言えるでしょう。

以上4つのタイプを紹介しましたが、総じてHDDの方が料金は安くなり、選択するリージョンに良っても料金は異なります。なお詳しい料金については変動する可能性もあるため、実際に利用する際はAWSの公式サイトにて確認してください。EBSの無料枠としては30GBのストレージ、200万回のIOPS、1GBのEBSスナップショットストレージが用意されています。

AWSの代表的なストレージサービス「Amazon S3(Amazon Simple Storage Service)」との違い

S3はEBS以上の99.999999999%という耐久性を公表しているオブジェクトストレージサービスで、容量に上限はありません。シンプルな仕組みでありながら様々なサービスと連携可能で多機能なため、AWSにおける代表的なサービスの一つとなっています。S3に保存されたデータは自動で暗号化が可能である他、指定した日数後のバックアップデータの削除やアクセス頻度の少ないデータを適したストレージに移すという「ライフサイクル機能」を搭載していることによって、コスト削減をしながら運用できるようになっています。

EC2のデータ保存場所としたり、バケット機能を利用することでAmazon RDS(Amazon Relational Database System)へデータのインポートを行ったりという用途で利用されます。またWebサーバーとしての機能も備えているため、S3に保存したHTMLやCSS、画像データ等をそのまま公開することも可能という特徴もあります。

S3はブロックストレージのEBSとは当然ながらストレージのタイプが異なり、階層構造を持たないためデータをフラットに管理でき、大量データの保存に向いています。どちらもデータベースのデータ保存が可能という点は共通しています。

最後にファイルストレージの「Amazon EFS」との違いを挙げておきます。EBSの場合はEC2でしかアタッチできないのに対し、EFSの場合はEC2をはじめコンテナやオンプレミスのコンピュータでも利用が可能です。ただしEC2においてはLinuxベースのOSでないと利用できない点には注意が必要です。

まとめ

今回はAmazon EBSで用意されているボリュームタイプやブロックストレージ、オブジェクトストレージ、ファイルストレージの違いや料金体系、AWSで提供されているオブジェクトストレージサービスAmazon S3との違いについて紹介してきました。

ストレージの種類やAmazon EBSのボリュームタイプ含めどれが一概に優れているということは言えず、用途によってそれぞれにメリット・デメリットを持っていることがわかっていただけたことでしょう。今後Amazon EC2でサービスを運用する場合で、かつレイテンシーの低い高速な処理や頻繁な更新が必要となる場合はぜひAmazon EBSの利用を検討してみてはいかがでしょうか。

コメントを残す

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