見出し画像

Amazon EBS_種類・暗号化・バックアップ #417

EBSの細かい仕様が自分の中でこんがらかっていたので、ここで一度整理したいと思います。

概要

Amazon EC2で使用されるブロックレベルのストレージサービスです。「単一」のEC2インスタンスからのデータへの最低レイテンシーのアクセスを必要とする場合に適しています。

ストレージ容量は最大16TBですが、新しいボリュームを追加してストレージを追加できます。

また、EBSボリュームは運用中のライブ設定変更に対応しており、サービスを中断することなく、ボリュームタイプ、ボリュームサイズ、iops容量を変更できます。


EBSのボリュームタイプ

EBSには以下の種類があり、用途に応じて使い分けることができます。

General Purpose SSD (gp2 & gp3)

  • gp2

    • バランスの取れた価格と性能

    • ベースラインのIOPSと追加のバーストIOPSが利用可能

    • ワークロードの大半のユースケースに適している

  • gp3

    • カスタマイズ可能な性能と価格

    • IOPSとスループットを個別に調整可能

    • gp2よりもコスト効率が高い

Provisioned IOPS SSD (io1 & io2)

  • 高いIOPSを要求する大規模RDBやNoSQL DBなどのI/O集中型ワークロードに最適

  • EBSマルチアタッチをサポートしており、同じAZにある複数のNitroベースのインスタンス*にアタッチできる

    • ただし以下に注意

      • ファイルへの並列共有アクセスが提供されておらず、同時アクセスの効率が悪い

      • "同じAZ"であるため可用性は高まらない

  • IOPSとボリュームサイズを指定してプロビジョニングする

  • 低レイテンシー

  • io2io1よりも高い耐久性を持ち、99.999%の耐久性を持つ

Throughput Optimized HDD 

  • 大容量のシーケンシャルなI/Oワークロードに最適

  • 高いスループットを持つ

  • ビッグデータ、データウェアハウス、ログ処理などのワークロードに適している

Cold HDD

  • 頻繁にアクセスされないデータに適した低コストHDD

  • スループットを重視したストレージ

  • アーカイブやバックアップなどの低頻度のワークロードに適している

Magnetic

  • 低頻度のワークロードと小さなデータベースに最適

  • 他のEBSボリュームタイプと比較して最もコストが低い

  • レガシーなボリュームタイプで、新しいワークロードでは推奨されない


*Nitroベースのインスタンス: AWSが開発したNitro Systemを利用するEC2インスタンス


暗号化

EBSはAWS KMSを使用して暗号化されます。

暗号化には256ビットのAdvanced Encryption Standardアルゴリズム(AES-256)が採用されており、SLAは99.999%です。

また、EBSボリュームを暗号化すると、
・ボリューム内のデータ
・ボリュームとインスタンス間を移動する全てのデータ
・スナップショット
・スナップショットから作成された全てのボリューム
が暗号化されます(要はだいたい全部暗号化される)。

暗号化の設定方法は大きく2つあります。

デフォルトの暗号化

  • EBSのデフォルトでの暗号化は、リージョン固有の設定 

  • あるリージョンに対して暗号化を有効にした場合、そのリージョン内の個々のボリュームやスナップショットに対して暗号化を無効にできない

  • 暗号化が有効だと、インスタンスタイプがEBS暗号化をサポートしている場合のみ、インスタンスを起動できる

KMSを直接使った暗号化

  • KMSは暗号化キーの生成、管理、ローテーションを行うサービス

  • 暗号化する際、AWS Managed CMK(顧客マスターキー)または顧客が作成したCMKを使用できる

  • キーの管理やアクセスコントロール、監査のトレーサビリティなど、より詳細なキー管理機能を活用できる

デフォルトの暗号化が有効な場合でも、KMSを直接使用してカスタムな設定をした暗号化を適用することは可能です。

なお、サーバーサイド暗号化はS3のオプションであり、EBSでは使用できません。


バックアップ

まず、EBSのデフォルトの耐久性と高可用性として、EBSボリュームをAZに作成すると、その"ゾーン内"で自動的に複製されます。これにより単一のハードウェア障害によるデータ損失を防いでいます。

これとは別にデータをバックアップしておくことも可能です。
以下のようなオプションがあります。

EBSスナップショット

  • 手動でEBSスナップショットを取得できる

  •  AWS Management Console、AWS CLI、またはSDKを使用して、任意のタイミングで実行可能

  • データのコピーをS3に書き込み、複数のAZに冗長的に保存される

  • スナップショットは差分バックアップで、初回はボリューム全体をキャプチャするが、次回以降は変更分のみがキャプチャされる

  • 非同期に行われるため、スナップショットの進行中でもEBSに読み取り書き込みリクエストを出せる

Amazon Data Lifecycle Manager (Amazon DLM)

  • 主にEBSボリュームのスナップショットを自動化し、そのライフサイクルを管理するサービス

  • スナップショットのタイミングや頻度を自動的にスケジュールできる

  • 保持期間を定義し、古いスナップショットを自動的に削除できる

  • インスタンスやボリュームに付与されたタグを基に、どのリソースに対してスナップショットを取るかを制御できる

  • クロスリージョンスナップショットをサポートしており、スナップショットを別のリージョンにコピーできる

  • クロスアカウントスナップショットをサポートしており、スナップショットを別のAWSアカウントにコピーできる

  • スナップショットの作成時に、AWS KMSのキーを使用して暗号化を適用することが可能

  • アクションやイベントはCloudTrailで監査でき、CloudWatchでスナップショットの作成や削除の成功・失敗をモニタリングできる

  • Amazon EFSのバックアップのライフサイクル管理もサポートしている

EC2インスタンスのAMI

  • EC2インスタンスのバックアップを取ることで、それにアタッチされているEBSボリュームも一緒にバックアップされる

  • AMIを使用して新しいEC2インスタンスを起動する際に、同じ状態のEBSボリュームも再作成される


ここまでお読みいただきありがとうございました!

この記事が気に入ったらサポートをしてみませんか?