EC2
Amazon Elastic Compute Cloud
概要(サマリー)
EC2(Amazon Elastic Compute Cloud)とは、Amazonが提供するクラウドサービス(AWS)の中で、インターネット上に自分専用のサーバー(パソコン)を何台でも即座にレンタルできるサービスである。
物理的なサーバーを購入すると、届くまでに数日かかり、設置スペースや電気代、メンテナンスの手間が発生する。
しかしEC2を使えば、マウス操作だけで「Windows」や「Linux」のOSが入ったサーバーを、わずか数分で起動して使い始めることができる。
さらに「Elastic(伸縮自在な)」という名前の通り、サーバーの性能(CPUやメモリ)を後からボタン一つで強くしたり、アクセス集中に合わせてサーバーの台数を増やしたりできるのが最大の特徴である。
詳細解説
EC2の主な特徴と仕組み
EC2は、従来の物理的なサーバーや固定スペックのVPS(仮想プライベートサーバー)と異なり、クラウドならではの柔軟性を持っている。
- インスタンス(Instance):
EC2で立ち上げた個々の仮想サーバーのことを「インスタンス」と呼ぶ。「開発用インスタンス」「本番用インスタンス」のように作成・管理する。 - 柔軟なスペック変更:
アクセスが少ない時期はスペックの低い安いプラン(インスタンスタイプ)にしておき、利用者が増えたら数クリックでCPUやメモリの性能を上げることができる。 - 従量課金制:
サーバーが起動している「時間(秒単位)」に対してのみ料金が発生する。テスト用に1時間だけ起動して削除した場合は、1時間分の数百円〜数円の利用料だけで済む。 - 自動復旧とバックアップ:
ハードウェアの障害が発生した際、自動的に他の正常な場所にサーバーを移動させて稼働を維持する機能や、ディスク(EBS)のデータ状態をボタン一つで保存する仕組みがある。
EC2と他のサーバーサービスとの関係
EC2はOSの管理者権限(root権限)が渡されるため、サーバーの内部設定はすべて自由に行える。
その反面、セキュリティ対策やアップデート、Webサーバー(Nginxなど)の初期構築はすべて自己責任で行う必要がある。
AIコーディングとの関係
AIに「WebアプリをAWSで公開したい」と依頼すると、最も一般的で確実な手段として「EC2インスタンスを立ち上げてデプロイする手順」を提案されることが多い。
また、EC2にSSH接続して環境構築(DockerやNode.jsのインストール)を行うためのLinuxコマンドや、サーバー起動時に自動でプログラムを走らせる設定ファイルなども、AIを活用すれば瞬時に生成できる。
AIへ指示する際のポイント
- 「AWSのEC2でUbuntuインスタンスを起動しました。ここにNode.jsのWebアプリと、WebサーバーのNginxをインストールして、外部からアクセス可能にするための設定手順(コマンド一覧)を出力して」
- 「EC2インスタンスを作成するためのAWS公式のインフラ自動化コード(TerraformまたはAWS CloudFormation)のテンプレートを書いて」
よくある勘違い
EC2とS3は同じような保存場所?
全く異なる。
- EC2: プログラムを実行したり、データベースを動かしたりする「CPU(計算)やメモリ(脳)を持った仮想サーバー本体」。
- S3(Simple Storage Service): 画像やPDF、HTMLファイルなどを大量に安く保存するための「ファイル置き場(ストレージ)」。
EC2の中に画像ファイルを保存し続けるとディスク容量が一杯になり料金が高くなるため、WebアプリをEC2で動かし、ユーザーが投稿した画像はS3に保存する、というように組み合わせて使うのがインフラ設計の基本である。
電源を切っていればお金はかからない?
サーバー(インスタンス)を停止(Stop)していれば、CPUやメモリに対する利用料はかからない。
しかし、サーバーのデータを記録している「ハードディスク部分(EBSボリューム)」は、サーバーが動いていなくてもデータが保管され続けているため、その容量に応じた最低限のディスク保管料(月数百円程度〜)が毎月発生する。完全に料金をゼロにするには、インスタンス自体を「終了(Terminate・削除)」する必要がある。
EC2を起動すればすぐにWebサイトが公開できる?
EC2インスタンスを起動しただけでは、まだ外部からはアクセスできない。
Webサイトを公開するには、サーバーの入口を開く「セキュリティグループ」でHTTP(80番)やHTTPS(443番)ポートの通信を許可する設定、Nginxや Apacheなどのウェブサーバーソフトのインストールと設定、ドメインとの紐づけ(DNS設定)など複数の手順が必要になる。
EC2はサーバーを「起動する」サービスであって、「公開するまでのすべてを自動化する」サービスではない。
まとめ
- EC2は、AWSが提供するクラウド上の仮想サーバーであり、必要なスペックを即座にレンタルできる。
- 従量課金制で、必要な時に起動し、不要になったら停止・削除することでコストを抑えられる。
- OSの自由な管理ができる一方、セキュリティパッチの適用などサーバー管理の責任を開発者が負う。
- AIに指示することで、EC2の初期構築コマンドやAWSのセキュリティ設定(セキュリティグループ)の作成手順を網羅的に得られる。
情報ソース
より詳しくAIに聞いてみよう
- AWSのEC2インスタンスに自分のパソコンから安全に接続する(SSH接続)ための、公開鍵と秘密鍵を使った具体的な手順を教えてください。
- EC2の「セキュリティグループ」とは何ですか?Webサイトを一般公開するために許可すべきポート番号設定を教えてください。
- AWSの「EC2」と、より管理が簡単な「Amazon LightSail」の違いは何ですか?個人開発のWebアプリではどちらを選ぶべきですか?
- EC2インスタンスのスペックを後から変更する際の手順と、そのときにサーバーが一時的に停止(ダウンタイムが発生)するかどうかを教えてください。
- EC2で動いているWebサイトのアクセス急増に備えて、自動でサーバー台数を増減させる「オートスケーリング」の仕組みと設定の流れを教えてください。