コンピューティングサービス(EC2)
ストーリー
「中村製作所さんの現在のシステムは、社内に物理サーバーが3台ある。 Webサーバー、アプリケーションサーバー、データベースサーバーだ」
山田先輩がホワイトボードに構成図を描く。
「これらを AWS に移行する第一歩が EC2 だ。 EC2 は "Elastic Compute Cloud" の略で、要するに仮想サーバーのことだ」
「物理サーバーと比べて、何が違うんですか?」
「一番大きいのは、数分で新しいサーバーを立ち上げられることだ。 物理サーバーの調達には数週間かかるが、EC2 なら AWS CLI のコマンド一発だ。 さらに、不要になったらすぐに削除できる。使った分だけの課金だから無駄がない」
EC2 とは
EC2(Elastic Compute Cloud)は、AWS が提供する仮想サーバーサービスです。必要な時に必要な数のサーバーを起動し、不要になったら停止・削除できます。
EC2 の構成要素
EC2 インスタンス
┌───────────────────────────────┐
│ │
│ ┌─────────┐ ┌─────────┐ │
│ │ vCPU │ │ メモリ │ │
│ │ (2core) │ │ (4GB) │ │
│ └─────────┘ └─────────┘ │
│ │
│ ┌─────────────────────────┐ │
│ │ EBS(ストレージ) │ │
│ │ /dev/xvda: 30GB (gp3) │ │
│ └─────────────────────────┘ │
│ │
│ ┌─────────────────────────┐ │
│ │ ネットワーク │ │
│ │ ENI: eth0 │ │
│ │ Private IP: 10.0.1.10 │ │
│ │ Public IP: 54.xx.xx.xx │ │
│ └─────────────────────────┘ │
│ │
│ OS: Amazon Linux 2023 │
│ AMI: ami-0abcdef1234567890 │
└───────────────────────────────┘
インスタンスタイプ
EC2 インスタンスは、用途に応じてさまざまなタイプが用意されています。
命名規則
m5.xlarge
│ │ │
│ │ └─ サイズ (nano, micro, small, medium, large, xlarge, 2xlarge...)
│ └──── 世代 (数字が大きいほど新しい)
└───── ファミリー (用途を表す)
主要なインスタンスファミリー
| ファミリー | 用途 | 特徴 | 例 |
|---|---|---|---|
| t3 / t4g | 汎用(バースト) | CPU クレジット制、小規模Web/テスト向け | t3.micro, t3.small |
| m5 / m6i | 汎用(バランス) | CPU・メモリが均等、標準的なワークロード | m5.large, m6i.xlarge |
| c5 / c6i | コンピュート最適化 | CPU性能重視、バッチ処理・科学計算向け | c5.2xlarge |
| r5 / r6i | メモリ最適化 | 大容量メモリ、データベース・キャッシュ向け | r5.xlarge |
| i3 | ストレージ最適化 | 高速ローカルストレージ | i3.large |
インスタンスタイプの選び方
サーバーの役割を確認
│
├─ Web/アプリサーバー → t3 (小規模) / m5 (中〜大規模)
│
├─ データベース → r5 (メモリ重視)
│
├─ バッチ処理 → c5 (CPU重視)
│
└─ 開発/テスト → t3.micro〜t3.small (低コスト)
AMI(Amazon Machine Image)
AMI は EC2 インスタンスの起動テンプレートです。OS とプリインストールされたソフトウェアが含まれます。
主な AMI
| AMI | 特徴 |
|---|---|
| Amazon Linux 2023 | AWS 最適化、無料、AWS CLI プリインストール |
| Ubuntu Server | 広く使われている Linux ディストリビューション |
| Windows Server | Windows ワークロード向け |
| カスタム AMI | 自分の環境を元に作成した独自イメージ |
EC2 の料金モデル
| 料金モデル | 説明 | 割引率 | 用途 |
|---|---|---|---|
| オンデマンド | 使った分だけ時間課金 | なし | 検証、一時的な利用 |
| リザーブドインスタンス | 1年/3年の契約で割引 | 最大72%OFF | 常時稼働するサーバー |
| Savings Plans | 利用量をコミット | 最大72%OFF | 柔軟な割引 |
| スポットインスタンス | 余剰キャパシティを割引 | 最大90%OFF | 中断可能なバッチ処理 |
料金の見積もり例(東京リージョン)
t3.micro (2vCPU, 1GB) : 約 $0.0136/時間 ≒ 約 $10/月
t3.small (2vCPU, 2GB) : 約 $0.0272/時間 ≒ 約 $20/月
m5.large (2vCPU, 8GB) : 約 $0.124/時間 ≒ 約 $90/月
r5.xlarge (4vCPU, 32GB) : 約 $0.332/時間 ≒ 約 $240/月
キーペアと SSH 接続
EC2 にログインするには、キーペア(公開鍵/秘密鍵)を使います。
bash
# キーペアの作成
aws ec2 create-key-pair \
--key-name my-key-pair \
--query 'KeyMaterial' \
--output text > my-key-pair.pem
# 権限の設定
chmod 400 my-key-pair.pem
# SSH接続
ssh -i my-key-pair.pem ec2-user@<パブリックIP>EC2 のライフサイクル
起動 (Launch)
│
▼
┌────────┐ 停止 (Stop) ┌────────┐
│ running │ ───────────────→ │ stopped │
│ (実行 中) │ ←─────────────── │ (停止) │
└────┬───┘ 開始 (Start) └────┬───┘
│ │
│ 終了 (Terminate) │ 終了
▼ ▼
┌────────┐ ┌────────┐
│terminated│ │terminated│
│ (削除済) │ │ (削除済) │
└────────┘ └────────┘
※ stopped の間は EBS の料金のみ発生
※ terminated にすると EBS も削除(設定による)
まとめ
| ポイント | 内容 |
|---|---|
| EC2 とは | AWS の仮想サーバーサービス。数分でサーバーを起動可能 |
| インスタンスタイプ | t3(汎用)、m5(バランス)、c5(CPU)、r5(メモリ)等 |
| AMI | OS とソフトウェアを含む起動テンプレート |
| 料金モデル | オンデマンド、リザーブド、スポット等。用途に応じて選択 |
| 接続方法 | キーペアを使った SSH 接続 |
チェックリスト
- EC2 の基本概念を理解した
- インスタンスタイプの命名規則と選び方を理解した
- AMI の役割を説明できる
- 料金モデルの違いを把握した
- EC2 のライフサイクルを理解した
次のステップへ
次のセクションでは、AWS のオブジェクトストレージサービスである S3 を学びます。 ファイルの保存、静的Webサイトホスティング、バックアップなど幅広い用途で使われるサービスです。
推定読了時間: 30分