EC2とは?クラウド上の仮想サーバーの基本概念

AWSを学び始めると、最初に触れるサービスのひとつが「EC2(Amazon Elastic Compute Cloud)」です。名前は長くて難しそうに聞こえますが、実際の仕組みは非常にシンプルで合理的です。このセクションでは、EC2の基本概念を紐解いていきましょう。

物理サーバーとEC2の決定的な違い

EC2を理解する上で、一番手っ取り早いのは「従来の物理サーバー(オンプレミス)」と比較することです。

Webシステムを構築する際、以前は物理的なサーバー機器を購入してデータセンターに設置するのが一般的でした。この場合、数週間から数ヶ月の納品待ちが発生し、数十万円から数百万円という初期費用もかかります。さらに、アクセスが急増して性能が不足した際には、追加で機器を購入しなければならず、柔軟な対応が困難です。

一方、EC2はAWSが世界中に持つデータセンター内の「仮想サーバー」を、必要な時に必要な分だけレンタルする仕組みです。初期費用はかからず、数回のクリックと数分で自分専用のサーバーが起動します。

負荷に応じてCPUやメモリのスペックを上げること(スケールアップ)や、サーバーの台数を増やすこと(スケールアウト)も簡単です。サーバーが不要になれば削除するだけで、それ以上の料金は発生しません。

Note

EC2の最大の魅力は「使った分だけ払う」という従量課金制です。数時間だけ動かして削除すれば、数円〜数十円程度のわずかな料金しかかかりません。

「リモート接続先のコンピューター」としてイメージする

「仮想サーバー」という言葉にピンとこない場合は、実際のパソコンと同じように考えましょう。

一番わかりやすいイメージは、「AWSのデータセンターにある、遠隔操作する自分専用のパソコン」です。自宅のPCから会社のPCを操作するWindowsの「リモートデスクトップ」などをイメージしてください。EC2も基本的にはこれと同じです。違うのは「接続先のコンピューターが手元の物理的な実機ではなく、クラウド上の仮想マシンである」という点だけです。

普段使っているPCと同じように、EC2にもOSがインストールされており、ソフトウェアのインストールやファイルの保存、ネットワーク設定が可能です。画面とキーボードが手元にないだけで、内部で動いている仕組みは一般的なパソコンと変わりません。

Tip

初心者のうちは、EC2を「リモートデスクトップで繋ぐ先のPC」として捉えましょう。AWSのネットワークやセキュリティ設定も、「遠くにあるパソコンに安全に接続するための工夫」と考えれば理解しやすくなります。

次のセクションでは、この「遠隔操作するパソコン」を構成する具体的な要素を見ていきましょう。

EC2の仕組みと主要な構成要素

EC2の画面でサーバーを作成しようとすると、多くの設定項目が表示されます。しかし、やっていることは「パソコンのスペックを決める」「OSを選ぶ」「データの保存場所を用意する」「セキュリティを設定する」という、物理的なパソコンを準備するのと同じステップです。

インスタンスタイプとAMI(マシンイメージ)の役割

EC2を作成する際、最初に決めるのがハードウェアのスペックとOSです。スペックを決めるのが「インスタンスタイプ」で、OSを決めるのが「AMI(Amazon Machine Image)」です。

インスタンスタイプは、CPUやメモリといったハードウェアのスペックをまとめたパッケージです。AWSでは用途に合わせて何百種類ものタイプが用意されています。例えば、Webサーバーやテスト環境などに適した「t3.micro(vCPU 2個、メモリ 1GiB)」、膨大なデータ処理に適した「c5(コンピューティング最適化)」や「r5(メモリ最適化)」など、名前の頭文字で大まかな特徴を見分けられます。

AMIは、OSや初期設定のソフトウェアをまとめた「セットアップ済みのテンプレート」です。一からOSをインストールするのではなく、このテンプレートをコピーしてサーバーの基盤を作ります。Amazon LinuxやWindows Serverなどの公式AMIや、WordPressが初期導入されたコミュニティのAMIなどが公開されています。

Note

AMIを選ぶ際は、プロセッサのアーキテクチャ(x86かARMか)がインスタンスタイプと合っているか確認が必要です。例えば、コストパフォーマンスに優れたARM系の「T4g」インスタンスを選ぶ場合、ARM向けにビルドされたAMIを選ばないと正常に起動しません。

ストレージの基礎:EBSとインスタンスストアの違い

パソコンを組み立てたら、次はデータを保存するストレージが必要です。EC2には大きく分けて「EBS」と「インスタンスストア」という2種類のストレージが存在します。ここを混同するとデータ消失の危険があるため、違いをしっかり理解しておきましょう。

EBS(Amazon Elastic Block Store)は、EC2とは独立した外付けハードディスクのようなものです。EC2インスタンスを「停止」しただけならデータは残ります。ただし、インスタンスを「終了」した場合、OSが入っているルートボリュームはデフォルトで削除されます(追加でアタッチしたデータボリュームはデフォルトで保持されます)。この仕様を理解しておくことが重要です。

一方、インスタンスストアは、物理サーバーの内部に直接用意された一時的な保存領域です。EBSを経由せず直接読み書きできるため非常に高速ですが、EC2インスタンスを「停止」や「終了」した瞬間に、中のデータはすべて完全に消滅します。

Warning

インスタンスストアは、一時的なキャッシュや処理中のデータ置き場としてのみ利用してください。再起動後にも必要なデータを保存すると、インスタンスの停止時にデータが消失する原因になります。

アクセス制御とファイアウォール:キーペアとセキュリティグループ

サーバーが立ち上がっても、誰でもアクセスできては危険です。安全にサーバーを利用し、悪意のあるアクセスを弾くための仕組みが「キーペア」と「セキュリティグループ」です。

キーペアは、サーバーのドアを開けるための「鍵」です。パスワード認証ではなく公開鍵暗号方式を使います。AWS側に「鍵穴(公開鍵)」をセットし、自分の手元に「鍵(秘密鍵)」を保有します。ログイン時には、手元の秘密鍵ファイルを持っている人だけが認証を通過できます。

Caution

キーペア作成時にダウンロードできる秘密鍵ファイル(.pemファイル)は、AWSのコンソール上で再ダウンロードできません。紛失するとそのEC2インスタンスに二度とログインできなくなるため、厳重に保管してください。

セキュリティグループは、EC2の周りに張る「仮想のファイアウォール」です。ここでは「どの通信を許可するか」というルールを設定します。例えば、「ポート22番(SSH接続用)は自分のIPアドレスからのみ許可」「ポート80番(Webサイト閲覧用)は全世界から許可」といった設定が可能です。

初心者が陥りがちな罠が「とりあえず全部許可(0.0.0.0/0)」という設定です。特にSSHやRDPのログインポートを全開放にすると、悪意あるbotから次々とログイン攻撃を受けることになります。「必要なポートだけ、必要な相手からだけ許可する」という最小限の設定を心がけることがクラウドを安全に使う鉄則です。

インスタンスのライフサイクルと状態遷移の考え方

EC2のコンソールを操作していると、「起動」「停止」「終了」といった似たような言葉が並び、混乱しがちです。ここでは、EC2インスタンスが生まれてから消えるまでの「ライフサイクル」と、それぞれの状態で何が起きているのかを整理します。

起動から終了までの基本的な状態変化

インスタンスの状態は、ユーザーの操作に合わせて明確に遷移します。基本的な流れは以下の通りです。

  1. 保留:インスタンス作成直後の準備状態。OSの起動処理が行われています。
  2. 実行中:準備が完了し、リモート接続して操作できる状態。
  3. 停止済み(Stopped):OSをシャットダウンした状態。
  4. 終了済み:インスタンスを完全に削除した状態。

