目次

Amazon EC2 完全ガイド 2026

初心者から実務者向けの包括的解説

Amazon EC2(Elastic Compute Cloud) は、AWS が提供するクラウド仮想サーバーサービスであり、秒単位で起動・停止できるスケーラブルなコンピューティング環境です。CPU / メモリ / ストレージ / ネットワークを自由に選択し、Linux / Windows / macOS / RHEL など複数の OS を実行でき、オンプレミスからの Lift & Shift 移行から最新 AI/ML 推論まで、AWS コンピューティングの 基盤サービス として機能します。本ドキュメントは、EC2 の概念・インスタンスタイプ・購入オプション・セキュリティ・運用・最新動向を体系的に解説する包括的ガイドです。

ドキュメントの目的

本ガイドは以下を対象としています。

  • 初心者向け: EC2 とは何か、インスタンスとは何かを学びたい方
  • 開発者・SRE 向け: インスタンス設計・起動・スケーリング・監視を実装したい方
  • アーキテクト向け: EC2 / ECS / Lambda の選定基準を理解したい方
  • 意思決定者向け: EC2 vs Fargate vs Lambda の比較・コスト最適化・投資判断

EC2 の位置づけ

EC2 は、AWS コンピューティングスタックの 最も制御性の高い選択肢 です。

  • EC2(本ドキュメント):フルコントロール、OS カーネル調整可能、すべてのインスタンスタイプ利用可
  • ECS / EKS:コンテナ化・Kubernetes、一部管理
  • Lambda:サーバーレス、最小管理、秒単位課金
  • Fargate:コンテナ、インスタンス管理不要

2026 年の EC2 エコシステム

  • Graviton4(c7g系 後継):最新 Graviton4 プロセッサで Intel/AMD 比 20-30% コスト削減
  • AMD EPYC (r8g 系):第 8 世代メモリ最適化インスタンス、512GB+ メモリ対応
  • Trainium / Inferentia:ML トレーニング(trn1)・推論(inf2)専用チップ、ジェネレーティブ AI
  • Local Zones:大都市圏での超低レイテンシ
  • Outposts:オンプレミスに AWS インフラ配置
  • Mac インスタンス:M3 Max / M4 による iOS/macOS 開発・ビルド
  • AI/ML 統合:SageMaker との統合強化、AutoML

目次

  1. 概要
  2. EC2 が解決する課題
  3. 主な特徴
  4. アーキテクチャ
  5. インスタンスタイプ
  6. ストレージオプション
  7. ネットワーキング
  8. 購入オプション
  9. Auto Scaling と ELB 連携
  10. セキュリティ
  11. 運用・監視
  12. 主要ユースケース
  13. 他の類似ツールとの比較
  14. クライアントとエコシステム
  15. ベストプラクティス
  16. トラブルシューティング
  17. 2025-2026 最新動向
  18. 学習リソース
  19. 実装例・活用シーン
  20. 導入ロードマップ
  21. 実装チェックリスト
  22. まとめ
  23. 参考文献

概要

初心者向けメモ: EC2 は「IaaS(Infrastructure as a Service)」です。サーバー = インスタンス と呼ぶ仮想マシンを、オンデマンドで秒単位で起動・停止でき、OS ディスク(EBS)・ネットワーク(VPC)・IAM ロール等を自由に設定できます。「料金は秒単位」「ハードウェアは共有」「スケーリングは自動」が 3 つの特徴です。

EC2 公式定義:

“Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud.”

EC2 インスタンスは、VPC 内にデプロイされ、EBS ボリュームをストレージに、Security Group でネットワークをフィルタリングし、IAM Role で AWS API アクセス権を管理します。

このサービスを選ぶ理由

なぜ EC2 でないといけないのか?

理由 詳細
フルコントロール Lambda / Fargate / App Runner 等マネージドでは OS レベルのカーネルパラメーター調整・特定ランタイム固定が難しい場合でも EC2 は完全な OS 制御を提供
既存システムの Lift & Shift オンプレミスアプリをコード変更なしにそのままクラウド移行、ライセンス持込(BYOL)可
幅広いインスタンスファミリー 汎用(m系)・コンピュート最適化(c系)・メモリ最適化(r系)・GPU(p/g系)・HPC(hpc系)で用途別最適化
スポットインスタンス 最大 90% コスト削減で大規模バッチ処理・ML トレーニング実現
Graviton / カスタムチップ AWS 製プロセッサで 20-40% コスト効率向上、AI 推論(Inferentia)・訓練(Trainium)専用チップ

具体的なユースケース

  • レガシー Web アプリの Lift & Shift 移行(オンプレ → EC2 + RDS
  • GPU インスタンス(p4d / p3)での深層学習モデルトレーニング
  • ハイメモリインスタンス(r7g / x2gd)での SAP HANA / Oracle DB 稼働
  • Trainium(trn1)インスタンスでの大規模言語モデル訓練
  • スポットフリートを使った大規模バッチ処理(画像変換・ログ解析)
  • Windows Server + SQL Server ライセンス持込(BYOL)での Windows 構築
  • HPC Cluster プレイスメントグループでの計算化学・気象シミュレーション
  • Mac インスタンス(m2 / m3)での iOS/macOS アプリビルド

EC2 が解決する課題

課題 従来(オンプレミス) EC2 での解決
ハードウェア調達 / コスト 購入・納品・保守で数ヶ月・初期投資大 秒単位起動、従量課金、CapEx → OpEx
スケーリング 手動追加・廃棄、事前計画必須 Auto Scaling で自動スケーリング
レイテンシ 地理的制約、リージョン構築困難 多地域リージョン + CloudFront + Local Zones
セキュリティアップデート OS パッチ適用管理が業務 Systems Manager Patch Manager で自動化
ディザスタリカバリ / バックアップ テープ・外部媒体、複雑 EBS Snapshot / Data Lifecycle Manager で自動化

主な特徴

特徴 説明
秒単位起動 インスタンス起動 30-60 秒、料金は秒単位
インスタンスタイプの豊富さ 500+ 種類以上の組み合わせ(CPU・メモリ・GPU・ネットワーク)
独立したネットワーク設定 VPC / ENI で複数ネットワークインターフェイス構成
インスタンスメタデータサービス EC2 内から AWS API 呼び出し、IAM Role で権限管理
スケーラビリティ Auto Scaling + ELB で負荷に応じた自動スケーリング
リザーブドインスタンス / Savings Plans 1-3 年コミットで最大 72% コスト削減
スポットインスタンス 予備容量を最大 90% 割引で利用可能
カスタム AMI Packer / EC2 Image Builder で黄金イメージを IaC で管理
複数 OS 対応 Amazon Linux 2 / Ubuntu / RHEL / SUSE / CentOS / Windows / macOS / Debian
EBS-optimized / ENA / Placement Group 高パフォーマンス・ロー遅延ネットワーク構成

アーキテクチャ

初心者向けメモ: EC2 インスタンスは VPC 内に配置 され、EBS ボリュームでストレージ・ENI でネットワーク・IAM Role で権限を管理します。「インスタンスは VPC の何かの Subnet(サブネット)に入る」が基本。

【図1】EC2 インスタンスの配置構造:

graph TD
    AWS["AWS リージョン(東京・オレゴン等)"]
    AWS --> AZ1["AZ-1a(アベイラビリティゾーン)"]
    AWS --> AZ2["AZ-1c"]
    
    AZ1 --> VPC["VPC<br/>10.0.0.0/16"]
    AZ2 --> VPC
    
    VPC --> Sub1["Subnet-1a<br/>10.0.1.0/24"]
    VPC --> Sub2["Subnet-1c<br/>10.0.2.0/24"]
    
    Sub1 --> Inst1["Instance i-001<br/>m6i.large<br/>10.0.1.10"]
    Sub2 --> Inst2["Instance i-002<br/>m6i.large<br/>10.0.2.10"]
    
    Inst1 --> EBS1["EBS vol-001<br/>gp3 100GB"]
    Inst2 --> EBS2["EBS vol-002<br/>gp3 100GB"]
    
    Inst1 --> ENI1["ENI<br/>プライベート IP<br/>Elastic IP 付与可"]
    Inst2 --> ENI2["ENI<br/>プライベート IP"]

Region / AZ / VPC

  • Region(リージョン):地理的に独立した AWS データセンター群(東京 ap-northeast-1、オレゴン us-west-2 等)。リージョン間ネットワークは有料
  • AZ(Availability Zone):リージョン内の物理的に独立したデータセンター。同一 AZ 内は無料、異 AZ は有料だが冗長化が容易
  • VPC:Virtual Private Cloud。論理的なプライベートネットワーク。VPC.md 参照
  • Subnet:VPC 内の特定 AZ に紐付く IP ブロック

インスタンスメタデータサービス(IMDS)

EC2 内から AWS API 呼び出しに使用する認証情報を取得。IMDSv2(トークン方式)が推奨。

# IMDSv2 でメタデータ取得(2024 年から推奨・デフォルト化)
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" \
  -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")

# インスタンス ID 取得
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
  http://169.254.169.254/latest/meta-data/instance-id
  
# IAM ロールの一時認証情報取得
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
  http://169.254.169.254/latest/meta-data/iam/security-credentials/my-role-name

インスタンスタイプ

初心者向けメモ: インスタンスタイプ = CPU・メモリ・ネットワークの組み合わせ。命名規則は c7g.2xlarge のような [ファミリー][世代][サイズ] 形式。ファミリーで用途が決まる。

インスタンス命名規則

  c7g.2xlarge
  │││ └── サイズ(nano/micro/.../24xlarge)
  ││└──── 追加機能(g=Graviton / i=NVMe / n=Network強化 / d=Dense Storage)
  │└───── 世代(7 = 第 7 世代 = 2024 年)
  └────── ファミリー(c/m/r/t/p/g/x など)

主要インスタンスファミリー

ファミリー CPU メモリ 用途 代表型 料金
t4g / t3 / t2 バースト可能 開発・小規模 Web・テスト t3.medium
m7g / m6i バランス型 バランス Web・アプリサーバー・一般業務 m6i.xlarge
c7g / c6i 高性能 CI/CD・コンパイル・バッチ処理 c6i.2xlarge
r7g / r6i 大(128GB+) DB サーバー・キャッシュ・インメモリ処理 r7g.2xlarge 中-高
x2gd / x2iezn 超大(3.9TB+) SAP HANA・Oracle・メモリ DB x2gd.12xlarge
p4d / p3 GPU(深層学習・推論) p3.8xlarge 非常に高
g4dn / g5 GPU(推論・ビデオ処理) g5.xlarge
inf2 / inf1 専用 Inferentia(ML 推論専用) inf2.2xlarge
trn1 専用 Trainium(ML 訓練専用) trn1.32xlarge
hpc7g / hpc6a 高性能 HPC クラスター(EFA ネットワーク) hpc7g.16xlarge
mac2 / mac1 M1/M2/Intel 24GB+ macOS(iOS/macOS ビルド) mac2.metal
i4i / i3 高性能 ストレージ最適化(DB インデックス・Hadoop) i4i.3xlarge

