【初心者向け】Amazon EC2で詰まりながらWebサーバーを立てた手順まとめ|Nginxを公開するまで


想定読者

  • AWS初心者の方
  • EC2を作ったあと、何をすればWebサーバーとして見えるのか分からない方
  • SSH接続やセキュリティグループでつまずいている方

所要時間

  • 30分〜1時間

導入

AWSのEC2でWebサーバーを立てようとすると、インスタンスを作るだけでは終わりません。
実際にやってみると、「SSHでは入れたのにブラウザで見えない」「Nginxを入れたのに表示されない」「公開IPが変わって混乱する」 といったところで詰まりやすいです。

私も最初は「EC2を作ればすぐ見えるはず」と思って進めましたが、実際にはセキュリティグループの設定Webサーバーの起動、そしてアクセス先IPの確認が必要でした。EC2のセキュリティグループはインスタンスへの通信を制御する仕組みで、HTTPを許可していないとブラウザでは表示できません。Public IPv4 が付与されているかも確認ポイントです。

この記事でできること

  • EC2インスタンスを起動する
  • EC2へ接続する
  • Nginxをインストールする
  • Nginxを起動して自動起動設定する
  • ブラウザからEC2上のWebサーバーを確認する
  • よくある詰まりポイントを回避する

前提条件

  • AWSアカウントを持っている
  • EC2を利用できる状態になっている
  • リージョンは任意
  • OSは Amazon Linux 2023
  • 接続方法は EC2 Instance Connect または SSH
  • 今回は独自ドメインやSSL化までは扱わず、まずは HTTPで表示確認するところまで

全体の流れ

  1. EC2インスタンスを作成する
  2. セキュリティグループでSSH/HTTPを許可する
  3. EC2へ接続する
  4. Nginxをインストールする
  5. Nginxを起動する
  6. ブラウザでPublic IPv4へアクセスする
  7. 表示されない場合は原因を切り分ける

手順

ステップ1:EC2インスタンスを作成する

やること

AWSマネジメントコンソールでEC2インスタンスを作成します。

操作手順

  1. AWSマネジメントコンソールを開く
  2. EC2 を開く
  3. 左メニューから インスタンス を開く
  4. インスタンスを起動 をクリック
  5. 以下のように設定する

  • 名前: web-server-test
  • Amazon マシンイメージ: Amazon Linux 2023
  • インスタンスタイプ: t2.micro または t3.micro
  • キーペア: 既存のものを選ぶ、または新規作成
  • ネットワーク設定:
    • 自動割り当てパブリックIP: 有効
    • セキュリティグループを作成
    • SSH(22): 自分のIPから許可
    • HTTP(80): 0.0.0.0/0 から許可
  1. インスタンスを起動 をクリック

なぜやるか

EC2は仮想サーバーです。ここでLinuxサーバー本体を用意します。
また、パブリックIPがないとインターネット側からアクセスできません。EC2の Public IPv4 はインスタンス詳細の Networking タブでも確認できます。

詰まりやすいポイント

  • HTTP(80) を開け忘れる
    これがかなり多いです。SSHで入れるのにブラウザで見えないときは、まずここを疑います。
  • 自動割り当てパブリックIPを無効のまま作る
    この場合、外部ブラウザから見えません。
  • デフォルトセキュリティグループのまま進める
    デフォルト設定ではSSHが開いていないことがあります。AWS公式でも、デフォルトセキュリティグループは SSH を受け付けないと案内されています。

ステップ2:インスタンスが起動したことを確認する

やること

インスタンス一覧から、状態が起動済みになっているか確認します。

操作手順

  1. EC2の インスタンス 一覧を開く
  2. 作成したインスタンスを選択する
  3. インスタンスの状態running になっていることを確認する
  4. ステータスチェック2/2 チェックに合格 になるまで待つ
  5. パブリック IPv4 アドレス を控える

なぜやるか

起動直後はまだOS側の準備が終わっていないことがあります。
この状態で接続しようとすると、SSH接続やEC2 Instance Connectがうまくいかないことがあります。

詰まりやすいポイント

  • インスタンス作成直後にすぐ接続しようとして失敗する
  • Public IPv4 を見ずに Private IP へアクセスしようとする

ステップ3:EC2へ接続する

やること

EC2 Instance Connect か SSH でサーバーへログインします。AWS公式では、EC2 Instance Connect を使った接続方法も案内されています。

方法A:EC2 Instance Connect を使う

  1. インスタンス一覧から対象インスタンスを選択
  2. 接続 をクリック
  3. EC2 Instance Connect タブを開く
  4. 接続 をクリック

方法B:ローカルPCからSSH接続する

キーペアを使って接続します。

chmod 400 your-key.pem
ssh -i your-key.pem ec2-user@<パブリックIPv4アドレス>

なぜやるか

Webサーバーソフトのインストールや起動は、サーバーへログインして実行する必要があるためです。

詰まりやすいポイント

  • .pem ファイルの権限が緩すぎてSSH接続できない
  • ユーザー名を間違える
    Amazon Linux 2023 なら通常は ec2-user を使います
  • SSH(22) を自分のIPから許可していない
  • インスタンスにPublic IPv4がない

体験ベース補足

最初は「インスタンス作成までできたから半分終わり」と思いがちですが、
実際にはここで接続できないと何も始まらないです。
私も最初はサーバーの設定ミスだと思っていましたが、原因がセキュリティグループだった、という流れになりやすいです。


ステップ4:パッケージを更新する

やること

ログイン後、パッケージ情報を更新します。Amazon Linux 2023 の標準パッケージ管理ツールは dnf です。

実行コマンド

sudo dnf update -y

なぜやるか

古いパッケージ情報のままだと、インストール時に不整合が出ることがあります。
先に更新しておくと、後の作業で詰まりにくくなります。