特に混同しやすいのが「停止」と「終了」です。これらは全く別の操作だと認識してください。

「停止」は、普段使いのパソコンのシャットダウンに似ています。電源は切れますが、ハードディスク(EBS)の中のデータはそのまま残ります。いつでも「開始」ボタンを押せば、前と同じ状態で再起動できます。

一方「終了」は、パソコンそのものを廃棄するような操作です。一度終了すると、そのインスタンスを二度と起動することはできません。

Important

インスタンスを「終了」すると、設定情報は完全に削除され元に戻せません。日常的な作業の中断時は「停止」を使い、サーバーとしての役目が完全に終わったときだけ「終了」を選びましょう。

休止状態の仕組みとユースケース

「停止」と「終了」の他にもう一つ、「休止」という便利な状態があります。

通常の停止では、メモリ(RAM)上のデータはすべて消去されるため、再起動後にOSやアプリケーションをゼロから立ち上げ直す必要があります。一方「休止」は、パソコンの「スリープ」に近い仕組みです。メモリの中身をハードディスク(EBS)に書き出してから電源を切ります。

これにより、休止から復元(再開)したときには、メモリの状態がそのまま復元されます。実行中だったプログラムの状態が停止前のまま維持されるため、通常の起動よりも圧倒的に早く作業に復帰できます。

具体的なユースケースとしては、開発環境で重いアプリケーションを動かしているケースが挙げられます。データベースや開発用サーバーの設定を済ませた後、退勤時に「休止」を選んでおけば、翌日出社して「再開」ボタンを押すだけで即座に開発を再開できます。

ただし、休止機能を利用するにはいくつか条件があります。ルートデバイスがEBSであることや、インスタンスのメモリ容量に応じて休止用のEBS領域を大きく確保しておく必要がある点に注意してください。

インスタンスの操作ごとの課金有無の違い

「使っていないサーバーの料金をうっかり払い続けていた」というのは、クラウド初心者によくある失敗です。不要なコストを防ぐために、各状態の課金ルールを正確に理解しておきましょう。

インスタンス自体の計算料金(コンピューティング料金)は、「実行中」の時間に対してのみ発生します。保留中や、通常の停止中、終了済みの状態であれば、インスタンスの基本料金はかかりません。

しかし、ここで気をつけるべき「落とし穴」があります。

Warning

インスタンスを「停止」しても、そのインスタンスに紐づいているハードディスク(EBS)や、割り当てられた固定IP(Elastic IP)の料金は継続して発生します。停止すれば完全に無料になるわけではありません。

数GBのEBSが接続されたままインスタンスを数ヶ月間「停止」しておくと、インスタンス代はかからなくてもEBSのストレージ代が毎月請求されます。

もし、そのインスタンスを今後二度と使わないのであれば、迷わず「終了」を選んでください。終了時に「終了時に削除」の設定になっていれば、インスタンスと同時にEBSも自動的に削除され、課金を完全にストップできます。

EC2への接続方法とネットワークの基礎知識

ここまでの解説で、EC2が「遠隔操作する自分専用のパソコン」であることは理解できたかと思います。ただし、普段使いのパソコンと大きく異なる点がひとつあります。それは「選んだOSによって、接続の仕方が変わる」という点です。ここを押さえておかないと、起動した後に接続できず焦ることになります。

OSごとの接続方式(LinuxはSSH、WindowsはRDP)

EC2を作成する際、OSとして「Linux」か「Windows」のどちらかを選択します。この選択によって、接続に使うプロトコル(通信の決まり事)が変わります。

Windowsインスタンスを選んだ場合は「RDP(リモートデスクトッププロトコル)」を使います。普段使っているWindowsのリモートデスクトップ機能と同じで、接続すると見慣れたデスクトップ画面が表示され、マウスで直感的に操作できます。通信には「3389番ポート」が使われます。

