AWS CLF(Cloud Practitioner)対策
EC2
このレッスンを終えると、EC2 が何を貸してくれるサービスなのかを、自分でサーバーを1台建てるときの手順と対応づけて説明できるようになります。
自分でサーバーを建てるなら何をするか
オンプレミスでサーバーを1台用意するとき、あなたは次の作業を順番にこなしていたはずです。
- マシンを調達する。CPU のコア数とメモリ容量を決めて発注し、届くまで数週間待つ
- ラックに載せ、電源とネットワークをつなぐ
- OS を入れる。Ubuntu なのか Amazon Linux なのかを決めて、インストールメディアから焼く
- SSH の鍵を置き、ファイアウォールを設定し、ようやくアプリを載せる
- 使わなくなっても、マシンは手元に残る。捨てるまで減価償却が続く
Amazon Elastic Compute Cloud (EC2) は、この 1 から 4 までを数分に縮め、5 を「消せば終わり」に変えるサービスです。EC2 が貸すのは物理マシンそのものではなく、AWS が持つ巨大なサーバー群の上で動く仮想サーバーです。この 1 台をインスタンスと呼びます。
インスタンス、AMI、インスタンスタイプ
EC2 を起動するとき、あなたが決めるのは主に次の3つです。
| 決めること | オンプレでいうと | 中身 |
|---|---|---|
| AMI (Amazon Machine Image) | OS を入れた状態のディスクイメージ | OS の種類とバージョン、入れておくソフト |
| インスタンスタイプ | 発注するマシンの型番 | CPU コア数、メモリ、ネットワーク性能の組み合わせ |
| キーペアとセキュリティグループ | SSH 鍵と ufw の設定 | ログイン方法と、通す通信の範囲 |
AMI は「起動元のひな型」です。設定を終えたインスタンスから自分の AMI を作っておけば、同じ状態のサーバーを何台でも数分で複製できます。オンプレで OS を毎回入れ直していた作業が、テンプレートの選択に置き換わります。
インスタンスタイプは用途ごとに系統が分かれます。汎用、コンピューティング最適化 (CPU 重視)、メモリ最適化 (大きなインメモリ処理向け)、ストレージ最適化、高速コンピューティング (GPU) といった分類です。CLF で型番の細かい数字を覚える必要はありません。「メモリを大量に使うのでメモリ最適化」という対応づけができれば十分です。
そして EC2 は責任共有モデルでいう IaaS にあたります。物理ホスト、ハイパーバイザー、データセンターの安全は AWS が守りますが、インスタンスの中の OS 更新、ミドルウェアの設定、アプリの脆弱性対応は利用者の責任です。ここがあとで出てくる Lambda との一番大きな違いになります。
試験ではこう出る
出題者は「EC2」という語を出さずに、要件の言い換えで書いてきます。
- 「OS レベルの完全な制御が必要」「特定のカーネル設定が要る」と書いてあれば EC2 を選ばせたい合図です
- 「起動元のイメージ」「同じ構成のサーバーを複数展開したい」とあれば AMI が答えです。スナップショットや EBS ボリュームと迷わせてきます
- 「メモリ内で大きなデータを処理する」「並列計算の CPU 性能が要る」は、インスタンスタイプの系統を選ばせる問題です
- 「EC2 インスタンスの OS にパッチを当てるのは誰の責任か」は責任共有モデルとの合わせ技で、答えは利用者です
まとめ
- EC2 は仮想サーバーを分単位で借りるサービスで、1 台をインスタンスと呼びます
- AMI は起動元のイメージで、同じ構成の複製を素早く作るために使います
- インスタンスタイプは用途別の系統で選びます。型番の暗記は不要です
- EC2 は IaaS なので、OS より上の管理と更新は利用者の責任です
復習ミニクイズ
同じ設定を済ませた Web サーバーを、必要になったらすぐ 10 台複製できるようにしておきたい。EC2 でこの目的に使うものはどれですか。