プロセッサの選択

  • Intel(Xeon):従来型、タイプ末尾なし(c6i)や i 系(c6i)
  • AMD(EPYC)a 系(c6a / m6a / r6a)、Intel より低コスト傾向
  • AWS Graviton3 / Graviton4g 系(c7g / m7g / r7g)、Intel 比 20-40% コスト効率向上が推奨、ただし一部ソフトウェア非対応注意

ストレージオプション

初心者向けメモ: EC2 のストレージは 3 種類:EBS(推奨:永続化・スナップショット可) / Instance Store(高速・臨時) / EFS(NFS 共有)

EBS(Elastic Block Store)

EBS.md 参照。EC2 に接続されるブロックストレージ。推奨タイプ:

タイプ IOPS スループット 用途 注記
gp3(推奨) 3,000-16,000 125-1,000 MB/s 一般的(汎用) 新規は gp3 選択、gp2 は旧式
io2 Block Express 64,000-256,000 1,000-4,000 MB/s 超高 IOPS DB(Oracle・SQL Server) 非常に高コスト
st1 最大 500 最大 500 MB/s ビッグデータ・Hadoop(シーケンシャル) スループット最適化
sc1 最大 250 最大 250 MB/s アーカイブ・バックアップ コスト最適化

Instance Store(インスタンスストア)

インスタンスに物理的に接続される NVMe SSD / HDD。インスタンス停止で削除(一時的データのみ)。

  • 利点:極めて高速、EBS より低レイテンシ
  • 欠点:永続化されない、RAID 構成も不可自動
  • 用途:キャッシュ(ElastiCache 推奨)・臨時バッチ処理・デフォルトは EBS 推奨

EFS(Elastic File System)

NFS ベースの共有ファイルシステム。複数 EC2 インスタンスから同時マウント可能。

  • EFS.md 参照
  • 用途:複数インスタンス間でファイル共有(Web コンテンツ・コード・ホームディレクトリ)
  • 料金:ストレージ容量 + アクセス料(オンデマンド / プロビジョニング)

FSx(ファイルサーバー)

Windows File Server / Lustre / NetApp ONTAP の マネージドファイルシステム。


ネットワーキング

初心者向けメモ: EC2 は VPC 内の Subnet に配置 され、Security Group で通信をフィルタリングElastic IP で固定 IP を割り当てENI で複数ネットワークインターフェイスを構成 できます。

VPC / Subnet / Security Group

VPC.md 参照。EC2 は VPC 内の Subnet(サブネット)に配置。

# EC2 インスタンス起動時に VPC / Subnet / Security Group を指定
aws ec2 run-instances \
  --image-id ami-0b20f552f63953f0e \
  --instance-type t3.medium \
  --subnet-id subnet-0123456789abcdef0 \
  --security-group-ids sg-0123456789abcdef0 \
  ...

ENI(Elastic Network Interface)

初心者向けメモ: 1 つのインスタンスに複数の ENI(ネットワークインターフェイス)を接続可能。各 ENI に異なるプライベート IP / Elastic IP / Security Group を割り当て可。

# ENI 作成
aws ec2 create-network-interface \
  --subnet-id subnet-0123456789abcdef0 \
  --private-ip-addresses PrivateIpAddress=10.0.1.50

# インスタンスに ENI アタッチ
aws ec2 attach-network-interface \
  --network-interface-id eni-0123456789abcdef0 \
  --instance-id i-0123456789abcdef0 \
  --device-index 1

Elastic IP(固定 IP)

パブリック IP を固定化。インスタンス停止・起動でも IP を保持。

# Elastic IP 割り当て
aws ec2 allocate-address --domain vpc
# 結果: AllocationId = eipalloc-0123456789abcdef0

# Elastic IP をインスタンスに関連付け
aws ec2 associate-address \
  --allocation-id eipalloc-0123456789abcdef0 \
  --instance-id i-0123456789abcdef0

Placement Group

複数インスタンスを物理的に配置。低遅延ネットワーク必要な HPC / DB クラスタリング向け。

タイプ 特性 用途
Cluster 同一 AZ、超低遅延(< 1μs) HPC・Kubernetes
Partition 複数 AZ、論理的分割 Hadoop・Kafka クラスタ
Spread 複数 AZ、分散配置 SQL Server・Oracle ライセンス
# Placement Group 作成
aws ec2 create-placement-group \
  --group-name hpc-cluster \
  --strategy cluster

# グループ内でインスタンス起動
aws ec2 run-instances \
  --image-id ami-xxx \
  --instance-type hpc7g.16xlarge \
  --placement GroupName=hpc-cluster

ENA(Enhanced Networking)・EBS-optimized

  • ENA:高速ネットワーク、100Gbps 対応(HPC / DB向け)
  • EBS-optimized:EBS への帯域幅専有(DB 向け)

購入オプション

初心者向けメモ: EC2 料金は購入オプションで大きく変わります。常時稼働なら Savings Plans短期なら オンデマンド中断許容ならスポット