一方、Linuxインスタンスを選んだ場合は「SSH(Secure Shell)」を使います。黒い画面(ターミナル)にキーボードでコマンドを打ち込んで操作するCUI(キャラクターユーザーインターフェース)と呼ばれる方式で、通信には「22番ポート」が使われます。

Linuxはマウスによる画面描画の機能を持たない分、動作が軽量でリソースを有効に活用できるため、世界中のWebサーバーの大多数で採用されています。「マウスで画面操作をしたいならWindows」「コマンドで軽快に処理したいならLinux」と用途で切り分けると良いでしょう。

パブリックIPとElastic IP(固定IP)の考え方

EC2にリモート接続するためには、インターネット上の住所である「IPアドレス」が必要です。EC2を起動すると、自動的に「パブリックIPアドレス」が割り当てられます。

ここで初心者が陥りがちな落とし穴があります。それは、このパブリックIPアドレスが「動的」であるということです。EC2を「停止」してから再度「開始」すると、前に割り当てられていたIPアドレスから別のIPアドレスに変わってしまいます。

Webサーバーを公開してドメインを取得した場合、IPアドレスが変わるたびにドメインの設定を書き換える必要が生じます。また、「特定のIPアドレスからのアクセスだけを許可する」といったセキュリティ設定をしている場合も、IPが変わると接続できなくなります。

こうした「IPアドレスを固定したい」というニーズに応えるのが「Elastic IP」です。Elastic IPは、AWSアカウントに固定で予約できる静的なパブリックIPアドレスで、これをEC2インスタンスに紐づけることで、何度再起動しても同じIPアドレスを使い続けられます。

Caution

Elastic IPは、EC2インスタンスに割り当てられてアクティブに使われている間は無料です。しかし、インスタンスを停止したり終了してElastic IPが「未使用」の状態になると、料金が継続して発生し続けます。学習目的で利用する場合は、使わなくなったら必ずElastic IPをリリース(解放)する癖をつけましょう。

EC2の料金体系とコスト最適化のポイント

オンデマンドとさまざまな割引プランの比較

EC2の料金体系は、基本を押さえればシンプルです。

まずベースになるのが「オンデマンドインスタンス」です。前払いや契約期間の縛りがなく、使った分だけ払うモデルです。秒単位(最低1分)で課金されるため、テスト環境を数時間だけ立ち上げたい場合や、稼働時間が読めない開発初期の段階に適しています。

ただし、本番環境のように「毎日24時間動かし続ける」とわかっている場合は、オンデマンドだと割高になります。そこで、割引プランの活用を検討します。

代表的なのが「リザーブドインスタンス(RI)」です。1年または3年の利用を事前にコミットする代わりに、最大72%程度の割引が受けられます。支払い方法も「全額前払い」「部分前払い」「前払いなし」から選べ、予算に合わせて柔軟に対応できます。

もう一つ重要なのが「Savings Plans」です。こちらも1年または3年のコミットで最大72%の割引が得られますが、特定のインスタンスタイプに縛られない点がリザーブドインスタンスとは異なります。1時間あたりの利用量を金額ベースでコミットするため、後からインスタンスタイプを変更しても割引が適用され続けます。

Tip

本番環境のコスト削減を考えるなら、まずSavings Plansを検討してみてください。インスタンスの仕様変更に追従しやすいため、運用の柔軟性を保ちながら大幅なコスト削減が見込めます。

また、データ処理やバッチ処理など「途中で止まっても問題ない作業」には「スポットインスタンス」という選択肢もあります。これはAWSの余剰リソースを入札形式で安く利用する仕組みで、最大90%もの割引が適用されます。ただし、需要が高まったときにはAWS側から強制終了されるリスクがあるため、一時的なタスクに限定して使うのが鉄則です。

用途別の最適な選択肢は以下の通りです。

  • 開発・テストや短時間の利用 → オンデマンド
  • 24時間稼働の本番サーバー → リザーブドインスタンスかSavings Plans
  • バッチ処理など中断可能な作業 → スポットインスタンス

