InfraAcademy

InfraAcademy Blog

【AWS】EC2とは?概要やメリットを詳しく解説!

| #aws #aws入門 #ec2
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、フルスタックエンジニアの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で構築できるサーバーの種類

自分で設定した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を作成した場合、大まかな流れは次のようになります。

  1. AMIを選択する
  2. インスタンスタイプを選択する
  3. ネットワークを設定する
  4. EBSを設定する
  5. セキュリティグループを設定する
  6. EC2インスタンスを起動する
  7. 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、セキュリティグループが何のためにあるのか、より理解しやすくなります。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る