コンテンツにスキップ

Amazon EC2(Amazon Elastic Compute Cloud)

1. サービス概要

Amazon EC2(Amazon Elastic Compute Cloud)は、AWS が提供するスケーラブルな仮想サーバー(インスタンス)をオンデマンドで起動・停止できるクラウドコンピューティングサービスである。
ユーザーはハードウェア管理から解放され、数分で仮想マシンを立ち上げ、必要に応じてスケールアウトやスケールインを柔軟に行うことができる。

主なユースケースとして、

  • Web サーバー
  • アプリケーションサーバー
  • バッチ処理
  • 開発・テスト環境
  • ビッグデータ分析
  • HPC(高性能コンピューティング)

などが挙げられる。

2. 主な特徴と機能

2.1 インスタンスタイプとファミリー

CPU、メモリ、ストレージ、ネットワーク性能を組み合わせた多種多様なインスタンスタイプが用意されている。
汎用(M シリーズ)、コンピュート最適化(C シリーズ)、メモリ最適化(R シリーズ)、ストレージ最適化(I・D シリーズ)など、ワークロードに合わせて選択可能である。

2.2 ストレージオプション

Amazon EBS(Elastic Block Store)を利用したブロックストレージや、インスタンスストア(一時的ローカルストレージ)が利用可能である。
永続的ストレージには EBS、オブジェクトストレージには Amazon S3 を組み合わせるのが一般的である。

2.3 ネットワーキングと VPC

EC2 インスタンスは Amazon VPC(Virtual Private Cloud)内で起動され、プライベート IP、パブリック IP、セキュリティグループ、ネットワーク ACL でアクセス制御が可能。
Elastic IP で固定パブリック IP を割り当てたり、ENI(Elastic Network Interface)で複数ネットワークインターフェースを付与できる。

2.4 スケーリングと自動化

Auto Scaling グループを組み合わせることで、負荷に応じて EC2 インスタンス数を自動的に増減できる。
AWS Systems Manager や EC2 インスタンスメタデータを活用して構成管理、CloudWatch によるモニタリング、EventBridge や Lambda との連携で自動運用が可能である。

3. アーキテクチャおよび技術要素

  1. ユーザーは AWS Management Console、CLI、SDK を用いて EC2 インスタンスを起動。
  2. インスタンスは指定した AMI(Amazon Machine Image)から立ち上がり、特定の VPC サブネット内に配置。
  3. 指定したインスタンスタイプ、キーペア、セキュリティグループ、IAM ロールなどを通じて環境構成。
  4. EC2 はオンデマンド、リザーブド、スポットなど柔軟な料金モデルで利用可能。

4. セキュリティと認証・認可

  • IAM ロール: EC2 インスタンスに IAM ロールを割り当てることで、インスタンス上のアプリケーションが AWS リソースに安全にアクセス。
  • セキュリティグループ: インバウンド/アウトバウンドトラフィックをステートフルに制御。
  • キーペア: SSH ログイン用に公開鍵/秘密鍵方式を使用。秘密鍵はユーザー側で安全管理。
  • VPC とサブネット設計: パブリックサブネット、プライベートサブネットを分けて、必要な範囲でのみインターネットアクセスを許可。

5. 料金形態

EC2 の料金は、使用時間、インスタンスタイプ、使用するライセンス、OS、ネットワーク帯域、EBS 使用量などで変動する。

  • オンデマンド: 利用時間単位の課金。
  • リザーブドインスタンス: 1 年または 3 年のコミットで割引適用。
  • スポットインスタンス: 遊休キャパシティを活用した低価格モデル(ただし中断される可能性あり)。

6. よくあるアーキテクチャ・設計パターン

  • Web/App サーバー: Auto Scaling + ELB + EC2 で高可用性 Web アプリ構成。
  • バッチ処理: スポットインスタンスでコスト削減、S3 に格納したデータを定期処理。
  • HPC クラスター: コンピュート最適化インスタンスで大規模並列計算。
  • 開発・テスト環境: 短期間で立ち上げ、不要になれば停止/削除。

7. 設定・デプロイ手順(ハンズオン例)

  1. EC2 コンソールで"Launch Instance"をクリック。
  2. AMI、インスタンスタイプ、VPC サブネット、セキュリティグループ、キーペアを選択。
  3. 起動後、パブリック IP または Elastic IP を用いて SSH 接続。
  4. 必要に応じて CloudWatch メトリクスで監視、Auto Scaling ルール設定。
  5. 不要になればインスタンスを Terminate してコスト削減。

8. 試験で問われやすいポイント

8.1 インスタンスタイプ選択

  • ワークロード特性(CPU 集約か、メモリ集約か、ストレージ I/O か)に基づく最適なタイプ選択。

8.2 セキュリティグループと ACL

  • セキュリティグループはステートフル、ネットワーク ACL はステートレス。

8.3 IAM ロールとキーペア管理

  • IAM ロールで EC2 から S3 や DynamoDB などに安全にアクセス。
  • SSH ログイン用キーペアは事前に準備し、秘密鍵はローカルで安全保管。

8.4 Auto Scaling とロードバランシング

  • Auto Scaling と ELB を組み合わせて高可用性とスケーラビリティを実現。

8.5 EBS とインスタンスストア

  • EBS は永続ストレージ、インスタンス停止・再起動間でデータ保持。
  • インスタンスストアは一時的ストレージでインスタンス終了で消失。

8.6 価格モデル理解

  • オンデマンドは柔軟、リザーブドは長期割引、スポットは安価だが中断リスクあり。

8.7 AMI 管理

  • 独自 AMI 作成で構成済み環境を迅速に再現。

8.8 試験で頻出となる具体的な問われ方と答え

  • Q: インスタンスに割り当てた IAM ロールはどのように使われるか?
  • A: インスタンス内のアプリケーションが AWS CLI や SDK を通じて IAM 認証情報無しで AWS サービスにアクセス可能
  • Q: セキュリティグループとネットワーク ACL の違いは?
  • A: セキュリティグループはステートフルでインスタンスレベル、ネットワーク ACL はステートレスでサブネットレベル
  • Q: スポットインスタンスの特徴は?
  • A: 安価だが AWS が必要に応じてインスタンスを中断する可能性がある
  • Q: EBS とインスタンスストアの違いは?
  • A: EBS は永続ストレージ、インスタンスストアは一時的でインスタンス終了でデータ消失
  • Q: Auto Scaling の利点は?
  • A: 負荷変動に応じて自動的にインスタンス数を増減し、コスト最適化と可用性向上を実現