EC2 ストレージ:インスタンスストアと EBS
一時的なインスタンスストアと永続的な EBS ボリュームを使い分ける場面を理解し、適切な EBS ボリュームタイプを選択します。
「EC2 ストレージ:インスタンスストアと EBS」はCoddyKit上の無料AWS Solutions Architectレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Solutions Architect学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Solutions Architectコースには全4レッスンが含まれています。
EC2 ストレージオプションの概要
EC2 インスタンスでは、Instance Store と Amazon EBS(Elastic Block Store)という 2 種類のローカルストレージを使用できます。Instance Store はホストサーバーに物理的に接続されており、非常に高い IOPS とスループットを提供しますが、重要な注意点があります。インスタンスを停止または終了するとデータが失われます。EBS は、インスタンスの停止、起動、終了後も存続する永続的なネットワーク接続型ブロックストレージを提供します。どちらをいつ使用するかを理解することは、SAA-C03 試験で繰り返し問われるテーマです。
Instance Store: 一時ストレージ
Instance Store(一時ストレージとも呼ばれます)は、EC2 インスタンスを実行するホストハードウェアに物理的に接続された NVMe SSD で構成されます。Instance Store 内のデータは、インスタンスが停止、休止、終了されたとき、または基盤となるハードウェアに障害が発生したときに失われます。ただし、再起動後もデータは保持されます。Instance Store は、バッファ、キャッシュ、スクラッチデータ、一時ファイル、フリート全体に複製されるデータ(例: Cassandra ノード)に最適です。すべてのインスタンスタイプに Instance Store が含まれるわけではありません。d サフィックスを確認してください(例: i3.xlarge、m5d.large)。
# List NVMe block devices on an Instance Store instance
lsblk
# Example output:
# NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
# nvme0n1 259:0 0 500G 0 disk /
# nvme1n1 259:1 0 900G 0 disk <- instance storeAmazon EBS: 永続的なブロックストレージ
Amazon EBS ボリュームは、EC2 インスタンスのライフサイクルとは独立して存続するネットワーク接続型ストレージです。EBS ボリュームは特定の Availability Zone に存在し、一度に 1 つの EC2 インスタンスにアタッチできます(io1/io2 のマルチアタッチを除く)。インスタンスを停止して再起動しても、EBS ボリュームはすべてのデータを保持します。あるインスタンスからデタッチして同じ AZ 内の別のインスタンスにアタッチしたり、スナップショットを作成して別の AZ または Region にコピーしたりできます。
# Create an EBS volume and attach it to an instance
aws ec2 create-volume \
--size 100 \
--volume-type gp3 \
--availability-zone us-east-1a
aws ec2 attach-volume \
--volume-id vol-0abcdef1234567890 \
--instance-id i-0abcdef1234567890 \
--device /dev/xvdfEBSボリュームタイプ:SSDオプション
AWSでは4種類のEBSボリュームタイプを提供しています。gp3(汎用SSD)は、3,000 IOPSおよび125 MB/sをベースラインとし、最大16,000 IOPSおよび1,000 MB/sまで独立して設定できます。デフォルトであり、ほとんどのワークロードにとって最も費用対効果の高い選択肢です。gp2は、サイズに応じてIOPSが拡張される旧世代の汎用SSDです(3 IOPS/GB、最大16,000 IOPS)。gp3への移行が進められています。io2 Block Expressは、最大256,000 IOPSおよび4,000 MB/sに対応するプロビジョンドIOPS SSDで、SAP HANAやOracleなどのI/O負荷が高いデータベースに適しています。io1は、レガシーなプロビジョンドIOPS SSDです。
EBSボリュームタイプ:HDDオプション
HDDベースのEBSタイプは2種類あり、IOPSではなくスループット向けに最適化されています。st1(スループット最適化HDD)は、ベースラインが40 MB/s/TBで、最大250 MB/s/TBまでバーストできます。大規模なシーケンシャル読み取りを行うビッグデータ、ログ処理、データウェアハウスに適しています。sc1(コールドHDD)は、ベースラインが12 MB/s/TBで、最大80 MB/s/TBまでバーストできます。アクセス頻度の低いシーケンシャルデータ向けの、最も低コストなEBSオプションです。HDDボリュームはブートボリューム(ルートデバイス)として使用できません。IOPSよりもスループットが重要で、データアクセスパターンが大規模なシーケンシャル読み取りまたは書き込みである場合に限り、st1またはsc1を選択してください。
EBSスナップショット
EBSスナップショットは、Amazon S3に永続的に保存されるボリュームのポイントインタイムバックアップです(ただし、S3に直接アクセスするのではなく、EC2 APIを通じてアクセスします)。スナップショットは増分方式です。最初のスナップショットではボリューム全体が取得され、それ以降のスナップショットでは、直前のスナップショットから変更されたブロックのみが記録されるため、ストレージコストを削減できます。同じリージョン内であれば、任意のAZの任意のスナップショットから新しいEBSボリュームを作成できます。また、リージョン間のディザスタリカバリのために、スナップショットを別のリージョンへコピーすることもできます。
# Create a snapshot
aws ec2 create-snapshot \
--volume-id vol-0abcdef1234567890 \
--description 'Daily backup of prod DB volume'
# Copy snapshot to another region for DR
aws ec2 copy-snapshot \
--source-region us-east-1 \
--source-snapshot-id snap-0abcdef1234567890 \
--region eu-west-1 \
--description 'Cross-region DR copy'EBS暗号化
EBSボリュームとスナップショットは、AWS KMSキーを使用して暗号化できます。暗号化はインスタンスに対して透過的です。インスタンスとボリューム間の転送中のデータ、およびストレージ上の保存データが暗号化されます。アカウントレベルのデフォルト暗号化を有効にすると、アカウント内で新しく作成されるすべてのEBSボリュームが、ボリュームごとの設定なしに自動的に暗号化されます。暗号化されていないボリュームを暗号化するには、スナップショットを作成し、そのスナップショットの暗号化コピーを作成してから、暗号化されたスナップショットから新しいボリュームを作成する必要があります。
# Enable default EBS encryption for the account
aws ec2 enable-ebs-encryption-by-default --region us-east-1
# Verify it is enabled
aws ec2 get-ebs-encryption-by-default --region us-east-1EBS Multi-Attach
EBS Multi-Attachを使用すると、io1またはio2ボリュームを最大16台のEC2インスタンスに、同じアベイラビリティーゾーン内で同時にアタッチできます。アタッチされたすべてのインスタンスは、完全な読み取りおよび書き込みアクセス権を持ちます。これは、クラスター対応ファイルシステムを使用し、アプリケーション層で同時実行性を管理する、Oracle RACやTeradataなどのクラスター化Linuxアプリケーションで使用されます。Multi-Attachは、共有ファイルシステム向けのEFSの代替ではありません。アプリケーションが調整を管理する、クラスター化されたブロックレベルアクセス専用の機能です。
インスタンスストアとEBSの選択
主な判断基準は次のとおりです。永続性が必要ですか? → EBSを使用します。データを再作成できる、またはレプリケーションされていますか? → インスタンスストアが適しており、より高いパフォーマンスを得られます。重要なデータを扱うデータベースですか? → 必ずEBSを使用します(スナップショットと暗号化も併用します)。MLトレーニングやソート処理用の一時的なスクラッチ領域ですか? → 追加コストなしで最大スループットを得られるインスタンスストアを使用します。試験では、特定のワークロードにエフェメラルストレージと永続ストレージのどちらが適しているかを判断するシナリオがよく出題されます。
EBS最適化インスタンス
EBS最適化インスタンスは、EC2インスタンスとEBS間に専用のネットワーク帯域幅を提供します。この帯域幅は、インスタンス全体で使用する一般的なネットワーク帯域幅とは分離されています。これにより、アプリケーションのトラフィックとストレージI/Oの間でネットワーク帯域幅が競合することを防ぎます。現在のほとんどの世代のインスタンスタイプでは、追加料金なしでEBS最適化がデフォルトで有効になっています。古いインスタンスタイプでは、EBS最適化を手動で有効にする必要があり、追加の時間料金が発生する場合があります。I/O負荷の高いデータベースワークロードでは、ボリュームにプロビジョニングしたIOPSを最大限に活用できるよう、インスタンスタイプがEBS最適化されていることを必ず確認してください。
Amazon Data Lifecycle Manager
Amazon Data Lifecycle Manager(DLM)は、EBSスナップショットとAMIの作成、保持、削除を自動化します。ライフサイクルポリシーを定義し、バックアップ対象のボリューム(タグで指定)、スナップショットの作成頻度(1、2、3、4、6、8、12時間ごと、または毎日)、保持するスナップショット数を指定します。DLMによりカスタムバックアップスクリプトが不要になり、CloudWatchと統合してポリシーの状態を監視できます。リージョン間スナップショットを作成するには、同じDLM定義内でコピー用ポリシーを設定してください。
理解度チェック
このレッスンで学んだAWS Solutions Architect(SAA-C03)の概念について理解度を確認します。
レッスンのまとめ
このレッスンでは、インスタンスストアはローカルI/Oパフォーマンスが最も高い一方でエフェメラルであり、停止または終了するとデータが失われること、EBSは永続的なネットワーク接続型ブロックストレージを提供し、IOPS(gp3、io2)またはスループット(st1、sc1)向けに最適化された4種類のボリュームタイプがあること、そしてEBSスナップショットによってS3に保存されるポイントインタイムバックアップを作成でき、AZ間またはリージョン間のリカバリに利用できることを学びました。次はS3オブジェクトストレージの基礎について学びます。
よくある質問
「EC2 ストレージ:インスタンスストアと EBS」レッスンは無料ですか?
はい。「EC2 ストレージ:インスタンスストアと EBS」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Solutions Architectコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Solutions Architectコースには全4レッスンが含まれています。
「EC2 ストレージ:インスタンスストアと EBS」で何を学びますか?
一時的なインスタンスストアと永続的な EBS ボリュームを使い分ける場面を理解し、適切な EBS ボリュームタイプを選択します。 ブラウザで直接実行するハンズオンコードでAWS Solutions Architectを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AWS Solutions Architectを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAWS Solutions Architectは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「EC2 ストレージ:インスタンスストアと EBS」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAWS Solutions Architectレッスンでコードを書いて実行できますか?
はい。すべてのAWS Solutions Architectレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 初めての EC2 インスタンスを起動する
- インスタンスタイプと料金モデル
- セキュリティグループとキーペア
- EC2 ストレージ:インスタンスストアと EBS