backend
A
信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
EC2 AMI とインスタンスストア — EBSバックアップとエフェメラルの違い
AWSのAMIタイプ(EBSバックストアvs インスタンスストアバックストア)の違い、EBSボリュームとインスタンスストアのパフォーマンス比較、AMIのコピーとシェア、ゴールデンAMI設計を解説。
一言結論
インスタンスストアは停止・終了でデータが消えるため一時的なキャッシュや中間データ専用であり、永続データは必ずEBSかS3に保存する設計が鉄則だ。
AMI バックストアの種類
AMI(Amazon Machine Image)にはルートボリュームのストレージタイプによって2種類ある。
EBSバックAMI:
→ ルートボリュームがEBS
→ インスタンス停止後もデータが残る
→ 停止・起動が可能
→ スナップショットで簡単にAMI作成
→ 現代のほとんどの用途はこれ
インスタンスストアバックAMI:
→ ルートボリュームがインスタンスストア(NVMeローカルSSD)
→ インスタンス停止/終了でデータが消える(エフェメラル)
→ 停止はできない(再起動は可能)
→ 高速なローカルI/O(EC2インスタンス内のNVMe)
→ 特定のインスタンスタイプのみ対応
インスタンスストアの特性
インスタンスストアが優れている点:
→ 非常に低レイテンシー(ローカルNVMe SSD)
→ 高いIOPS(io2 Block Expressより速い場合がある)
→ EBSのネットワーク帯域を消費しない
→ 追加料金なし(インスタンス料金に含まれる)
インスタンスストアの制限:
→ 停止/終了するとデータ消失
→ スナップショット不可
→ EBSのような動的サイズ変更不可
インスタンスストアに適したデータ:
✅ 一時的なスクラッチ領域
✅ バッファ・キャッシュ(Redis等の揮発性データ)
✅ HDFSのデータノード(HDFS自体がレプリカを管理)
✅ 処理途中の中間データ
EC2 インスタンスタイプ別ストレージ
インスタンスストア搭載タイプ:
i4i.large〜: ストレージ最適化(高IOPS NVMe)
is4gen.medium〜: AWS Graviton2の高IOPS
d3.xlarge〜: HDD(大容量・順次アクセス)
c5d.large〜: コンピュート最適化 + NVMe
m5d.large〜: 汎用 + NVMe
r5d.large〜: メモリ最適化 + NVMe
※ 接尾辞「d」がインスタンスストア搭載を示す
AMIの作成とライフサイクル
# 実行中インスタンスからAMIを作成
aws ec2 create-image \
--instance-id i-xxx \
--name "my-app-v1.2.0-$(date +%Y%m%d)" \
--description "Production AMI for my-app version 1.2.0" \
--no-reboot # 実行中のまま作成(データ整合性に注意)
# AMIの確認
aws ec2 describe-images \
--owners self \
--filters Name=name,Values="my-app-*"
ゴールデン AMI パターン
ゴールデンAMI(Golden AMI):
→ セキュリティ設定済み、必要なエージェントインストール済みの
標準ベースイメージ
→ 全EC2インスタンスはゴールデンAMIをベースに起動
ゴールデンAMIに含めるもの:
→ SSM Agent(最新版)
→ CloudWatch Agent
→ セキュリティパッチ適用済みOS
→ 会社標準のセキュリティ設定
→ Inspector エージェント
EC2 Image Builder でゴールデンAMIを自動化:
→ パイプラインでOSパッチ適用を自動化
→ CIS ベンチマーク等のセキュリティテストを統合
→ AMIの配布先リージョン/アカウントを設定
AMI のコピーとシェア
# AMIを別リージョンにコピー(DR用)
aws ec2 copy-image \
--source-region ap-northeast-1 \
--source-image-id ami-xxx \
--region us-east-1 \
--name "my-app-v1.2.0-us-east-1" \
--encrypted \
--kms-key-id arn:aws:kms:us-east-1:123456789012:key/yyy
# 別アカウントにAMIをシェア
aws ec2 modify-image-attribute \
--image-id ami-xxx \
--launch-permission Add=[{UserId=999999999999}]
# Organizationsにシェア
aws ec2 modify-image-attribute \
--image-id ami-xxx \
--launch-permission Add=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-xxx}]
試験頻出ポイント
| シナリオ | 回答 |
|---|---|
| EC2停止後もデータを保持 | EBSバックAMI |
| 最高のローカルI/OパフォーマンスA | インスタンスストア(NVMe) |
| インスタンスストアのデータ消失タイミング | 停止・終了時(再起動では消えない) |
| 標準化されたEC2イメージの管理 | ゴールデンAMI + EC2 Image Builder |
| AMIを別リージョンに展開 | AMIコピー(KMSキーの再暗号化が必要) |
まとめ
現代の一般的なワークロードにはEBSバックAMIを使い、高性能な一時データ処理にはインスタンスストアを活用する。インスタンスストアのデータは停止・終了で消えるため、永続的なデータは必ずEBSまたはS3に保存する。