Himawari Project Logo

Himawari Project

シェアはてなブックマーク
AWS入門講座7 【Web化】EC2にWebサーバーソフトを インストールしよう

AWS入門講座7 【Web化】EC2にWebサーバーソフトを インストールしよう

#AWS

投稿日 2026/03/04

前回の振り返り

VPC(Virtual Private Cloud)上に、サブネットを作成しました。

そして、EC2(Elastic Compute Cloud)インスタンスをパブリックサブネットに紐づけて起動しました。

EC2インスタンスのセキュリティグループにはインターネットからSSH(25番ポート)とHTTP(80番ポート)の受信を許可しました。

SSH(SecureSHell)は、外部からコンピュータを操作するための仕組みです。インターネット全体からのアクセスを許可していますが、キーペアでの認証が必須なため秘密鍵を持っている人しかログインできません。

逆を言うと、秘密鍵が流失してしまうとEC2インスタンスを簡単に乗っ取れてしまうので、慎重に保管してください。

HTTP(HyperTextTransferProtocol)は、普段我々がブラウザでWebサイトを見るときに使われるプロトコル(=通信の作法)です。80番=Webサイトと覚えておきましょう。

今回のゴール

Webサーバーソフトをインストールし、EC2インスタンスをWebサーバーにする。

Webサーバーの仕組み

図解がわかりやすかったので、載せておきます。 AWS Lecture 7.jpg 一般的なWebサイトの例です。

まず、クライアント(我々)がサーバーのアドレスを指定して「ページを見せてください」と言うリクエスト(=要求)を送ります。 正常な場合だと、サーバー側からページが返ってきます。

クライアントのリクエストがサーバーに到達したけれど、何らかの理由でエラーとなった場合は、エラーがクライアントに返ってきます。

クライアントのリクエストがそもそもサーバーに到達しない場合は、何も返ってきません。

ハンズオン

AWS Lecture 7(1).jpg AWS Lecture 7(2).jpg

EC2ログイン方法

ssh –i “キーペアのパス” ec2-user@パブリックIP

Permission denied等のエラーが出る場合

chmod 400 ~/ssh/my-key.pem

chmodコマンドで適切な権限を与え、再度sshコマンドを実行します。

AWS Lecture 7(3).jpg

# 管理者権限にスイッチ
sudo su -

# ソフトウェアリストの更新
dnf update –y

# Apacheのインストール
dnf install httpd -y

sudoは、Super User DOと言われています。権限昇格のためのコマンドです。 権限昇格と言ってもピンとこないかもしれません。システムに関する設定やアプリケーションのインストールなんかに必要です。 suは、Substitute Userと言われています。別のユーザーに切り替えるコマンドです。 すなわち、sudo su -とは管理者としてログインし直すことを言います。

いちいち、sudo dnf update -yとしても問題ありません。

httpdというのがApache HTTP Serverのことです。Dはデーモンのことです。デーモンというのは、常時起動プログラムと言う意味です。悪魔ではありません。

AWS Lecture 7(4).jpg こちらは、そんなに説明がいらないと思います。

#Apacheを起動する
systemctl start httpd

#再起動しても自動で立ち上がるようにする
systemctl enable httpd

# ステータスの確認
systemctl status httpd

systemctlとはシステムコントロールコマンドのことです。 このコマンドで起動したhttpdは、サービスとして起動されます。

サービスとは、バックグラウンドで常時動き続けるプログラムのことを言います。 AWS Lecture 7.jpg

#HTMLファイルを作成する
echo "<html> <head></head><body><h1>Hello from AWS EC2!</h1></body></html>" > /var/www/html/index.html

"・・・</html>"の内容を/var/www/html/index.htmlというファイルに書き込んでいます。 echoは指定した文字列や変数の内容を表示するコマンドです。">"の記号を使って指定した文字列をファイル出力することができます。 Apacheは/var/www/html/の内容を表示するので、ここに書き込んだ内容が表示されます。(index.html以外だと、/ファイル名となる。index.htmlだと/で表示される)

AWS Lecture 7(6).jpg

スクリーンショット 2026-03-04 19.56.31.jpg

AWS Lecture 7(7).jpg

最後に

お疲れ様でした。 コマンドがかなり多かったと思いますが、この通り入力すればとりあえず動かすことができます。

コマンドを暗記する必要はありません。何度もデプロイやサーバーを建てる度に慣れていきます。

しかし、資格試験は例外です。これらの暗記を求める資格試験も存在します。

ただ、個人的に思うのは、資格試験で暗記暗記で四苦八苦しながら覚えるよりも、サーバーを建てたり管理をしたりする中で自然に覚えてから、足りない部分を資格試験で覚えるようにした方が楽だと思います。

ITの世界では基本的に資格必須の業務はありませんから、実地であるていど覚えてから資格を取るの目指してみてはいかがでしょうか。

動画講義⇩

動画講義 https://youtu.be/ORbdgd4ndOM?si=vCY-Mmbbxw6LY7Hz