← ダッシュボードに戻る 記事一覧

EC2入門

仮想サーバーの基本・インスタンスタイプ・コスト最適化を学ぶ

🖥️ EC2(Elastic Compute Cloud)とは

仮想サーバーを数分で起動・停止できるAWSの中核サービス。物理サーバーの購入・設置不要で、必要なスペックのサーバーをオンデマンドに利用できる。

  • Webサーバー: Nginx・Apache を乗せたフロントエンド / バックエンドサーバー
  • アプリケーションサーバー: APIサーバー・マイクロサービスの実行環境
  • バッチ処理: 夜間バッチ・データ変換・画像処理など一時的な大量処理
  • 開発・テスト環境: 本番と同等環境を素早く立ち上げてテスト、不要になったら削除
  • データベースホスティング: RDS非対応のDBや特殊設定が必要なDB
  • 踏み台サーバー(Bastion Host): プライベートサブネットへの安全なSSHアクセス経路

⚙️ EC2の基本概念

  • インスタンス: 起動中の仮想サーバー1台。スペック(タイプ)はいつでも変更可能
  • AMI (Amazon Machine Image): OSとソフトウェア構成のテンプレート。インスタンスはAMIから起動する
  • インスタンスタイプ: CPU・メモリ・ネットワーク性能の組み合わせ(例: t3.micro)
  • キーペア: SSH接続に使う公開鍵・秘密鍵のペア
  • セキュリティグループ: インスタンスへのトラフィックを制御する仮想ファイアウォール
  • Elastic IP: インスタンスに固定IPアドレスを割り当てる機能

📊 インスタンスファミリー一覧

ファミリー 用途 代表例
t, m 汎用 Webサーバー・開発環境・中小規模アプリ t3.micro, t3.medium, m5.large, m6i.xlarge
c コンピューティング最適化 高CPU処理・バッチ・ゲームサーバー・科学計算 c5.xlarge, c5.4xlarge, c6g.2xlarge
r, x メモリ最適化 大規模DB・インメモリキャッシュ・ビッグデータ処理 r5.2xlarge, r6g.4xlarge, x1e.32xlarge
i, d, h ストレージ最適化 高IOPSのDBワークロード・データウェアハウス i3.large, i3en.xlarge, d2.xlarge
p, g, inf GPU / 高速コンピューティング 機械学習・深層学習・動画エンコーディング・HPC p3.2xlarge, g4dn.xlarge, inf1.xlarge
a1, t4g, m6g Graviton (Arm) コスト効率重視のWebアプリ・コンテナワークロード t4g.medium, m6g.large, c6g.xlarge
試験ポイント

「メモリ集約型DB → r系」「高CPUバッチ → c系」「汎用Webサーバー → t/m系」「機械学習 → p/g系」「コスト削減 + Arm → Graviton (g 末尾)」

📐 インスタンスサイズの命名規則

例: m5.2xlarge → m(ファミリー)5(世代).2xlarge(サイズ)

  • サイズ順: nano < micro < small < medium < large < xlarge < 2xlarge < ...
  • 世代が上がるほど同じコストでより高性能(例: m5 > m4)
  • 末尾 g = Graviton(Arm)、末尾 n = ネットワーク強化、末尾 d = NVMe SSD搭載

📀 AMI(Amazon Machine Image)とは

EC2インスタンスを起動するためのテンプレート。OSの種類・インストール済みソフトウェア・設定・ルートボリュームのスナップショットを含む。

  • AWS提供AMI: Amazon Linux 2023・Ubuntu・Windows Server・Red Hat など公式イメージ
  • AWS Marketplace AMI: サードパーティが提供する構成済みイメージ(WordPress・Nginx・商用ソフト等)
  • カスタムAMI: 既存インスタンスから作成する独自テンプレート。アプリセットアップ済みイメージで素早くスケール可能
  • コミュニティAMI: 他のAWSユーザーが公開した無料イメージ(利用は自己責任)

🔄 AMIの活用パターン

  • Golden AMI(ゴールデンイメージ): セキュリティパッチ・エージェントをインストール済みの標準AMIを組織内で共有・利用
  • スケールアウト: 同一AMIから複数インスタンスを起動し、Auto Scalingと組み合わせる
  • リージョン間コピー: AMIを別リージョンにコピーしてDR(ディザスタリカバリ)構成を実現
  • AMIの共有: 特定のAWSアカウントや全パブリックへの共有が可能
試験ポイント

「AMIはリージョンごとに存在する(グローバルではない)」「別リージョンへはコピーが必要」「Auto ScalingではAMIを使って同一構成のインスタンスを自動起動」

💾 EC2のストレージ種類