購入タイプ 割引 コミット期間 用途 料金予測
オンデマンド なし(基準) なし 短期・不定期・テスト 最高
Savings Plans 最大 72%(1年)/ 最大 51%(3年) 1 or 3 年 常時稼働(推奨)
Reserved Instance(RI) 最大 72% 1 or 3 年 特定インスタンス固定(非推奨)
スポットインスタンス 最大 90% 随時(最大 6 時間) バッチ・ML訓練・開発(中断許容) 最低
Dedicated Host 時間料金 1 or 3 年 BYOL(Windows / SQL Server)
Dedicated Instance 時間料金 なし 占有物理ホスト(共有なし) 中-高
Capacity Reservation オンデマンド価格 柔軟 容量確保(キャパシティ保証)

Savings Plans による割引の最大化

# 1 年 Savings Plans(計算系が 72% 割引)
aws ce compute-savings-plans recommendations \
  --return-recommendations-target-type "SAVINGS_PLANS"

ポイント:Savings Plans は インスタンスファミリー・リージョン内で柔軟。例:m6i.large の Savings Plans は m5i.xlarge でも利用可(ただし使用時間当たりの割引額は変更)。

スポットインスタンスの活用(最大 90% 割引)

# スポット価格の確認
aws ec2 describe-spot-price-history \
  --instance-types c6i.xlarge m5.xlarge \
  --product-descriptions "Linux/UNIX" \
  --start-time "$(date -u -v-7d '+%Y-%m-%dT%H:%M:%S')" \
  --query 'SpotPriceHistory[*].{Type:InstanceType,AZ:AvailabilityZone,Price:SpotPrice}' \
  --output table

# スポットフリート(複数インスタンスタイプ指定)
aws ec2 request-spot-fleet \
  --spot-fleet-request-config file://spot-fleet-config.json

注記:スポットインスタンスは 2 分前通知で中断される可能性。Auto Scaling + Spot Placement Score で リスク低減。


Auto Scaling と ELB 連携

初心者向けメモ: Auto Scaling + ELB = 「負荷に応じたインスタンス自動増減」。複数 AZ に分散配置、ヘルスチェック自動。

【図2】Auto Scaling Group の構造:

graph TD
    ASG["Auto Scaling Group<br/>最小 2・最大 10"]
    
    ASG --> LC["起動テンプレート<br/>AMI・インスタンスタイプ"]
    ASG --> CW["CloudWatch<br/>CPU > 70% で スケールアップ"]
    
    ASG --> AZ1["AZ-1a"]
    ASG --> AZ2["AZ-1c"]
    
    AZ1 --> Inst1["Instance 1"]
    AZ1 --> Inst2["Instance 2"]
    AZ2 --> Inst3["Instance 3"]
    
    Inst1 --> ELB["Network Load Balancer<br/>ヘルスチェック・分散"]
    Inst2 --> ELB
    Inst3 --> ELB
    
    ELB --> User["ユーザー"]

Auto Scaling Group(ASG)の設定

# 起動テンプレート作成
aws ec2 create-launch-template \
  --launch-template-name web-servers \
  --launch-template-data '{
    "ImageId": "ami-0b20f552f63953f0e",
    "InstanceType": "t3.medium",
    "KeyName": "my-keypair",
    "SecurityGroupIds": ["sg-0123456789abcdef0"],
    "IamInstanceProfile": {"Name": "EC2-Instance-Profile"},
    "UserData": "IyEvYmluL2Jhc2gKc3VkbyB5dW0gdXBkYXRlIC15CnN1ZG8geXVtIGluc3RhbGwgLXkgaHR0cGQK"
  }'

# Auto Scaling Group 作成
aws autoscaling create-auto-scaling-group \
  --auto-scaling-group-name web-asg \
  --launch-template LaunchTemplateName=web-servers,Version=\$Latest \
  --min-size 2 \
  --max-size 10 \
  --desired-capacity 4 \
  --availability-zones ap-northeast-1a ap-northeast-1c \
  --health-check-type ELB \
  --health-check-grace-period 300 \
  --target-group-arns arn:aws:elasticloadbalancing:...

スケーリングポリシー

# ターゲット追跡スケーリング(推奨)
aws autoscaling put-scaling-policy \
  --auto-scaling-group-name web-asg \
  --policy-name target-tracking-cpu \
  --policy-type TargetTrackingScaling \
  --target-tracking-configuration '{
    "TargetValue": 70.0,
    "PredefinedMetricSpecification": {
      "PredefinedMetricType": "ASGAverageCPUUtilization"
    },
    "ScaleOutCooldown": 60,
    "ScaleInCooldown": 300
  }'

セキュリティ

初心者向けメモ: EC2 セキュリティは 3 層:① IAM Role(AWS API 呼び出し権限)、② Security Group(ネットワークインバウンド / アウトバウンド)、③ OS レベル(firewall / SSH 設定)。

IAM Role(インスタンスプロファイル)

EC2 内から AWS API(S3 / RDS / Secrets Manager など)を呼び出すための権限。

# IAM ロール作成(AssumeRole ポリシー自動)
aws iam create-role \
  --role-name EC2-S3-Access \
  --assume-role-policy-document '{
    "Version": "2012-10-17",
    "Statement": [{
      "Effect": "Allow",
      "Principal": {"Service": "ec2.amazonaws.com"},
      "Action": "sts:AssumeRole"
    }]
  }'

# ポリシーアタッチ
aws iam attach-role-policy \
  --role-name EC2-S3-Access \
  --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

# インスタンスプロファイル作成
aws iam create-instance-profile \
  --instance-profile-name EC2-S3-Instance-Profile

aws iam add-role-to-instance-profile \
  --instance-profile-name EC2-S3-Instance-Profile \
  --role-name EC2-S3-Access

