こんにちは、フルスタックエンジニアのryuです。
今回の記事では、AWSの代表的なサービスであるAmazon EC2について解説します。
AWSの勉強を始めると、かなり早い段階でEC2という言葉が出てきます。ただ、仮想サーバーと説明されても、最初は少し分かりにくいですよね。
EC2を理解するには、単に仮想サーバーと覚えるのではなく、どのOSを使うのか、どれくらいの性能にするのか、どこへデータを保存するのか、どこから通信を許可するのかまで一緒に見ると分かりやすくなります。
この記事では、EC2とは何かから、AMI、インスタンスタイプ、EBS、セキュリティグループ、料金、スケーリングまで初心者向けに解説します。
【AWS】EC2とは?¶
今回の記事では、AWSのEC2について詳しく解説します。EC2の概要を初心者の方でも分かりやすく解説します。
では早速解説します!
EC2とはAWSで仮想サーバーを構築できるサービス¶
まず、EC2とは何かを解説します。
EC2とは、AWS上で仮想サーバーを作成して利用できるサービスです。
正式名称はAmazon Elastic Compute Cloudです。
AWSでは、EC2で作成した仮想サーバーをEC2インスタンスと呼びます。
物理サーバーでは機器やOSの準備が必要ですが、EC2ではAWS上でLinuxやWindows Serverなどのサーバーを作成できます。
たとえば、Webサイトを公開するためにLinuxサーバーを1台用意したい場合も、EC2インスタンスを作成し、その中へApacheやNginxをインストールできます。
EC2を作るときに決めるもの¶
EC2では、単にサーバーを作成するボタンを押すだけではありません。
どのようなサーバーを作るのか、いくつかの設定を選択します。
まず次の4つを覚えておくと分かりやすいです。
| 設定 | 役割 |
|---|---|
| AMI | OSなどが入ったサーバーのひな型 |
| インスタンスタイプ | CPUやメモリなどの性能 |
| EBS | データを保存するストレージ |
| セキュリティグループ | 通信を許可・制御する仮想ファイアウォール |
それぞれ詳しく見ていきましょう。
AMIでOSなどを選ぶ¶
AMIはAmazon Machine Imageの略です。
EC2インスタンスを作成するときのひな型と考えると分かりやすいです。
AMIにはOSや、場合によってはあらかじめインストールされたソフトウェアなどが含まれています。
たとえば、Amazon LinuxやUbuntu、Windows ServerなどのAMIを選び、そこからEC2インスタンスを起動できます。
下記の画像のようにAWS上で、サーバーの種類を選択することができます。