最初はオンデマンドで始め、システムの稼働パターンが見えてきたら少しずつ割引プランを取り入れるのが現実的です。

無料利用枠の範囲と注意すべき隠れコスト

AWSを学び始めるうえで、無料利用枠は心強い味方です。EC2の場合、アカウント作成から12ヶ月間、Linuxの「t2.micro」または「t3.micro」というインスタンスタイプが月間750時間まで無料で使えます。

1ヶ月は720時間(30日×24時間)なので、1台のインスタンスを24時間フル稼働させても月の無料枠に収まります。学習用に1台だけ立ち上げておくなら、1年間は計算料金がかかりません。

しかし、ここで油断していると思わぬ請求につながる「隠れコスト」が発生します。インスタンスの基本料金は無料枠に含まれていても、それ以外の付随サービスには課金されるためです。

Warning

インスタンスを「停止」しても、アタッチされたままのEBSボリュームや、未使用のElastic IPには課金され続けます。「停止=完全に無料」という誤解に注意してください。

初心者が陥りやすい予想外のコストについて、具体的な例を交えて整理しておきます。

EBS(ストレージ)の料金 インスタンスを停止しても、データが保存されているEBSボリューム自体は課金対象です。1GBあたり月額約0.10ドル(リージョンにより異なる)が継続して請求されます。t3.microのデフォルトである8GBのボリュームなら月に0.80ドル程度ですが、無料期間中に学習でインスタンスを何度も作成・削除せずに放置すると、数十個のEBSに対して課金され想定外の金額になる危険があります。

Elastic IP(固定IP)の料金 インスタンスを再起動するたびにIPアドレスが変わるのを防ぐためにElastic IPを取得した場合、これが最も大きな落とし穴になります。インスタンスに割り当てられている間は無料ですが、インスタンスを停止して紐付けが外れた状態だと、1時間あたり約0.005ドルが請求されます。これが数ヶ月放置されると、気づかないうちに数千円の請求につながることも珍しくありません。

データ転送料金 インスタンスからインターネットへのデータ送信(アウトバウンド通信)にも料金がかかります。月間100GBまでは無料枠に含まれることが多いですが、それを超えると1GBあたり約0.114ドルが課金されます。個人で少し試す程度なら超えることは稀ですが、大量の画像ファイルを配信したり、監視ログを外部のサーバーに大量に送信し続けたりすると、知らぬ間に通信量が跳ね上がる可能性があります。

Caution

学習を終えた後、使わなくなったインスタンスは必ず「終了」してください。停止ではなく終了させることで、関連するEBSボリュームも削除され、課金を完全にストップできます。

「EC2の計算部分だけが無料」という正確な理解を持つことが大切です。定期的にAWSの「請求ダッシュボード」を確認し、想定外の費用が発生していないかチェックする癖をつけておきましょう。

EC2を学ぶ意義と他のAWSサービスとの関係

これまでのセクションで、EC2の基本的な仕組みから接続方法、そして料金体系まで解説してきました。ここからは少し視点を変えて、EC2がAWS全体の中でどのような役割を担っているのかを見ていきましょう。

AWSの基盤としてのEC2の位置づけ

EC2は単体で動かすことも可能ですが、実際のシステムでは他のAWSサービスと連携することで真価を発揮します。

EC2を「オフィスの執務室」と考えてみてください。執務室単体でも仕事はできますが、実務を円滑に進めるには周辺の設備が必要です。

  • VPC(Virtual Private Cloud):執務室が属する「オフィスビル」や「社内ネットワーク」です。誰がアクセスできるかというネットワークの境界線を決めます。
  • RDS(Relational Database Service):顧客データを安全に保管する「専用の金庫室」です。EC2から指示を出してデータをやり取りします。
  • S3(Simple Storage Service):大量の画像や動画ファイルをしまっておく「巨大な倉庫」です。EC2上のWebサイトから画像を表示する際に利用されます。