# インスタンス起動時に指定
aws ec2 run-instances \
  --iam-instance-profile Name=EC2-S3-Instance-Profile \
  ...

Security Group(ネットワークフィルタ)

VPC.md 参照。EC2 のインバウンド / アウトバウンド通信を制御。

# Security Group 作成
aws ec2 create-security-group \
  --group-name web-sg \
  --description "Web server security group" \
  --vpc-id vpc-0123456789abcdef0

# HTTP (80) を世界公開
aws ec2 authorize-security-group-ingress \
  --group-id sg-0123456789abcdef0 \
  --protocol tcp --port 80 --cidr 0.0.0.0/0

# HTTPS (443) を世界公開
aws ec2 authorize-security-group-ingress \
  --group-id sg-0123456789abcdef0 \
  --protocol tcp --port 443 --cidr 0.0.0.0/0

# SSH を特定 CIDR のみ許可
aws ec2 authorize-security-group-ingress \
  --group-id sg-0123456789abcdef0 \
  --protocol tcp --port 22 --cidr 203.0.113.0/24

IMDSv2(メタデータサービス)

初心者向けメモ: IMDS(メタデータサービス)から EC2 が IAM ロールの認証情報を取得。IMDSv2(トークン方式)が推奨。IMDSv1(ヘッダーのみ)は SSRF 攻撃に脆弱。

# IMDSv2 強制(2024 年デフォルト化)
aws ec2 modify-instance-metadata-options \
  --instance-id i-0123456789abcdef0 \
  --http-tokens required \
  --http-endpoint enabled \
  --http-put-response-hop-limit 1

# 新規起動のデフォルト設定
aws ec2 modify-instance-metadata-defaults \
  --http-tokens required \
  --http-endpoint enabled \
  --region ap-northeast-1

Systems Manager Session Manager

初心者向けメモ: 「SSH キーなし」で EC2 に接続。IAM Role + Systems Manager Agent + Session Manager。推奨・デフォルト化傾向

# インスタンスに SSM ロールをアタッチ
aws iam attach-role-policy \
  --role-name EC2-Role \
  --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

# Session Manager で接続
aws ssm start-session \
  --target i-0123456789abcdef0

# または EC2 Instance Connect Endpoint(VPC内のみ)
aws ec2-instance-connect ssh \
  --instance-id i-0123456789abcdef0

Systems Manager Session Manager のセキュリティ

  • IAM ポリシーで誰が接続できるかを管理
  • CloudTrail で接続ログ記録
  • KMS で CloudWatch Logs 暗号化
  • セッションドキュメントで実行コマンド制限
  • SSH キー は使用しない

運用・監視

初心者向けメモ: EC2 の運用は CloudWatch(メトリクス) + EC2 Health(ステータスチェック) + Systems Manager Patch Manager(パッチ) + EC2 Instance Inspector(脆弱性診断) で自動化。

CloudWatch でメトリクス監視

# CPU 使用率の確認
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --start-time "$(date -u -d '1 hour ago' '+%Y-%m-%dT%H:%M:%S')" \
  --end-time "$(date -u '+%Y-%m-%dT%H:%M:%S')" \
  --period 300 \
  --statistics Average,Maximum
  
# ダッシュボード作成
aws cloudwatch put-dashboard \
  --dashboard-name EC2-Monitoring \
  --dashboard-body file://dashboard-config.json

EC2 ステータスチェック

インスタンスの健全性を自動監視。失敗時は Auto Scaling で自動置換。

# ステータスチェック確認
aws ec2 describe-instance-status \
  --instance-ids i-0123456789abcdef0 \
  --query 'InstanceStatuses[*].{ID:InstanceId,Status:InstanceStatus.Status,SystemStatus:SystemStatus.Status}'

Systems Manager Patch Manager

OS パッチの自動適用。Default(Fast) / Critical / Important のみ など戦略選択。

# パッチのスキャン(組織全体)
aws ssm create-patch-baseline \
  --name "Linux-Critical-Patches" \
  --operating-system AMAZON_LINUX_2 \
  --approval-rules '{"PatchRules":[{"PatchFilterGroup":{"PatchFilters":[{"Key":"CLASSIFICATION","Values":["Critical"]}]},"ComplianceLevel":"CRITICAL","ApproveAfterDays":7}]}' \
  --description "Critical patches for AL2"

# パッチメンテナンスウィンドウ設定
aws ssm create-maintenance-window \
  --name "Patch-Window" \
  --schedule "cron(0 2 ? * SUN *)" \
  --duration 4 \
  --cutoff 1 \
  --allow-unassociated-targets false

Amazon Inspector(脆弱性診断)

EC2 インスタンスとコンテナイメージの脆弱性を自動スキャン(Systems Manager Agent 必須)。

# Inspector スキャン開始
aws inspector2 create-findings-report \
  --report-format JSON \
  --s3-export-options bucketName=my-bucket,keyPrefix=inspector

主要ユースケース

初心者向けメモ: EC2 は 「何でも実行できる」 が強み。以下は代表的なユースケース 10+。

1. Web / API サーバー

構成:ALB + ASG(EC2 m6i / m7g)+ RDS

# Nginx 起動スクリプト(user-data)
#!/bin/bash
yum update -y
yum install -y nginx
systemctl start nginx
systemctl enable nginx

2. バッチ処理・データパイプライン

構成:EventBridge + Lambda(起動)→ スポットフリート(EC2)→ S3

  • AWS Batch(コンテナ化の場合)
  • スポットフリート(cost savings)