自分で設定したEC2インスタンスからAMIを作成することもできます。
【関連記事】EC2のAMIとは?AMIを利用してインスタンスを作成する方法を解説します
インスタンスタイプでサーバー性能を決める¶
インスタンスタイプは、EC2インスタンスのCPU、メモリ、ネットワーク性能などを決める設定です。
たとえば、小さな検証環境と大規模なWebサービスでは必要な性能が違います。
そのため、EC2では用途に合わせてさまざまなインスタンスタイプから選択できます。
学習用途では小さな構成から始め、必要に応じて性能を変更すると分かりやすいです。
高性能なものを選べば良いのではなく、アプリケーションに必要な性能と料金のバランスを考えることが大切です。
EBSにデータを保存する¶
EC2インスタンスでは、ストレージとしてAmazon EBSを利用する構成がよく使われます。
EBSは、EC2インスタンスから利用できるブロックストレージです。
たとえばLinuxのOSファイルやWebサイトのファイルなどを保存します。
EC2インスタンスとEBSは別のリソースとして考えると理解しやすいです。
EC2インスタンス
└ CPU・メモリなどの計算処理
EBS
└ OS・ファイルなどのデータ保存
EBSのスナップショットを作成すれば、バックアップや復旧にも利用できます。
【関連記事】EC2のバックアップと復旧の方法は?EBSスナップショットについて解説します
セキュリティグループで通信を制御する¶
EC2を作成しただけでは、どこからでも自由に通信させれば良いわけではありません。
そこで利用するのがセキュリティグループです。
セキュリティグループは、EC2インスタンスへの通信やEC2インスタンスからの通信を制御する仮想ファイアウォールです。
たとえば、WebサーバーであればHTTPの80番ポートやHTTPSの443番ポートを許可します。
SSHでLinuxへ接続する場合は22番ポートを利用します。
| 用途 | プロトコル | ポート例 |
|---|---|---|
| SSH | TCP | 22 |
| HTTP | TCP | 80 |
| HTTPS | TCP | 443 |
SSHの22番ポートをインターネット全体へ開放するのではなく、自分のIPアドレスだけに制限するなど、必要な通信だけを許可することが大切です。
EC2を使用するメリット¶
ここからは、EC2を使用するメリットについて解説します。このメリットを学ぶことで、EC2の特徴を理解することができます。
主なメリットを整理すると、次のようになります。
| メリット | 内容 |
|---|---|
| サーバーをすぐ準備できる | ハードウェア購入から始めなくて良い |
| 性能を変更しやすい | 必要に応じてインスタンスタイプを変更できる |
| 台数を増減できる | Auto Scalingと組み合わせられる |
| 料金体系を選べる | On-Demand、Savings Plans、Spotなどがある |
さまざまなサーバーを簡単に構築できる¶
まず、1つ目のメリットは「さまざまなサーバーを簡単に構築できる」という点です。
物理サーバーを自分で用意する場合は、機器を購入して設置する必要があります。
EC2では、AMIやインスタンスタイプ、ネットワークなどを設定してインスタンスを起動できます。
そのため、検証用サーバーを作る、Webサーバーを追加する、新しいOSを試すといった作業を始めやすいです。
サーバー性能を変更しやすい¶
EC2では、必要に応じてインスタンスタイプを変更できます。
たとえば、最初は小さな構成で運用し、CPUやメモリが不足するようになったら、より性能の高いインスタンスタイプへ変更する方法があります。
このように、1台のサーバーの性能を高くすることをスケールアップと呼びます。
逆に性能を小さくすることはスケールダウンです。
ただし、インスタンスタイプを変更する際には、停止が必要になる構成もあります。
本番環境では、サービスへの影響を考えながら変更します。
Auto ScalingでEC2の台数を増減できる¶
元の記事では、アクセスが増えたときにEC2の性能そのものを自動で増強するように説明していました。
ここは少し整理が必要です。
AWSにはAmazon EC2 Auto Scalingという仕組みがあり、アクセスやCPU使用率などに応じて、Auto Scalingグループ内のEC2インスタンスの台数を増減できます。
通常時
EC2 EC2
アクセス増加
EC2 EC2 EC2 EC2
アクセス減少
EC2 EC2
サーバーの台数を増やすことをスケールアウト、減らすことをスケールインと呼びます。
ロードバランサーと組み合わせれば、複数のEC2へ通信を分散する構成も作れます。
EC2の料金は使った分だけ?¶
EC2では、利用方法によって複数の料金モデルがあります。
初心者が最初に覚えたいのはOn-Demandです。
On-Demandでは、長期契約をせず、利用したコンピューティング容量に応じて料金を支払います。
ほかにも、一定量の利用を約束して割引を受けるSavings Plansや、AWSの余剰キャパシティを利用するSpot Instancesなどがあります。
| 料金モデル | 特徴 |
|---|---|
| On-Demand | 長期契約なしで利用しやすい |
| Savings Plans | 一定の利用コミットで割引を受ける |
| Spot Instances | 余剰キャパシティを安く利用できるが中断される可能性がある |
注意したいのは、EC2インスタンス以外にも料金が発生する場合があることです。
EBS、データ転送、Elastic IPなど、構成によって別の料金が発生することがあります。
学習後は使わないリソースを放置しないようにしましょう。
【関連記事】EC2の無料枠を超えて課金されてしまった話【無駄なコストを発生させないようにする方法】
EC2を作成した後は何をするの?¶
EC2の概要が分かったら、実際に1台作成してみるのがおすすめです。
LinuxのEC2を作成した場合、大まかな流れは次のようになります。
- AMIを選択する
- インスタンスタイプを選択する
- ネットワークを設定する
- EBSを設定する
- セキュリティグループを設定する
- EC2インスタンスを起動する
- SSHなどで接続する
接続後はLinuxサーバーとして操作できます。
pwd
ls -la
cat /etc/os-release
Webサーバーとして使うのであれば、ApacheやNginxをインストールしてWebページを公開することもできます。
【関連記事】実際の作成手順は、EC2インスタンスの作成方法解説!サーバーを作成して接続してみるで解説しています。
EC2を理解するにはLinuxとネットワークも重要¶
EC2はAWSのサービスですが、AWSの画面操作だけ覚えても十分ではありません。
EC2へSSH接続した後はLinuxを操作します。
また、EC2をどのVPCやサブネットへ配置するのか、インターネットへ通信できるのかといった部分ではネットワークの知識が必要です。
たとえばLinux上では、次のようなコマンドを使います。
ip addr
ip route
Webサーバーが起動しているか確認するときは、次のようなコマンドも利用します。
systemctl status nginx
AWSを理解するには、EC2だけを単独で覚えるのではなく、Linux・ネットワーク・AWSをつなげて学ぶことが大切です。
InfraAcademyでAWSを実際に学習する¶
InfraAcademyでは、AWSの基礎を教材とシミュレーターを使いながら学習できます。
EC2だけではなく、IAM、VPC、サブネットなどAWSでよく利用する仕組みを学べます。
AWSを基礎から学習したい方は、AWS講座をご覧ください。
EC2へ接続した後のLinux操作が不安な方は、Linux入門講座から始めるのがおすすめです。
VPCやサブネット、ルーティングが分からない方は、ネットワーク講座も利用できます。
サービス名だけでなく、実際にサーバーやネットワークを作る流れで学ぶと理解しやすくなります。
EC2とは?まとめ¶
今回の記事では、Amazon EC2とは何かについて解説しました。
EC2は、AWS上で仮想サーバーを作成して利用できるサービスです。
EC2を理解するときは、次の4つを一緒に覚えておきましょう。
| 項目 | 役割 |
|---|---|
| AMI | サーバーのひな型 |
| インスタンスタイプ | CPUやメモリなどの性能 |
| EBS | データを保存するストレージ |
| セキュリティグループ | 通信を制御する仮想ファイアウォール |
EC2ではサーバーを比較的簡単に作成でき、必要に応じて性能や台数を変更できます。
また、On-DemandやSavings Plans、Spot Instancesなど、用途に応じた料金モデルも用意されています。
EC2はAWSを学ぶうえで重要なサービスです。
概要を読んだら、次は実際にEC2を1台作り、Linuxへ接続して操作してみてください。
手を動かしてみると、AMI、インスタンスタイプ、EBS、セキュリティグループが何のためにあるのか、より理解しやすくなります。