EC2は「計算処理を行う脳」として機能し、ネットワークはVPC、データはRDSやS3に任せるという役割分担が、AWSにおける基本的なシステム設計です。

Note

最近はサーバーの管理をAWSに任せる「コンテナサービス(ECSなど)」や「サーバーレス(Lambda)」も普及しています。しかし、それらの技術を学ぶ際も「最終的にはどこかで計算資源が動いている」という比較対象としてEC2の知識が役立ちます。

EC2の概念を理解することは、AWSのシステムアーキテクチャの「地図の中心」を把握することと同じです。他のサービスを学ぶ際も「これはEC2とどう繋がるのか」というイメージが湧きやすくなり、学習スピードが格段に上がります。

スケーラビリティを実現するAuto Scalingとの連携

クラウドの最大の強みである「需要に応じて柔軟に拡張・縮小できること(スケーラビリティ)」を、EC2ベースで最もダイナミックに実現できるのが「Auto Scaling」という仕組みです。

従来の物理サーバー環境では、アクセス急増に備えて数週間前に新しいサーバーを発注し、設置・設定する手間がかかりました。

しかし、Auto Scalingを利用すれば、「CPU使用率が80%を超えたら、自動的にEC2を2台追加する」といったルールを事前に設定できます。

具体的な動作は以下の通りです。

  1. アクセスが少ない時間帯:EC2は2台のみで稼働(コスト節約)
  2. アクセス急増:CPU使用率が80%を超える
  3. 自動追加:Auto Scalingが検知し、自動的にEC2を2台追加(合計4台に)
  4. アクセス減少:不要になった2台が自動的に削除され、再び2台に戻る

人間が手作業でサーバーの増減を行う必要はありません。EC2という「数分で用意・破棄が可能な部品」だからこそ、この自動化の仕組みが成り立ちます。

Tip

Auto Scalingは強力な機能ですが、設定を誤ると「インスタンスが無限に増え続けて高額な請求が来る」という事故につながります。まずは「1台のEC2を安全に起動・終了できる」という基本操作を完璧にしてから、Auto Scalingに挑戦してください。

AWSの根幹にあるのは「EC2で計算し、データを保存し、ネットワークで繋ぐ」というシンプルな考え方です。本記事で解説したEC2の基礎が、皆さんのクラウド学習の確かな第一歩になることを願っています。

まとめ

本記事では、AWSの基幹サービスであるEC2について、初心者向けにその基本から応用までを解説しました。最後に、重要なポイントを振り返りましょう。

  • EC2の基本概念:EC2は「クラウド上の仮想サーバー」です。物理サーバーのような初期費用や納期を待つことなく、数分で起動・利用が可能です。
  • 主要な構成要素:サーバーのスペックを決める「インスタンスタイプ」、OSのテンプレートである「AMI」、データを保存する「EBS」、アクセスを制御する「セキュリティグループ」と「キーペア」を組み合わせて構築します。
  • ライフサイクルと課金:「停止」と「終了」は全く別の操作です。インスタンスを終了せずに放置すると、EBSやElastic IPなどの付随リソースに対して「隠れコスト」が発生し続けるため、不要なリソースは確実に「終了」させることが重要です。
  • 接続とネットワーク:Linuxインスタンスには「SSH」、Windowsインスタンスには「RDP」で接続します。固定のIPアドレスが必要な場合は「Elastic IP」を使いますが、未使用時の課金に注意が必要です。
  • AWS全体における役割:EC2はAWSにおける計算処理の基盤です。VPCやRDS、S3などと連携し、Auto Scalingを利用することで、柔軟でスケーラブルなシステムを構築できます。

AWSの学習において、EC2の仕組みを理解することは非常に大きな一歩となります。まずは無料利用枠を活用して、実際にインスタンスを起動・接続・終了する一連の流れを体験してみてください。手を動かすことで、クラウドの概念をより深く理解できるはずです。