EBS(Elastic Block Store)— ブロックストレージ
ネットワーク越しにインスタンスにアタッチするブロックデバイス。インスタンスを停止・終了してもデータは保持される(デフォルト設定時)。1つのインスタンスに複数アタッチ可能。
gp3 — 汎用SSD(バランス型・低コスト) gp2 — 汎用SSD(旧世代) io2 Block Express — 高IOPS(DB向け) st1 — スループット最適化HDD(ビッグデータ) sc1 — コールドHDD(アーカイブ)
インスタンスストア — エフェメラルストレージ
ホストサーバーに物理的に接続されたストレージ。超低レイテンシ・高スループットだが、インスタンスの停止・終了・ホスト障害でデータが消失する。一時ファイル・バッファ・キャッシュに適する。
EFS(Elastic File System)— 共有ファイルストレージ
複数のEC2インスタンスから同時にマウントできるNFSベースのファイルシステム。マルチAZにまたがる共有ストレージとして利用可能。
試験ポイント

「永続化が必要 → EBS」「複数EC2から共有 → EFS」「一時データ・超低レイテンシ → インスタンスストア」「EBSスナップショットはS3に保存され別リージョンへコピー可能」

🔒 セキュリティグループ(SG)

🛡️
インスタンスレベルのファイアウォール
EC2インスタンスに直接アタッチする仮想ファイアウォール。ステートフル(インバウンドを許可した通信はアウトバウンドが自動的に許可される)。
📥
インバウンドルール
デフォルトはすべて拒否。許可するポート・プロトコル・送信元IP/SGを明示的に追加する(例: TCP 80 from 0.0.0.0/0)。
📤
アウトバウンドルール
デフォルトはすべて許可。インスタンスからの外向き通信を制限したい場合は明示的に編集する。
🔗
複数SGのアタッチ
1つのインスタンスに最大5つのSGをアタッチ可能。ルールはOR評価(いずれかのSGで許可されていれば通る)。
🏷️
SGをソースに指定
送信元にIP範囲ではなく別のSGを指定できる。ALBのSGを持つインスタンスからのみ受け付けるといった柔軟な制御が可能。

🔑 キーペアとSSH / RDP接続

  • Linuxインスタンス: 起動時にキーペアを指定し、秘密鍵(.pem)を使って ssh -i key.pem ec2-user@<IP> で接続
  • Windowsインスタンス: キーペアの秘密鍵でAdministratorパスワードを復号し、RDPクライアントで接続
  • EC2 Instance Connect: ブラウザからワンクリックでSSH接続。鍵管理が不要
  • Systems Manager Session Manager: SSHポートを開けずにセキュアなシェルアクセス。踏み台サーバーも不要

💰 購入オプション(コスト最適化)

オンデマンド
秒単位で課金。起動・停止を自由に行え、予測困難なワークロードやスパイクに対応。割引なしだが拘束なし。
リザーブドインスタンス (RI)
1年または3年のキャパシティを予約。安定した長期ワークロードに最適。全額前払いで割引率が最大に。最大72% 割引
スポットインスタンス
AWSの余剰キャパシティを安価に利用。中断される可能性があるため、耐障害性のあるバッチ・ML学習に最適。最大90% 割引
Savings Plans
特定の使用量($/時間)をコミットする柔軟な割引プラン。インスタンスタイプやリージョンを跨いで適用可能。RIより柔軟。最大72% 割引
Dedicated Hosts
物理サーバーを専有。ライセンスのソケット/コア単位課金(BYOL)や規制要件への対応に使用。コストは最も高い。
Dedicated Instances
他のAWSアカウントとハードウェアを共有しないインスタンス。Dedicated Hostsより管理が簡単。コンプライアンス要件対応。
試験ポイント

「コスト削減 + 中断許容 → スポットインスタンス」「安定した定常ワークロード → RI or Savings Plans」「短期・不定期 → オンデマンド」「ライセンス持ち込み → Dedicated Hosts」

🎯 試験頻出ポイント

  • スポット活用 「コスト削減 + 中断許容(バッチ・ML・CI/CD)→ スポットインスタンス(最大90%割引)」。中断不可なら RI か Savings Plans。
  • マルチAZ構成 高可用性 = ELB + 複数サブネット(異なるAZ)に複数EC2 + Auto Scaling。1つのAZが障害でも継続可能。
  • Bastion Host 踏み台サーバー = パブリックサブネットの EC2 経由でプライベートサブネットの EC2 に SSH。Session Manager なら踏み台不要。
  • SGの特性 SGはステートフル(応答トラフィックは自動許可)。NACLはステートレス(インバウンドとアウトバウンドを個別に許可する必要あり)。
  • ストレージ選択 「再起動後もデータ保持 → EBS」「複数インスタンスで共有 → EFS」「一時バッファ → インスタンスストア(停止でデータ消失)」
  • インスタンス選択 「メモリ集約型DB → r系」「高CPUバッチ → c系」「GPU/ML → p/g系」「コスト重視 Arm → Graviton (末尾g)」
  • AMI 「AMI はリージョン固有」「別リージョンへコピー可能」「Auto Scaling Group では起動テンプレートにAMI指定」
  • EBSタイプ 「汎用 → gp3(コスト低・IOPS独立設定)」「高IOPS DB → io2」「シーケンシャル大容量 → st1」「コールドアーカイブ → sc1」