EC2・コンピューティング
Amazon EC2(Elastic Compute Cloud)は、AWS上でスケーラブルな仮想サーバーを提供するサービスです。必要なときに必要な数のインスタンスを起動し、不要になれば停止・終了できる従量課金モデルにより、物理サーバーの調達や管理から解放されます。
所要時間
約45分
学べること
- EC2インスタンスの基本概念とライフサイクル
- インスタンスタイプの選び方
- ストレージ(EBS・インスタンスストア)の特徴と使い分け
- Auto Scalingによる自動スケーリング
- コスト最適化のための購入オプション
前提知識
- VPC・ネットワーキングの基礎
- Linux/Windowsの基本的なサーバー操作
- SSHの基本概念
目次
- EC2の概要
- インスタンスタイプ
- AMI(Amazon Machine Image)
- インスタンスのライフサイクル
- キーペアとSSH接続 / Session Manager
- EBS(Elastic Block Store)
- インスタンスストアとEBSの違い
- Elastic IP
- Auto Scaling
- 購入オプションとコスト最適化
- IDサービスでの活用
- まとめ
1. EC2の概要
EC2は、AWS上で仮想マシン(インスタンス)を起動するサービスです。物理サーバーの調達に数週間〜数ヶ月かかるのに対し、EC2は数分でサーバーを起動できます。
EC2の主な特徴
| 特徴 | 説明 |
|---|---|
| 伸縮性 | 需要に応じてインスタンス数を増減可能 |
| 多様性 | 数百種類のインスタンスタイプから選択 |
| 従量課金 | 使用した分だけ課金(秒単位) |
| グローバル | 全リージョン・AZで利用可能 |
| 統合 | VPC、EBS、IAM等の各種AWSサービスと連携 |
EC2インスタンスの起動に必要な要素
EC2インスタンスの起動:
├── AMI(OSイメージ)
├── インスタンスタイプ(CPU/メモリ)
├── キーペア(SSH認証用)
├── VPC / サブネット
├── セキュリティグループ
├── EBSボリューム(ストレージ)
└── IAMロール(AWS APIアクセス用)
2. インスタンスタイプ
EC2インスタンスタイプは、CPU、メモリ、ストレージ、ネットワーク性能の組み合わせを定義します。命名規則は以下の通りです。
m7g.xlarge
│││ └── サイズ(xlarge = 4 vCPU, 16 GiB)
││└── 世代(7 = 第7世代)
│└── プロセッサファミリー(g = Graviton)
└── ファミリー(m = 汎用)
インスタンスファミリー
| ファミリー | 用途 | 代表的なタイプ | 特徴 |
|---|---|---|---|
| M (汎用) | Webサーバー、アプリサーバー | m7g, m7i | CPU/メモリのバランスが良い |
| C (コンピューティング最適化) | バッチ処理、科学計算 | c7g, c7i | 高いCPU性能 |
| R (メモリ最適化) | データベース、キャッシュ | r7g, r7i | 大容量メモリ |
| T (バースト可能) | 開発環境、小規模ワークロード | t3, t4g | ベースライン+バースト |
| I (ストレージ最適化) | NoSQL、データウェアハウス | i4i | 高速ローカルストレージ |
| P/G (アクセラレーテッド) | ML推論、GPU処理 | p5, g5 | GPU搭載 |
Graviton(Armベース)プロセッサ
AWSが設計したArmベースのプロセッサで、x86と比較して最大40%のコストパフォーマンス向上が期待できます。
| 項目 | x86 (Intel/AMD) | Graviton (Arm) |
|---|---|---|
| 代表タイプ | m7i, c7i | m7g, c7g |
| 価格 | 基準 | 約20%低い |
| 性能 | 高い | 同等以上 |
| 互換性 | 広範 | Arm対応が必要 |
| エネルギー効率 | 標準 | 高い |
Java 21で動作するアプリケーションはGravitonとの互換性が高く、コスト効率に優れた選択肢です。
サイズの比較(Mファミリーの例)
| サイズ | vCPU | メモリ(GiB) | ネットワーク |
|---|---|---|---|
| m7g.medium | 1 | 4 | 最大12.5 Gbps |
| m7g.large | 2 | 8 | 最大12.5 Gbps |
| m7g.xlarge | 4 | 16 | 最大12.5 Gbps |
| m7g.2xlarge | 8 | 32 | 最大15 Gbps |
| m7g.4xlarge | 16 | 64 | 最大25 Gbps |
3. AMI(Amazon Machine Image)
AMIは、EC2インスタンスの起動に使用するテンプレートイメージです。OS、アプリケーション、設定がパッケージされています。
AMIの種類
| 種類 | 説明 | 例 |
|---|---|---|
| AWS提供AMI | AWSが管理するベースイメージ | Amazon Linux 2023, Ubuntu |
| マーケットプレイスAMI | サードパーティが提供 | CentOS, RHEL |
| カスタムAMI | 自身で作成したイメージ | アプリ組込み済み |
カスタムAMI作成の流れ
1. ベースAMIからインスタンス起動
2. 必要なソフトウェアのインストール・設定
3. インスタンスからAMIを作成(スナップショット取得)
4. 作成したAMIから新しいインスタンスを起動
[ベースAMI] → [インスタンス] → [設定・カスタマイズ] → [カスタムAMI]
│
[新インスタンス]
[新インスタンス]
AMIはリージョン固有のリソースです。他のリージョンで使用する場合はコピーが必要です。
4. インスタンスのライフサイクル
EC2インスタンスは以下の状態を遷移します。
┌──────── ──┐
起動 │ pending │
AMI───────────→ │ (起動中) │
└────┬─────┘
│
┌────▼─────┐
│ running │◄──────── 開始
│ (実行中) │ (停止状態から)
└──┬───┬───┘
│ │
停止 ─────┘ └───── 終了
│ │
┌────▼─────┐ ┌────▼──────┐
│ stopping │ │shutting- │
│ (停止中) │ │down │
└────┬─────┘ │(終了処理中)│
│ └────┬──────┘
┌────▼─────┐ │
│ stopped │ ┌────▼──────┐
│ (停止) │ │terminated │
└──────────┘ │(終了済み) │
└───────────┘