3. 深層学習モデルトレーニング

構成:p3.8xlarge(NVIDIA A100)+ SageMaker または自社フレームワーク

# 起動(deep learning AMI 使用)
aws ec2 run-instances \
  --image-id ami-0xxx-dl \
  --instance-type p3.8xlarge \
  --placement AvailabilityZone=ap-northeast-1a \
  --ebs-optimized

4. Trainium(ML 訓練専用)による大規模 LLM 訓練

trn1.32xlarge:AWS Trainium チップ(TensorFlow / PyTorch サポート)で大規模言語モデル訓練。

5. Inferentia(ML 推論専用)による低遅延推論

inf2.2xlarge:Inferentia2 チップで ML 推論を低コストで実行。

6. HPC(計算化学・気象シミュレーション)

構成:hpc7g.16xlarge + Placement Group Cluster + EFA(高速ネットワーク)

7. Lift & Shift(オンプレミス→EC2 移行)

構成:AWS DataSync + Application Migration Service(MGN)でエージェントレス移行

8. Windows Server + SQL Server(BYOL)

構成:Windows インスタンス + Dedicated Host(ライセンス持込)

9. macOS(iOS/macOS 開発・ビルド)

m3.large(M3 Max):Xcode ビルド・TestFlight 署名・AppStore デプロイ

10. CI/CD エージェント

構成:t3.medium(または c6i)+ GitHub Actions Runner / GitLab Runner / Jenkins Agent

11. ゲームサーバー

構成:r6i(メモリ最適化)+ ECS / Spot Instances(cost reduction)+ GameLift

12. レガシー(COBOL / 3GL)システム

構成:Windows / RHEL インスタンス + Mainframe emulation / Rumba+ ソフトウェア


他の類似ツールとの比較

サービス 制御度 管理負荷 コスト 最小起動時間 スケーリング 用途
EC2 最高 高(OS管理) 30-60秒 手動or Auto Scaling Web・バッチ・HPC・レガシー
ECS Fargate 中(コンテナ) 10-20秒 自動 コンテナワークロード(ビルド済み)
Lambda 低(FaaS) 最低 低(短時間)/ 高(長時間) 1-5秒 自動 サーバーレス・イベント駆動
Lightsail 1分 手動 小規模ブログ・開発環境
Google Compute Engine 最高 中(若干高) 30-60秒 自動 マルチクラウド戦略
Azure VM 最高 30-60秒 自動 マルチクラウド・Windows

選び方

  • EC2:OS 全制御・既存ソフト・特定ランタイム版・AI/ML・HPC が必要な場合
  • Fargate:コンテナ化済み・管理最小化が目的の場合
  • Lambda:イベント駆動・秒単位で消滅するワークロード(API エンドポイント・定期処理)

クライアントとエコシステム

AWS CLI / SDK

# AWS CLI でインスタンス操作
aws ec2 run-instances --image-id ami-xxx --instance-type t3.medium

# Python SDK(Boto3)
import boto3
ec2 = boto3.resource('ec2', region_name='ap-northeast-1')
instances = ec2.create_instances(ImageId='ami-xxx', MinCount=1, MaxCount=1)

Infrastructure as Code(IaC)

ツール 言語 用途
CloudFormation JSON/YAML AWS 公式、宣言的
Terraform HCL マルチクラウド対応(推奨)
AWS CDK Python/TypeScript/Java プログラマティック(Python推奨)
# Terraform 例
resource "aws_instance" "web" {
  ami           = "ami-0b20f552f63953f0e"
  instance_type = "t3.medium"
  subnet_id     = aws_subnet.public.id
  
  root_block_device {
    volume_size           = 100
    volume_type           = "gp3"
    delete_on_termination = true
    encrypted             = true
  }
  
  tags = {
    Name = "web-server"
  }
}

Packer(AMI ビルド)

Packer で黄金イメージを IaC で自動生成。

source "amazon-ebs" "linux" {
  ami_name      = "web-server-golden"
  instance_type = "t3.medium"
  region        = "ap-northeast-1"
}

build {
  sources = ["source.amazon-ebs.linux"]
  
  provisioner "shell" {
    inline = [
      "yum update -y",
      "yum install -y nginx",
      "systemctl enable nginx"
    ]
  }
}

Ansible / Chef / Puppet

Config management by code。

# Ansible 例
---
- hosts: ec2
  gather_facts: yes
  tasks:
    - name: Update packages
      yum: name=* state=latest
    
    - name: Install Nginx
      yum: name=nginx state=present
    
    - name: Start Nginx
      service: name=nginx state=started enabled=yes

ベストプラクティス

コスト最適化

Savings Plans で 1 年以上のコミット割引(最大 72%) ✅ Spot Instances でバッチ処理・開発環境(最大 90% 割引) ✅ Graviton(g 系) インスタンスで Intel 比 20-40% コスト削減 ✅ Right-sizing:CloudWatch で実際の CPU / メモリを監視、過剰スペック削除 ✅ 予約容量(Capacity Reservation) で AWS オファー最適化 ✅ AWS Cost Explorer / Trusted Advisor で定期監視

t2 インスタンス:旧式、CPU クレジット枯渇→パフォーマンス低下、t3/t4g へ移行 ❌ gp2 ボリューム:gp3 より高コスト、gp3 へ変更 ❌ オンデマンド常時使用:Savings Plans で 50% 以上削減可能

セキュリティ

