どーも!shihopowerです!
今回はAWSのデータ保存機能についてお話します。
EC2を使い始めると「メモリ」「インスタンスストア」「EBS」「S3」といった言葉がたくさん出てきますよね。どれもデータを保存する機能なのに、何が違うの?と最初は混乱しがちです。そんな疑問が今回の記事作成のきっかけです。
同じ疑問を持った方の参考になれば幸いです!
目次
- データ保存機能の全体像
- CPU内部のデータ保存(レジスタ・キャッシュ)
- メモリ(RAM)
- インスタンスストア(インスタンスボリューム)
- Amazon EBS(Elastic Block Store)
- Amazon S3(オブジェクトストレージ)
- Amazon EFS / FSx(ファイルストレージ)
- 全体比較まとめ
1. データ保存機能の全体像
AWSのEC2インスタンスには、複数のデータ保存機能があります。速度・永続性・コストのバランスで使い分けるのがポイントです。
速度:速い ◀────────────────────────────────▶ 遅い
容量:小 ◀────────────────────────────────▶ 大
[レジスタ]→[L1/L2/L3キャッシュ]→[メモリ/RAM]→[インスタンスストア]→[EBS]→[S3/EFS]
|←── CPU内部 ──→|←── EC2インスタンス内 ──→|←── AWSストレージサービス ──→|
Amazon EC2 ユーザーガイド「ストレージオプション」によると、Amazon EC2にはインスタンスを格納するための、柔軟で使いやすく、コスト効率の良いデータストレージオプションが用意されており、各オプションは独自のパフォーマンスと耐久性を備えています。これらのストレージオプションは、要件に応じて個別に使用することも、組み合わせて使用することもできます。
2. CPU内部のデータ保存(レジスタ・キャッシュ)
レジスタ(Registers)
CPUの中で最も高速かつ最小の記憶領域です。演算を行う際に直接使われる値(計算途中の数値、メモリアドレスなど)を保持します。容量は数十〜数百バイト程度です。
キャッシュメモリ(L1 / L2 / L3 Cache)
CPUとメインメモリ(RAM)の速度差を埋めるための中間記憶です。よく使うデータをCPUの近くに置いておくことで、毎回RAMにアクセスしなくて済みます。
| レベル | 場所 | 容量 | 速度 |
|---|---|---|---|
| L1キャッシュ | CPUコア内 | 数十KB | 最速 |
| L2キャッシュ | CPUコア内〜近傍 | 数百KB〜数MB | 速い |
| L3キャッシュ | コア間で共有 | 数MB〜数十MB | 比較的速い |
レジスタやキャッシュはCPUに物理的に内蔵されており、AWSがユーザーに対してその容量を直接設定させる仕組みはありません。インスタンスタイプを選ぶことで間接的にCPU世代・キャッシュ構成が決まります。
3. メモリ(RAM)
Amazon EC2 インスタンスタイプのドキュメントによると、EC2インスタンスを起動するときは、指定したインスタンスタイプによってインスタンスに使用するホストコンピュータのハードウェアが決まり、各インスタンスタイプは異なるコンピューティング、メモリ、ストレージ機能を提供します。
メモリ(RAM)はCPUが直接読み書きする領域で、アプリケーションの実行に使われます。
メモリ最適化インスタンスのドキュメントによると、メモリ最適化インスタンスは、メモリ内の大きいデータセットを処理するワークロードに対して高速なパフォーマンスを実現するように設計されています。
メモリの特徴
- 揮発性:インスタンスを停止・終了するとデータは消えます
- 高速:CPU直結のため最も高速なストレージ
- 料金:インスタンス料金に内包(別途課金なし)
- 用途:プログラムの実行、データの一時処理
休止(Hibernate)機能を使うと、メモリの内容をEBSルートボリュームに保存することができます。
4. インスタンスストア(インスタンスボリューム)
EC2インスタンスストアのドキュメントによると、インスタンスストアはEC2インスタンス用に一時的なブロックレベルストレージを提供します。このストレージはホストコンピュータに物理的にアタッチされたディスクによって提供されます。インスタンスストアはバッファ、キャッシュ、スクラッチデータ、その他の一時的データのように頻繁に変化する情報の一時的なストレージに最適です。また、負荷分散されたウェブサーバーのプールなど、インスタンスのフリート全体で複製する一時データを保存するためにも使用できます。
データの永続性
インスタンスストアのデータ永続性に関するドキュメントによると、インスタンスストアボリューム上のデータはインスタンスが再起動しても保持されます。ただし、インスタンスが停止、休止、終了するとデータは消滅します。インスタンスが停止、休止、終了した場合、インスタンスストアボリュームのすべてのブロックが暗号で消去されます。
| イベント | データ |
|---|---|
| 再起動(reboot) | ✅ 保持される |
| 停止(stop) | ❌ 消滅する |
| 休止(hibernate) | ❌ 消滅する |
| 終了(terminate) | ❌ 消滅する |
インスタンスストアの特徴
- 物理接続:ホストコンピュータに直接アタッチされたディスク
- 一時ストレージ:インスタンスのライフタイム中のみ存在
- 料金:インスタンス料金に内包(追加料金なし)
- 用途:キャッシュ、スクラッチ領域、一時ファイル
このため、長期的に使用する重要なデータがある場合はインスタンスストアに頼りすぎないようにしてください。インスタンスストアボリュームに保存されているデータをインスタンスのライフタイムを超えて保持する必要がある場合は、そのデータをAmazon EBSボリューム、Amazon S3バケット、Amazon EFSファイルシステムなどのより永続的なストレージに手動でコピーする必要があります。(公式ドキュメントより)
5. Amazon EBS(Elastic Block Store)
Amazon EBSのドキュメントによると、EBSボリュームをインスタンスにアタッチすると、ファイルの保存やアプリケーションのインストールなど、コンピュータに接続されたローカルハードドライブを使用する場合と同じ方法でボリュームを使用できます。
EC2ストレージオプションのドキュメントによると、Amazon EBSは、インスタンスにアタッチまたはデタッチできる、耐久性の高いブロックレベルストレージボリュームを提供します。複数のEBSボリュームを1つのインスタンスにアタッチできます。EBSボリュームは、関連するインスタンスの有効期間とは無関係に存続します。EBSボリュームは暗号化できます。データのバックアップコピーを保持するには、EBSボリュームからスナップショットを作成します。スナップショットはAmazon S3に保存されます。
EBSの主な特徴
- スケーラビリティ:ニーズの変化に応じて、Elastic Volumesオペレーションを使用し、ダウンタイムなしで容量の動的な増加またはパフォーマンスの調整ができます
- データ保護:Amazon EBS暗号化を使用し、EBSボリュームおよびEBSスナップショットを暗号化できます
- 高耐久性:ボリュームのデータは、1つのアベイラビリティーゾーンの複数サーバー間で自動的にレプリケートされ、1つのコンポーネントに障害が発生したときにデータが失われることを防ぎます
EBS SSD系ボリューム
Amazon EBSボリュームの種類のドキュメントによると、SSD-backedのボリュームは、主要なパフォーマンス属性はIOPSであるI/Oサイズの小さい頻繁な読み取り/書き込み操作を伴うトランザクションワークロード用に最適化されています。
| ボリュームタイプ | 種別 | 最大IOPS | 主な用途 |
|---|---|---|---|
| gp3 | 汎用SSD | 16,000〜80,000 | ブートボリューム・開発環境・一般用途 |
| gp2 | 汎用SSD | 16,000 | ブートボリューム・開発環境 |
| io2 Block Express | プロビジョンドIOPS SSD | 最大256,000 | ミッションクリティカルなDB |
| io1 | プロビジョンドIOPS SSD | 64,000 | I/O集約型DBワークロード |
EBS HDD系ボリューム
Amazon EBSボリュームの種類のドキュメントによると、HDD-backedのボリュームはパフォーマンスの主要な属性がスループットである大規模なストリーミングワークロード用に最適化されています。
| ボリュームタイプ | 種別 | 主な用途 |
|---|---|---|
| st1 | スループット最適化HDD | ビッグデータ・ログ処理・データウェアハウス |
| sc1 | Cold HDD | アクセス頻度の低いアーカイブデータ |
オンプレのHDD・SSDとの比較
オンプレのサーバーでは物理ドライブを自分で選んで購入・搭載しますが、AWSではその違いが「ボリュームタイプ」として抽象化されて提供されます。
| 観点 | オンプレ | AWS(EBS) |
|---|---|---|
| ドライブ選択 | SSD / HDD を購入・搭載 | ボリュームタイプを選択するだけ |
| 容量変更 | ドライブ交換・停止が必要 | ダウンタイムなしで動的に変更可能 |
| 障害対策 | RAIDを自前で構成 | 複数サーバーへの自動レプリケーション |
| 物理管理 | 自社で管理 | AWSが完全管理 |
| バックアップ | 自前で仕組みを用意 | スナップショットでS3に保存可能 |
6. Amazon S3(オブジェクトストレージ)
EC2ストレージオプションのドキュメントによると、Amazon S3により、低コストで信頼性に優れたデータストレージインフラストラクチャが実現します。Amazon EC2内から、またはウェブ上のどこからでも、いつでも必要な量だけデータを格納および取得できます。例えば、Amazon S3を使用して、データとアプリケーションのバックアップコピーを保存することができます。Amazon EC2は、Amazon S3を使用してEBSスナップショットとAmazon S3-backed AMIを保存します。
S3の特徴
- アクセス方法:インターネット/API経由(ローカルディスクのようには使えない)
- 永続性:非常に高い耐久性
- 容量:実質無制限
- 用途:バックアップ・大容量データの長期保存・静的コンテンツの配信
7. Amazon EFS / FSx(ファイルストレージ)
EC2ストレージオプションのドキュメントによると、Amazon EFSはAmazon EC2と併用できるスケーラブルなファイルストレージを提供します。EFSファイルシステムを作成し、ファイルシステムをマウントするためにインスタンスを設定できます。複数のインスタンスで実行している作業負荷やアプリケーションの一般的なデータソースとしてEFSファイルシステムを使用できます。
また、Amazon FSxを使用すると、多機能で高性能なファイルシステムをクラウドで起動、実行、およびスケールできます。Amazon FSxは、広範なワークロードをサポートするフルマネージド型サービスです。Lustre、NetApp ONTAP、OpenZFS、Windows File Serverなど、広く使用されているファイルシステムから選択できます。
EBSとEFSの違い
| 観点 | Amazon EBS | Amazon EFS |
|---|---|---|
| 接続 | 基本1インスタンスへアタッチ | 複数インスタンスから同時マウント可能 |
| 用途 | OSディスク・データベース | 共有ファイルシステム |
8. 全体比較まとめ
| 機能 | 種類 | 接続方式 | 停止後のデータ | インスタンス間共有 | 追加料金 | 主な用途 |
|---|---|---|---|---|---|---|
| メモリ(RAM) | 揮発性メモリ | CPU直結 | ❌ 消滅 | 不可 | なし | プログラム実行 |
| インスタンスストア | ブロック(一時) | ホスト物理接続 | ❌ 消滅 | 不可 | なし | キャッシュ・一時作業 |
| Amazon EBS | ブロック(永続) | ネットワーク経由 | ✅ 保持 | 基本1対1 | あり | OSディスク・DB |
| Amazon S3 | オブジェクト | API/HTTP | ✅ 保持 | 可 | あり | バックアップ・大容量保存 |
| Amazon EFS / FSx | ファイル | ネットワーク経由 | ✅ 保持 | 可(同時マウント) | あり | 共有ファイルシステム |
また、速度と容量のトレードオフを含めた全体の階層は以下のとおりです。
速度:速い ◀──────────────────────────────────────────────────────▶ 遅い
容量:小 ◀──────────────────────────────────────────────────────▶ 大
永続性:低 ◀──────────────────────────────────────────────────────▶ 高
[レジスタ]→[L1/L2/L3キャッシュ]→[メモリ]→[インスタンスストア]→[EBS]→[S3/EFS]
|←── CPU内部 ──────→|←── CPU外部(EC2インスタンス内) ──→|←── CPU外部(AWSサービス) ──→|
おわりに
AWSのデータ保存機能は、速度・永続性・コスト・共有の可否という軸で整理するとスッキリ理解できます。
- 一瞬だけ使う高速な領域 → メモリ・インスタンスストア
- インスタンスに紐づく永続ストレージ → EBS
- 大量データの長期保存・共有 → S3・EFS
ユースケースに合わせて適切なストレージを選ぶことが、AWSを使いこなす第一歩です!
参考になれば嬉しいです。最後まで読んでいただきありがとうございました!