EC2とは ― 仮想サーバの仕組みとインスタンスタイプの選び方
EC2は、
EC2とは、仮想サーバを借りられるクラウドコンピューティングサービス
サーバが必要になっても、機器を買って設置するのを待つ必要はありません。AWSのEC2(Amazon Elastic Compute Cloud)なら、必要な性能の仮想サーバを数分で起動できます。不要になれば止められます。台数や性能を、必要に応じて後から変えられる点が特徴です。
AWS公式ページは、EC2を「リサイズ可能で安全なコンピューティング能力を仮想サーバとして提供するクラウドコンピューティングサービス」と説明しています。EC2はIaaS(Infrastructure as a Service)に分類されるサービスです。ゲストOSの更新やセキュリティパッチは、利用者が自分で管理します。この責任の分け方は、責任共有モデルの記事で説明しています。
インスタンス・AMI・インスタンスタイプの関係
EC2の基本になる用語は3つあります。インスタンスは、実際に動いている仮想サーバそのものです。AWS公式ドキュメントは、インスタンスを単に「仮想サーバ」と説明しています。
AMI(Amazon Machine Image)は、インスタンスを起動するためのテンプレートです。OSや必要なソフトが、あらかじめ組み込まれています。同じAMIから、複数のインスタンスを起動できます。
インスタンスタイプは、起動するインスタンスのCPU・メモリ・ストレージ・ネットワーク性能の構成を決める設定です。同じAMIを使っても、選ぶインスタンスタイプによって、起動するインスタンスの大きさが変わります。ただし、AMIは選んだインスタンスタイプに対応している必要があります。
インスタンスには、セキュリティグループという仮想のファイアウォールも設定します。どの通信を通すかを、プロトコル・ポート・送信元のIPアドレスの範囲で指定する仕組みです。設定の責任が利用者側にあることは、責任共有モデルの記事で説明したとおりです。SSHの22番ポートを開けずに接続するなら、Systems ManagerのSession Managerを使います。
インスタンスタイプは、処理の種類に合わせてカテゴリから選ぶ
AWS公式ページは、インスタンスタイプを用途ごとに6つのカテゴリに分けて説明しています。名前の先頭の文字は系列を表します。たとえば、cはコンピューティング最適化、mは汎用です。
| カテゴリ | 向いている |
|---|---|
| 汎用(General purpose) | コンピューティング・メモリ・ネットワークのバランスが良く、幅広い用途に使う |
| コンピューティング最適化(Compute optimized) | 高性能なプロセッサの処理能力そのものが必要な処理に使う |
| メモリ最適化(Memory optimized) | 大きなデータをメモリ上で扱う処理に使う |
| 高速コンピューティング(Accelerated computing) | GPUなどのハードウェアによる計算が必要な処理に使う |
| ストレージ最適化(Storage optimized) | ローカルストレージへの高速・大量な読み書きが必要な処理に使う |
| HPC最適化(HPC optimized) | 複雑なシミュレーションなど、大規模な高性能計算に使う |
vCPU(仮想CPU)の数やメモリ量は、系列と、ピリオドの後ろのサイズの組み合わせで決まります。次の図で、3つのインスタンスタイプ(t3.micro・m5.large・c5.xlarge)を選んで比較できます。
汎用インスタンス(バースト型)
普段は基準の性能で動き、必要なときは基準を超えて性能を上げられるタイプです。
- 小規模なWebサーバ
- 開発・検証環境
- アクセスが少ない個人サイト
汎用インスタンス
バーストさせず、常に同じ性能で動くタイプです。t3.microよりメモリが多いです。
- Webサーバ
- コードリポジトリ
- 中規模までのデータベース
コンピューティング最適化インスタンス
高性能なプロセッサを使い、CPUの処理そのものがボトルネックになる処理に向くタイプです。
- バッチ処理
- 動画のトランスコード
- 専用のゲームサーバ
どのインスタンスタイプが向いているかは、動かすアプリケーションの性質で決まります。CPUの処理が重いなら、コンピューティング最適化を検討します。メモリ上で大きなデータを扱うなら、メモリ最適化を検討します。
料金モデルは、使い方の確実さで選ぶ
EC2には、複数の料金モデルがあります。使う期間や量がどこまで確実に決まっているかで、向いているモデルが変わります。具体的な金額は変動するため、ここでは仕組みの違いだけを説明します。
| 料金モデル | 仕組み |
|---|---|
| オンデマンド | 使った分だけ払う。長期の契約や前払いは不要。Amazon LinuxやWindowsなど対象のOSでは、秒単位(最低60秒)で課金される |
| リザーブドインスタンス | インスタンスタイプやリージョンなどの構成を決め、1年か3年の期間で約束して割引を受ける |
| Savings Plans | 1時間あたりの利用額(米ドル)を1年か3年の期間で約束して割引を受ける |
| スポット | AWSで使われていない余りのインスタンスを安く使う。AWSが容量を必要とすると、2分前に通知されたうえで中断される。2026-10-16時点のAWS公式ページでは、オンデマンド料金と比べて最大90%安くなるとしている |
いつ・どれだけ使うか分からないテストや短期の利用には、オンデマンドが向きます。1年以上使い続けると分かっている本番環境には、リザーブドやSavings Plansが向きます。途中で止まっても困らないバッチ処理には、スポットが向きます。
最新の料金はAWS公式の料金ページで確認してください。本文中の割引率などの数値は、2026年10月16日に確認した値です。
リザーブドインスタンスの柔軟性は、AWSの料金の考え方の記事にまとめています。データ転送料金など、AWS全体に共通する料金の考え方も同じ記事で説明しています。
Auto ScalingとロードバランサがEC2を支える位置づけ
EC2インスタンスを複数台使うシステムでは、Auto Scalingとロードバランサを組み合わせることがよくあります。Amazon EC2 Auto Scalingは、負荷の処理に必要な数のEC2インスタンスを確保します。
ロードバランサは、複数のインスタンスへ処理を振り分ける仕組みです。AWS公式ドキュメントは「複数のコンピューティングリソース(仮想サーバなど)に処理を分散させるもの」と説明しています。1台のインスタンスが止まっても、残りのインスタンスで処理を続けられます。
複数台への振り分けの仕組みは、ロードバランサの記事で説明しています。AZをまたいでインスタンスを分散させる考え方は、リージョンとAZの記事の複数AZ構成と同じです。ALBとNLBの違いは、ELBとAuto Scalingの記事で説明しています。Auto Scalingグループの最小・希望・最大の設定も、同じ記事で説明しています。
EC2は、インスタンスを起動している間の時間で課金されます。常時稼働ではなく、イベントが来たときだけコードを実行したい場合は、AWS Lambdaが向きます。インスタンスの上でコンテナを動かす方法は、Amazon ECSの記事にまとめています。インスタンスとロードバランサの構築を任せてWebアプリを動かすなら、Elastic Beanstalkを使えます。インスタンスを画面から1台ずつ起動する代わりに、構成をファイルに書いて作る方法は、IaCの記事で説明しています。AWSでそのファイルからインスタンスを作るサービスが、CloudFormationです。
参考にした資料
- AWS「Amazon EC2」(EC2の定義)
- AWS「Amazon EC2 concepts」(インスタンス・AMI・インスタンスタイプ・セキュリティグループの定義、料金オプションの一覧)
- AWS「Reserved Instances」(リザーブドインスタンスの仕組み)
- AWS「Amazon EC2 の料金」(スポットインスタンスの割引率)
- AWS「Amazon EC2 インスタンスタイプ」(5つのファミリーの説明)
- AWS「General purpose instances」(t3.micro・m5.largeの仕様表)
- AWS「Compute optimized instances」(c5.xlargeの仕様表)
- AWS「What is Amazon EC2 Auto Scaling?」
- AWS「What is load balancing?」
練習問題(全5問)
正解:リサイズ可能な
AWS公式ページは、
正解:OSや
AWS公式ドキュメントは、
正解:両方とも
AWS公式ドキュメントの
正解:AWSで
スポットインスタンスは、
正解:CPUの
インスタンスタイプは、
選んでから「採点する」を押すと、解説つきで答え合わせができます。