はじめに
「AWSのブロックストレージってよく聞くけど、実際にはどんなものなの?」
「EBSやS3、EFSの違いが分からなくて、どれを選べばいいのか迷ってしまう…」
そんなふうに悩んでいませんか。
AWSにはいくつかのストレージがありますが、それぞれ役割が違います。
なかでもブロックストレージは、サーバーにディスクを取り付けて使うような仕組みで、OSを入れたり、データベースを保存したりするときによく使われます。
ただ、「EBS」「S3」「EFS」と名前が並ぶと、どれが何のためのものなのか分かりにくく感じやすいものです。
この記事では、AWSのブロックストレージの基本から、代表的なサービスである Amazon Elastic Block Store の役割、さらに Amazon Simple Storage Service や Amazon Elastic File System との違いまで、順番にやさしく整理していきます。
どのストレージを選べばよいかも、利用シーンごとに分かるように見ていきましょう。
awsのブロックストレージとは?

AWSのブロックストレージは、「ファイル」や「フォルダ」といった形ではなく、データを一定サイズごとの単位に分けて管理し、それをサーバーに接続してディスクのように扱えるストレージです。
ただ、この説明だけではイメージしづらいため、まずはブロック単位で管理する仕組みの基本と、実際にどのように「ディスクのように使う」のかを順番に見ていきます。
ブロックストレージの基本定義
ブロックストレージは、1つのディスク領域を4KBや16KBといった一定サイズの「ブロック」に分割し、それぞれに番号を付けて管理する仕組みです。
アプリケーションやOSは、この番号を指定して特定のブロックを直接読み書きします。
ファイル全体ではなく、変更があったブロック単位だけを更新するため、必要な位置に対して即座に書き込みや読み込みが行われます。
ディスクのように使えるストレージというイメージ
AWSのブロックストレージは、EC2に接続すると「/dev/xvda」や「/dev/nvme0n1」といったデバイス名で認識され、ローカルディスクと同じ手順で扱えます。
OS上ではパーティションを作成し、ext4やxfsでフォーマットしたあと、指定したディレクトリにマウントして使用します。
ファイルの保存や更新はディスクと同じくブロック単位で行われるため、OSやアプリケーションは通常のディスク操作として読み書きできます。
awsでのブロックストレージの代表例|EBS

AWSでブロックストレージを実際に使うときは、サービスとして提供されている具体的な仕組みを理解する必要があります。
代表的なのがAmazon EBSで、EC2に接続してディスクのように利用されるため、まずはEBSがどのようなサービスなのかと、なぜEC2と組み合わせて使われるのかを順番に見ていきます。
Amazon EBSとは?
Amazon EBSは、EC2インスタンスに接続して使用するブロックストレージで、1ボリュームあたり1GBから最大64TBまでの容量を指定して作成します。
作成したボリュームは特定のアベイラビリティゾーン内で管理され、EC2にアタッチするとOS上ではディスクデバイスとして認識されます。
読み書きはブロック単位で行われ、IOPSやスループットはボリュームタイプや設定値に応じて決まるため、用途に応じて性能を調整できます。
EC2と組み合わせて使われる理由
Amazon EBSは単体では処理を実行できないため、CPUやメモリを持つEC2インスタンスにアタッチして使います。
EC2に接続すると、OS上でディスクデバイスとして認識され、パーティション作成やフォーマットを行ったうえでマウントすることで、ファイルの保存や更新を実行できます。
EC2がアプリケーションの処理を担当し、EBSがデータの読み書きをブロック単位で担う構成になるため、役割を分けて運用できます。
awsでのブロックストレージと他のストレージとの違い

AWSにはブロックストレージ以外にも複数のストレージ形式があり、それぞれデータの扱い方や使いどころが異なります。
違いを細かく覚える前に、まずは「どういう単位でデータを管理しているのか」という視点で、ブロック・ファイル・オブジェクトの違いを一言で整理していきます。
ブロック・ファイル・オブジェクトの違い
ブロックストレージは4KBなどの固定サイズに分割されたブロック番号を指定して直接読み書きする方式で、ファイルストレージはディレクトリとファイル名の階層構造をたどってパス単位でアクセスする方式、オブジェクトストレージはURLとオブジェクトIDを指定して1ファイル単位で取得・保存する方式です。
awsでのブロックストレージが使われるの場面

ブロックストレージは仕組みだけ理解しても使いどころが見えにくいため、「実際にどんな場面で使われるのか」を具体的に押さえることが重要です。
ここでは、サーバーのディスクとして利用するケースと、データベースのように高速な読み書きが求められる場面での使われ方を順番に見ていきます。
サーバーのディスクとして使うケース
ブロックストレージはEC2にアタッチするとOSから「/dev/xvda」などのディスクとして認識されるため、起動ディスクやデータ保存用ディスクとして使用されます。
インスタンス起動時にOSイメージを書き込んだボリュームを接続し、起動後はアプリケーションのログや設定ファイル、実行ファイルを同じディスク上に読み書きする構成になります。
ブロック単位で直接アクセスできるため、OSやアプリケーションが前提としているディスク操作をそのまま実行できます。
データベースなどで使われるケース
ブロックストレージはデータベースのデータ領域としてEC2にアタッチして使用され、MySQLやPostgreSQLなどのDBエンジンが発行する4KBや16KB単位の読み書きをそのまま処理します。
テーブルデータやインデックスはディスク上の特定ブロックに配置され、更新時は変更があったブロックだけを書き換えるため、クエリ実行時に必要な範囲だけを高速に読み書きできます。
IOPSやスループットを設定値で調整できるため、トランザクション処理に必要なディスク性能を確保できます。
まとめ
AWSのブロックストレージは、EC2にディスクを直接つないで使うようなストレージです。
OSやデータベースは、このストレージに対して必要な部分だけを高速に読み書きできます。
代表的なのが Amazon Elastic Block Store で、EC2の起動ディスクや、MySQL・PostgreSQLなどのデータ保存先によく使われます。EC2が処理を行い、EBSがデータを保存するイメージです。
一方で、ストレージにはほかにも種類があります。
ファイルを共有したいなら Amazon Elastic File System、画像やバックアップなどを大量に保存したいなら Amazon Simple Storage Service が向いています。
迷ったときは、「ディスクのように使いたいか」で考えると分かりやすいです。
OSやデータベースの保存先ならブロックストレージ、複数人で同じファイルを使うならファイルストレージ、写真や動画をまとめて保存するならオブジェクトストレージを選ぶと、用途に合った構成にしやすくなります。











