
【VPC内リージョンサービス】
EBS(Elastic Block Store)は、EC2(Amazon Elastic Compute Cloud)向けの永続ブロックストレージサービスです。
インスタンスの停止や再起動を行ってもデータが保持されるため、重要なデータを安全に保管できます。
EBSでは、用途に応じて複数のボリュームタイプを選択できます。たとえば、gp3(汎用SSD)はバランスの取れた性能を提供し、PIOPS(Provisioned IOPS)を設定できるio2(プロビジョンド IOPS SSD)では、データベースなど高いI/O性能が求められるワークロードに最適です。また、st1(スループット最適化HDD)など、低コストで大容量処理に適したタイプもあります。
データ保護の面では、スナップショットを利用してEBSボリュームのバックアップを簡単に取得できます。スナップショットはS3上に差分保存されるため、効率的かつ高速にバックアップや復元を行うことができます。さらに、暗号化にも対応しており、KMS(Key Management Service)と連携することで、データを透過的に暗号化し、高いセキュリティを確保できます。
EBSボリュームは、稼働中のEC2インスタンスに対してボリュームのアタッチ/デタッチを行うことができます。これにより、必要に応じてストレージを追加したり、他のインスタンスに切り替えたりする柔軟な運用が可能です。また、ボリュームのサイズ拡張や性能変更もオンラインで行うことができるため、停止時間を発生させずにスケールアップできます。
EBSは、AZ(Availability Zone)単位で冗長性を持ち、データの整合性を高いレベルで維持します。そのため、データベース、トランザクションログ、ブートボリュームなど、低レイテンシーで高信頼性が求められるワークロードに非常に適しています。
重要用語
ユースケース
| EC2インスタンスのOSディスク | EC2インスタンスのブートボリュームとして利用し、OSやミドルウェア、アプリケーションをインストールするための永続ディスクを提供する。 |
| データベース用ブロックストレージ | 高いIOPSやスループットが必要なデータベース(自前のRDBやNoSQLなど)のデータファイルを置く高速なブロックストレージとして利用する。 |
| スナップショットによるバックアップと複製 | EBSボリュームのスナップショットを定期的に取得し、障害時の復旧や別リージョンへの複製・テスト環境の複製に活用する。 |
ベストプラクティス
| プロビジョンドIOPSの適切な選定 | ワークロードに応じたIOPSレベルを選び、性能とコストのバランスを取る。 |
| 定期スナップショット取得 | 自動スナップショットでバックアップとDR対策を実施する。 |
| 暗号化の標準利用 | EBSボリュームとスナップショットはデフォルト暗号化を有効にする。 |
高可用性・バックアップ・リトライ
| 高可用性・バックアップ・リトライ設計のポイント |
|---|
| 【デフォルト】AWS内部で冗長化 ・単一AZ 内の複数ストレージノードへのデータレプリケーション ・書き込みログの冗長保持(書き込みは 複数の冗長レプリカにコミットされてから完了扱い) ・自動障害検出とノード置換(異常を検出すると 自動的に他ノードで冗長性を復元) |
| 【EC2 のマルチ AZ 構成】(EBS は AZ 跨ぎで使えない) |
| 【EBS の種類】選定(gp3 / io1 / io2 / sc1 / st1) |
| 【手動スナップショット】バックアップ保持期間:無期限 EBS 専用の S3 ベースストレージに保存され、リージョン内マルチ AZ 冗長化されています。 スナップショットにより、任意のスナップショット取得時点へ復元可能 |
セキュリティ
| 関連サービス | 設定内容 |
|---|---|
| KMS(データの暗号化と鍵の安全管理) | 【デフォルトで KMS経由の暗号化が有効化】 独自KMSキーを使うことを推奨(鍵操作、監査) |
| Secrets Manager(機密情報の安全管理) | - |
| SSM Parameter Store(設定情報の一元管理) | - |
| CloudTrail(操作履歴の記録・監査・追跡) | 【自動記録】 作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI) データ操作は追跡できない(データプレーンAPI) |
| Config(リソースの構成状態・設定変更を記録) | 【Configが有効な場合】 ボリューム/スナップショット変更履歴・暗号化/パブリックスナップショットの準拠評価 |
| GuardDuty(脅威を自動検出) | 【GuardDutyが有効な場合】 EC2経由のENI通信異常検知 【追加オプション】 EBS Snapshot Scanning導入を推奨 EBS スナップショットを対象にマルウェアを検出(セキュリティチェック用) 【追加オプション】 Malware Protection for EBS導入を推奨 EBS ボリュームをスキャンしてマルウェア感染を検知 EC2 / EBS 単位 既存ボリュームのスナップショットを利用(料金発生) |
ログ・監視
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
| VolumeIdleTime | ボリュームアイドル時間 |
| VolumeQueueLength | ボリュームキュー長 |
| VolumeReadBytes | ボリューム読み取りバイト数 |
| VolumeReadOps | ボリューム読み取りオペレーション数 |
| VolumeTotalReadTime | ボリューム総読み取り時間 |
| VolumeTotalWriteTime | ボリューム総書き込み時間 |
| VolumeWriteBytes | ボリューム書き込みバイト数 |
| VolumeWriteOps | ボリューム書き込みオペレーション数 |
| BurstBalance | バースト残高 |
| VolumeConsumedReadWriteOps | 消費された読み書きオペレーション数 |
| VolumeThroughputPercentage | ボリュームスループット使用率 |
制限値(固定値/ハードリミット/ソフトリミット)
| 固定値 | 制限値 |
|---|---|
| インスタンスあたりのボリューム数 | 40(ほとんどのインスタンス) |
| ハードリミット | 制限値 |
|---|---|
| ボリュームサイズ | 最大64 TiB |
| IOPS(io2 Block Express) | 最大256,000 |
| スループット(gp3/io2) | 最大4,000 MB/s |
| ソフトリミット | 制限値 |
|---|---|
| リージョンあたりのボリューム数 | 5,000(デフォルト) |
| リージョンあたりのスナップショット数 | 100,000 |
| 同時スナップショットコピー数/リージョン | 20 |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| ボリューム容量 | プロビジョニングしたストレージ容量 (gp3、io2など) |
| IOPS | プロビジョニングドIOPS(io1、io2の場合) |
| スループット | 追加プロビジョニングドスループット(gp3の場合) |
| スナップショット | S3に保存されるスナップショットの容量 |
| データ転送 | スナップショットのクロスリージョン転送 |