EC2インスタンスの起動フローと基礎

AMI、インスタンスタイプ、ネットワーク、ストレージ、キーペア、ユーザーデータ、IAMロール、起動テンプレート、プレイスメントを試験向けに整理します。

学習順Step 18 / 61サービスEC2試験ドメイン弾力性

EC2 とは(試験での位置づけ)

Amazon EC2 は、仮想サーバー(インスタンス)数分で起動し、使った時間(または秒)に応じて課金するコンピュートサービスです。OS は AMI で選び、CPU/メモリは インスタンスタイプ、ディスクは EBS やインスタンスストア で構成します。ELB・Auto Scaling と組み合わせて高可用・スケールする、というのが信頼性トレーニングの典型的な流れです。

起動時に決める主な項目

コンソールの起動ウィザードでは、概ね次の順で設定します(名称は世代で多少変わります)。

  1. AMI … OS・初期ソフト・ルートディスクのイメージ。AWS 提供/Marketplace/自作
  2. インスタンスタイプvCPU・メモリ・ネットワーク性能。ファミリー選定は別トピック。
  3. ネットワークVPC・サブネット(AZ)、パブリック IP の自動割当、セキュリティグループ
  4. ストレージルート EBS のサイズ・タイプ、追加ボリューム、インスタンスストアの有無(タイプによる)。
  5. タグ … コスト配賦・自動化のためのメタデータ。
  6. セキュリティキーペア(Linux SSH 用)、IAM インスタンスプロファイル
  7. 詳細ユーザーデータメタデータで可視化オプション終了保護など。

AMI の種類

種類 説明
AWS 提供 AMI Amazon Linux、Windows など。パッチ適用済みイメージ(SSM 等と連携)
Marketplace AMI ベンダー製。追加ライセンス料がある場合あり
カスタム AMI 自社アプリ入り。コピーで別リージョン展開DR に使う

AMI は リージョン固有。別リージョンでは AMI コピーが必要です。

キーペアと IAM ロール

  • キーペア … Linux では SSH 公開鍵認証に使う秘密鍵をダウンロード。紛失すると再接続できない場合があるため運用設計が必要です。
  • IAM インスタンスプロファイル … EC2 から S3・DynamoDB・Parameter Store などへアクセスするとき、アクセスキーをディスクに置かずに権限を付与する推奨パターン。試験では「キーをユーザーデータで埋め込む」より IAM ロールが正解になりやすいです。

ユーザーデータ(User data)

インスタンス初回起動時に実行するスクリプトや cloud-init ディレクティブを渡せます(再起動だけでは再実行されない設定が一般的)。Apache のインストール、設定ファイルの取得などブートストラップ用途。長文シナリオでは Base64起動テンプレートとの組み合わせが出ます。

注意秘密鍵やパスワードの直書きは避けSecrets Manager や SSM を使う設計がベストプラクティスとして問われます。

起動テンプレート(Launch Template)

起動パラメータをバージョン管理し、手動起動・Auto Scaling・EC2 Fleet で再利用します。AMI の新バージョンインスタンスタイプ変更をテンプレートの新バージョンとして切り替える運用が一般的です。起動設定(Launch Configuration) はレガシーで、新規は起動テンプレート推奨が試験の標準答えです。

プレイスメントグループ

戦略 用途 トレードオフ
クラスター 同一 AZ 内に近接配置。HPC・低レイテンシ AZ 障害の影響を受けやすい
スプレッド 基盤を分散し相関障害を減らす インスタンス数に上限あり
パーティション 大規模で論理パーティションに分けて配置 分散アプリ向け

ストレージ選択の一文(EBS とインスタンスストア)

永続データは EBS一時キャッシュやスワップはインスタンスストア、という住み分けが教科書的です。詳細は EBS のトピックへ。

試験で落とし穴になりやすい点

  • どのリージョンでも同じ AMI ID が使える」→ 誤り(リージョンごとに異なる ID)。
  • ユーザーデータは毎回の起動で必ず実行される」→ 通常は初回ブート(設定による)。
  • セキュリティグループはステートフルでインバウンドを許可すればアウトバウンドは不要」→ アウトバウンドもルールが必要な場合あり(通信の方向を読む)。

公式ドキュメント(深掘り)

重要ポイント

  • 起動はAMI→タイプ→ネットワーク→ストレージ→タグ→セキュリティ→確認の流れが基本
  • ユーザーデータは初回ブート時にスクリプト実行(cloud-init)。秘密情報の直書きは非推奨
  • 起動テンプレートでAMIバージョンとパラメータを再利用・Auto Scalingと共有
  • IAMロールでアクセスキーを置かずにAWS APIへアクセスするのがベストプラクティス
  • プレイスメントグループはクラスタ・スプレッド・パーティションで用途が異なる

このトピックの学習を完了しますか?

完了状態はいつでも切り替えられます