詰まりやすいポイント

  • 古い記事を見て yum を打つ
    Amazon Linux 2 では yum が一般的でしたが、Amazon Linux 2023 では dnf が標準です。

ステップ5:Nginxをインストールする

やること

WebサーバーソフトとしてNginxを入れます。Amazon Linux 2023 のパッケージ一覧には NGINX 系パッケージが含まれています。

実行コマンド

sudo dnf install -y nginx

インストール確認

nginx -v

なぜやるか

EC2はただのLinuxサーバーなので、そのままではHTMLを配信できません。
Nginxを入れることで、ブラウザからアクセスされたときにWebページを返せるようになります。

詰まりやすいポイント

  • Nginxを入れただけで公開されたと思ってしまう
    実際にはインストール後に起動が必要です
  • パッケージの更新前に進めて依存関係で戸惑う

ステップ6:Nginxを起動して自動起動を設定する

やること

Nginxを起動し、EC2再起動後も自動で立ち上がるようにします。

実行コマンド

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

status の確認ポイント

active (running) と表示されていればOKです。

なぜやるか

インストールしただけではNginxは動いていません。
start で起動し、enable で再起動後も有効にします。

詰まりやすいポイント

  • systemctl status nginx を見ずに進める
  • エラーが出ているのにブラウザ確認へ進んでしまう

体験ベース補足

ここは地味ですが重要です。
「インストールしたのに見えない」と感じたとき、実際はサービスが起動していないだけというのはかなりありがちです。


ステップ7:テストページを置く

やること

ちゃんと自分のサーバーが応答しているか分かるように、簡単なHTMLを置きます。

実行コマンド

echo '<h1>EC2 Web Server OK</h1><p>Nginx is running.</p>' | sudo tee /usr/share/nginx/html/index.html

なぜやるか

初期ページのままだと、設定が反映されたのか判断しにくいことがあります。
自分で書いた文字が見えれば、今アクセスしているのが自分のEC2 だと分かります。

詰まりやすいポイント

  • ファイルの置き場所を間違える
  • 別ディレクトリに保存してしまい、表示が変わらない

ステップ8:ブラウザで確認する

やること

EC2のPublic IPv4へブラウザでアクセスします。

アクセス例

http://<パブリックIPv4アドレス>/

なぜやるか

ここで外部から実際にページが見えれば、Webサーバーの構築は成功です。

詰まりやすいポイント

  • https:// で開いてしまう
    今回はSSL設定をしていないので http:// で確認します
  • セキュリティグループでHTTP(80)を開けていない
  • 間違ったIPへアクセスしている
  • Nginxが起動していない

実行結果(成功状態)

以下の状態になっていれば成功です。

  • EC2に接続できる
  • sudo systemctl status nginxactive (running) と表示される
  • ブラウザで http://パブリックIPv4/ を開くと、作成したHTMLが表示される

表示確認に使うIPは、EC2コンソールのインスタンス詳細から確認できます。Public IPv4 はインスタンス停止・再起動の扱いによって変わることがあるため、接続先を毎回確認するのが安全です。


よくあるエラーと対処法

1. ブラウザで開いても表示されない

原因

  • セキュリティグループでHTTP(80)が許可されていない
  • Nginxが起動していない
  • Public IPv4 ではなく Private IP を見ている

対処

以下を順番に確認します。

sudo systemctl status nginx

EC2コンソールでも確認します。

  • セキュリティグループのインバウンドルールに HTTP / TCP / 80 / 0.0.0.0/0
  • アクセス先が Public IPv4
  • URLが http:// になっている

EC2のセキュリティグループはインスタンスへの通信を制御する仕組みなので、HTTPルールがないとWebアクセスは通りません。

2. SSH接続できない

原因

  • SSH(22)が自分のIPから許可されていない
  • キーペアを間違えた
  • .pem の権限が適切でない
  • インスタンスがまだ起動準備中

対処

  • セキュリティグループに SSH / TCP / 22 / 自分のIP
  • キーペア名がインスタンス作成時と一致しているか確認
  • 以下を実行
chmod 400 your-key.pem
  • EC2のステータスチェック完了後に再接続

AWS公式のトラブルシューティングでも、SSH接続不可のときはまずセキュリティグループのSSH許可を確認するよう案内されています。

3. yum コマンドの記事を見ていて混乱する

原因

Amazon Linux 2 と Amazon Linux 2023 の情報が混ざっている

対処

Amazon Linux 2023 では dnf を使います。

sudo dnf update -y
sudo dnf install -y nginx

Amazon Linux 2023 の標準パッケージ管理ツールは dnf です。

4. EC2 Instance Connect が使えない

原因

  • 接続条件が満たせていない
  • ネットワークやインスタンス側設定が不足している

対処

まずはEC2コンソールの 接続 から EC2 Instance Connect を試し、難しい場合は通常のSSH接続へ切り替えます。AWS公式ではEC2 Instance Connectの接続方法と前提条件が整理されています。


まとめ

EC2でWebサーバーを立てる作業は、流れだけ見ると単純です。

  1. インスタンスを作る
  2. 接続する
  3. Nginxを入れる
  4. 起動する
  5. ブラウザで確認する

ただ、実際に詰まりやすいのは次の3点です。

  • セキュリティグループでHTTP/SSHを開けること
  • Public IPv4 を使ってアクセスすること
  • Nginxをインストールしたあとに起動すること

特に初心者のうちは、
「EC2を作った = すぐ公開される」ではない
というところで引っかかりやすいです。

私も最初はサーバーソフトの問題だと思って遠回りしましたが、実際には通信許可の設定と確認不足が原因になりやすいと分かりました。
このあたりを順番に確認すれば、EC2でのWebサーバー構築は十分再現できます。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP