【再構築版】EC2インスタンス構築およびApache導入記録

DS243100 岡田修門

本ドキュメントは、Amazon Web Services (AWS) の EC2 インスタンス上に Apache HTTP Server を導入し、Webサーバーとして完全に自律駆動させるまでの全インフラ構築プロセスを客観的に記録したものを参照しながら、別のインスタンスを構築した記録である。

最初に構築したサーバーはこちら

1. EC2 インスタンス起動設定

起動時のインスタンス構成パラメータは以下の通りである。

1.1. 基本情報・タグ

1.2. アプリケーションおよび OS イメージ (AMI)

1.3. インスタンス仕様・ストレージ

1.4. ネットワーク・セキュリティ設定

1.5. Elastic IP設定

HTTPS化の為にドメインとIPアドレスの固定化を行う。通常パブリック IP は再起動の度に再割り当てとなるが、Elastic IPを使用することで、サーバー再起動時もIPが変わらず、DNS設定やSSL/TLS証明書の自動更新エラーを防ぎます。

1.6. DNS設定

AWS Route 53 を用いて、以下を設定する。
ドメインは既存のサブドメインを流用。

2. サーバーへの接続方法

macのターミナルからSSHクライアントとダウンロードした秘密鍵を用いて、以下のコマンドでインスタンスへ接続を行う。

Bash

ssh -i "Downloads/AirChecker for Shonan Beach FM-2.pem" ec2-user@demo20260719.develop.azm.ne.jp

3. 初期設定および Apache HTTP Server のインストール手順

3.1. システムのアップデート、タイムゾーン指定

パッケージメタデータの更新確認およびシステム全体のパッケージを最新バージョンに引き上げる。
時間帯を調整する。

Bash

# パッケージメタデータの更新とキャッシュチェック
sudo dnf check-update

# システム全体のパッケージを最新バージョンに引き上げ
sudo dnf update -y

# OSのタイムゾーンをアジア/東京に設定
sudo timedatectl set-timezone Asia/Tokyo

# 時計が日本時間(現在11:41など)になったか確認
date

3.2. Apache HTTP Server のインストール

Amazon Linux 2023 の公式リポジトリより、コアパッケージである httpd(Apache)のインストールを実施する。

Bash

# Apache本体および関連依存パッケージのインストール
sudo dnf install -y httpd

3.3. サーバープロセスの起動と状態検証

インストール直後の Apache サービスは停止状態(Inactive)であるため、明示的にプロセスを起動し、その稼働ステータスを客観的に検証する。
Bash

# Apache サービス(httpd)の起動
sudo systemctl start httpd

# 稼働状態(ステータス)の確認
sudo systemctl status httpd

ステータス出力(検証ポイント)

コマンド執行後、出力ログの Active: 項目が以下のように active (running) と緑色で表示され、Webサーバーとして正常にプロセスがメモリ上に展開されたことを示す。
Plaintext

● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
     Active: active (running) since Sat 2026-07-11 16:50:00 JST; 1min ago

3.4. OS起動時の自動有効化設定(永続化)

EC2インスタンスの停止・再起動や予期せぬ瞬断が発生した場合でも、Webサーバーが人間の手を介さずに自動で復旧・常駐するように、OSのシステム管理(systemd)へ自動起動設定を登録する。
Bash

# OS起動時の自動有効化を永続化登録
sudo systemctl enable httpd

3.5. 疎通確認

外部ブラウザからアクセスされた際に、コンテンツが正常に読み込めるよう、既定のWeb公開ルートディレクトリの権限を確認し、本ドキュメントを index.html として設置する。
URL
http://demo20260719.develop.azm.ne.jp/

3.6. https通信の実装

Let’s Encrypt が公式に提供している自動化ツール Certbot を利用することで、証明書の取得から Apache の設定更新、さらには有効期限(90日間)の自動更新の設定までを実装する。

3.6.1. Apache のポート 80 のバーチャルホスト設定

/etc/httpd/conf.d/ 配下に新しく設定ファイル(例: airchecker.conf)を作成します。

Bash

sudo vi /etc/httpd/conf.d/airchecker.conf

ファイルの中に以下の内容を記述して保存します。

Plaintext

<VirtualHost *:80>
    ServerName demo20260712.develop.azm.ne.jp
    DocumentRoot /var/www/html

    <Directory "/var/www/html">
        AllowOverride None
        Require all granted
        DirectoryIndex index.html
    </Directory>
</VirtualHost>

3.6.2: Apache の設定チェックと再起動

構文チェックを行い、Apache を再起動して設定を反映させます。

Bash

# 構文チェック(Syntax OK と出れば正常)
sudo httpd -t

# Apache の再起動
sudo systemctl restart httpd

3.6.3: 再度 Certbot を実行する

下準備が整ったので、Let’s Encrypt のコマンドを実行します。

Bash

sudo dnf install python3-certbot-apache -y
sudo certbot --apache

3.6.4: Apache を再起動と確認

Apache を再起動して確認する。

Bash

# Apache の再起動
sudo systemctl restart httpd

以下のURLを開く。
URL
https://demo20260719.develop.azm.ne.jp/