IAM Role で AWS API 権限を管理(SSH キー 不要化) ✅ IMDSv2 必須化(SSRF 攻撃対策) ✅ Security Group で最小権限ネットワーク(デフォルト DENY) ✅ Systems Manager Session Manager で SSH キーレスアクセス ✅ EBS 暗号化(AWS KMS)で保存時暗号化 ✅ Systems Manager Patch Manager で自動 OS パッチ適用 ✅ EC2 Instance Inspector で定期脆弱性スキャン ✅ CloudTrail で API ログ記録

IMDSv1 放置:SSRF で認証情報漏洩リスク ❌ SSH キー管理:スケール困難、コンプライアンス課題 ❌ パブリック IP デフォルト割り当てEC2 Instance Connect Endpoint で代替 ❌ Security Group ルール無限大:最小権限ビルド

可用性 / 災害復旧

複数 AZ デプロイAuto Scaling)で自動フェイルオーバー ✅ AMI 定期作成EC2 Image Builder)で黄金イメージ管理 ✅ EBS スナップショットData Lifecycle Manager)で自動バックアップ ✅ ヘルスチェック(ELB / ASG)で自動置換 ✅ リージョン間 DR:複数リージョン AMI コピー + ASG

単一 AZ デプロイ:AZ 障害で全ダウン ❌ 手動 AMI 作成:更新漏れ、バージョン管理不能 ❌ EBS スナップショット無し:データ消失リスク

パフォーマンス

適切なインスタンスファミリー選択

  • 汎用(m系):Web / アプリ
  • コンピュート最適化(c系):CI/CD / バッチ
  • メモリ最適化(r系):DB / キャッシュ
  • GPU(p系 / g系):ML / 推論
  • Graviton3/4(g系):費用対効果

EBS 最適化:gp3(16k IOPS / 1000 MB/s)で一般用途カバー ✅ ENI 複数接続:マイクロセグメンテーション・複数 IP ✅ Placement Group:HPC / DB クラスタで < 1μs 遅延 ✅ CloudWatch / X-Ray で アプリケーション内ボトルネック特定

gp2 継続使用:IOPS / スループット固定、パフォーマンス低 ❌ Instance Store 無視:キャッシュ層として活用可能(臨時) ❌ EBS 暗号化無視:性能影響最小、暗号化推奨


トラブルシューティング

症状 原因 解決策
SSH 接続失敗 キーペア紛失 / Security Group 22 番ポート閉鎖 EC2 Instance Connect Endpoint / Systems Manager Session Manager を利用
インスタンス起動失敗(Insufficient Capacity) AZ 容量不足 別 AZ / インスタンスタイプ変更 / スポットインスタンス利用
パフォーマンス低下(CPU > 80%) インスタンスサイズ小さすぎる CloudWatch で確認 → Auto Scaling / right-sizing
ディスク容量不足 ルートボリューム満杯 EBS ボリューム拡張 + ファイルシステムリサイズ、または EFS に移行
IMDS タイムアウト IMDSv2 トークン取得失敗 / ネットワーク問題 ネットワーク設定確認、Systems Manager Agent 再起動
Spot インスタンス中断 AWS 予備容量を回収 ASG で複数インスタンスタイプ / リージョン指定
Cost Explorer 料金急増 Reserved Instance / Savings Plans 失効 AWS Cost Anomaly Detection で監視

2025-2026 最新動向

AWS Graviton5 プロセッサ(M9g / C9g / R9g)

2025年12月発表、M9g プレビュー中、C9g・R9g 2026年リリース予定

Graviton5 は AWS が設計した最新プロセッサで、以下の特性があります。

特性 詳細
コア数 192 コア(Graviton4 比で高密度化)
L3 キャッシュ 180 MB(5倍大)
パフォーマンス Graviton4 比 25% 向上、DB 30% 高速、Web App 35% 高速、ML 35% 高速
ネットワーク帯域 15% 向上(最大構成は 2 倍)
EBS 帯域 20% 平均向上
プロセス 3nm(エネルギー効率向上)
セキュリティ メモリ常時暗号化、キャッシュ隔離、ポインタ認証、Nitro Isolation Engine

M9g 系は汎用(最大 768 GB メモリ)、C9g 系はコンピュート最適化、R9g 系はメモリ最適化で、既存 Graviton4 比でコスト対効果が 20-30% 向上。

AMD EPYC(第9世代)

512GB+ メモリオプション搭載。Oracle / SAP HANA / 大規模インメモリデータベース向け。

Trainium / Inferentia 最新版

生成 AI(LLM)訓練・推論の専用チップ。精度向上・推論遅延削減。

Mac インスタンス(M3 / M4 世代)

Apple M4 チップ搭載(2026 リリース予定)。iOS 18 / macOS 15 開発・ビルド対応。

Local Zones(大都市圏超低遅延)

東京・大阪・名古屋の大都市圏で超低遅延(1-2ms)リージョン展開。実時間処理向け。

Outposts / AWS for Industries

オンプレミス + AWS クラウドの統合、業界別ソリューション(自動車・医療・金融)加速。

AI/ML 統合深化

EC2 + SageMaker / Bedrock / Amazon Q による AI アシスタント機能。


学習リソース

公式ドキュメント

認定資格

  • AWS Certified Cloud Practitioner
  • AWS Certified Solutions Architect – Associate(EC2 + VPC + RDS が中心)
  • AWS Certified SysOps Administrator – Associate

コミュニティ / ブログ

  • A Cloud Guru / Linux Academy:動画コース
  • AWS ブログ:最新ニュース
  • AWS WhitePapers:アーキテクチャガイド
  • AWS Workshops:ハンズオン実習

