TL;DR

Amazon Elastic Compute Cloud の略。AWS のクラウド上で、オンデマンドでスケールできるコンピューティング能力を提供するサービスである。EC2 インスタンスは AWS のクラウド上の仮想サーバを指す。

なぜ必要か

ハードウェアを自分で用意せずに、必要な数だけ仮想サーバを起動し、セキュリティ、ネットワーク、ストレージを設定できる。月次の処理やトラフィックの急増に合わせて台数を増やし、使わなくなったら減らせる。

仕組み

インスタンスを起動するときに指定するインスタンスタイプが、使えるハードウェアを決める。インスタンスタイプごとに、CPU、メモリ、ネットワーク、ストレージの組み合わせが異なる。OS や追加のソフトウェアは AMI(Amazon Machine Image)というテンプレートにまとめておく。永続的なデータは Amazon EBS のボリュームに置き、ログインにはキーペアを使う。セキュリティグループは仮想のファイアウォールで、インスタンスに届くプロトコル、ポート、送信元の IP アドレスの範囲を指定する。

料金はオンデマンド(秒単位、最低 60 秒)、Savings Plans、リザーブドインスタンス、スポットインスタンスなどから選べる。

例

  • Amazon ECS では、コンテナの実行環境に EC2 か AWS Fargate を選べる。EC2 を選ぶと、OS や Docker Engine などホストマシンの管理が必要になる。
  • Packer でカスタマイズした AMI の ID を Terraform から参照して、EC2 インスタンスを作れる(Terraformではじめる実践IaC 第1章)。

関連

出典