実装例・活用シーン

小規模(スタートアップ)

  • 構成:t3.small(Web)+ t3.small(API)+ t3.micro(DB) + CloudWatch + Route53
  • 目安:月額 $100-200(オンデマンド)/ $40-80(Savings Plans)

中規模(成長企業)

構成:
  Web: m6i.large x 2 (ALB + ASG) + Savings Plans(72% 割引)
  API: c6i.2xlarge x 4(バッチ)+ スポット(90% 割引)
  DB: r6i.4xlarge + RDS(Read Replica)
  Cache: ElastiCache(Redis)
  監視: CloudWatch + Custom Metrics
目安:月額 $5,000-15,000(Savings Plans 導入後)

大規模(エンタープライズ)

構成:
  Web/API: 複数リージョン + [CloudFront](/services/cloudfront/) CDN + DDoS 保護
  AI/ML: trn1.32xlarge(訓練)+ inf2(推論)
  HPC: hpc7g.16xlarge + Placement Group + EFA
  DB: Aurora(マルチAZ / 複数リージョン)+ DMS(移行)
  セキュリティ: [KMS](/services/kms/) / [Secrets Manager](/services/secrets-manager/) / GuardDuty
  コスト: RI Blend / Savings Plans + Reserved Capacity
目安:月額 $100,000+(総保有コスト削減)

導入ロードマップ

Phase 1: 学習・パイロット(1-2 週間)

  1. VPC 作成(VPC.md 参照)
  2. t3.micro で EC2 インスタンス 1 個起動
  3. SSH / Session Manager でアクセス確認
  4. CloudWatch でメトリクス監視

Phase 2: 開発環境構築(2-4 週間)

  1. AMI(Ubuntu/AL2)選定
  2. Terraform / CloudFormation で IaC 化
  3. Security Group / NACL 設計
  4. Ansible / Packer で自動化

Phase 3: 本番環境設計(4-8 週間)

  1. インスタンスファミリー選定(m / c / r)
  2. Auto Scaling + ELB 構成
  3. Savings Plans / Reserved Instances 購入
  4. IAM Role / KMS セキュリティ設計

Phase 4: 運用・最適化(継続)

  1. CloudWatch / Systems Manager で監視
  2. Patch Manager で自動更新
  3. AWS Cost Explorer で コスト最適化
  4. 四半期ごと right-sizing 実施

実装チェックリスト

  • [ ] VPC / Subnet / Security Group を設計・作成した
  • [ ] インスタンスファミリー(汎用 m / コンピュート c / メモリ r)を選定
  • [ ] Graviton(g系)インスタンスで同等性能・低コストが実現できるか検討
  • [ ] 常時稼働の場合は Savings Plans で割引(推奨:最大 72%)
  • [ ] ルートボリュームは gp3 + 暗号化(AWS KMS)を有効化
  • [ ] IMDSv2 を強制設定(SSRF 攻撃対策)
  • [ ] IAM Role を設定(AWS API 呼び出し権限)
  • [ ] Systems Manager Session Manager で SSH キーレスアクセス確認
  • [ ] EBS スナップショット自動化(Data Lifecycle Manager)
  • [ ] Auto Scaling + ELB を検証(複数 AZ デプロイ)
  • [ ] CloudWatch でメトリクス監視(CPU / メモリ / ディスク / ネットワーク)
  • [ ] Systems Manager Patch Manager で OS パッチ自動適用
  • [ ] EC2 Instance Inspector で脆弱性スキャン(定期)
  • [ ] CloudTrail で API ログ記録を有効化
  • [ ] AWS Cost Anomaly Detection で 異常課金検知

まとめ

Amazon EC2 は AWS の基盤仮想サーバーサービス です。インスタンスファミリー選択(汎用 m / コンピュート c / メモリ r / Graviton g)・購入オプション(オンデマンド / Savings Plans 72% 割引 / スポット 90% 割引)・EBS ボリューム(gp3 推奨)・複数 AZ 構成(Auto Scaling + ELB)の組み合わせで、コストと性能を最適化できます。

セキュリティは IMDSv2 必須化・Systems Manager Session Manager での SSH キーレスアクセス・EBS 暗号化が基本です。運用は CloudWatch / Patch Manager / Inspector で自動化し、右シットサイジング・Savings Plans / Spot Instances を活用してコストを最小化します。

「どのコンピューティングサービスを選ぶか」の判断基準

  • OS 全制御 / 既存ソフト / 特定ランタイム → EC2
  • コンテナ化・管理最小化 → ECS / EKS / Fargate
  • サーバーレス・イベント駆動 → Lambda
  • 小規模スタートアップ → Lightsail

参考文献

公式ドキュメント

  1. AWS EC2 User Guide
  2. Amazon EC2 Concepts and Features
  3. EC2 Instance Types Documentation
  4. EC2 Pricing Documentation
  5. AWS EC2 Features
  6. EC2 Auto Scaling User Guide
  7. AWS IAM Role for EC2
  8. Systems Manager Session Manager
  9. EC2 Instance Inspector Documentation
  10. AWS Well-Architected Framework - Compute Lens
  11. Elastic Load Balancing User Guide
  12. Amazon CloudWatch User Guide

関連 AWS サービス


参考資料追加(2026年)


最終更新:2026-04-26 バージョン:v2.1(Graviton5 対応) 著者:Claude (Anthropic) — i のメモ拡充プロジェクト