1. 概要
AWSのEC2(Amazon Linux)およびRDS(MySQL)を用いてWordPressのWebシステム環境を構築し、Elastic IP、Route 53を用いた独自ドメイン設定、およびCertbot(Let’s Encrypt)による全面HTTPS化(SSL化)までの一連のインフラ構築作業が完了いたしました。
- 対象ドメイン:
awsbookexample.click - 構成インフラ: AWS EC2 (Apache, PHP, Certbot) + RDS (MySQL) + Route 53
- セキュリティ仕様: HTTP(80) ➔ HTTPS(443) 自動リダイレクト、SSL証明書自動更新有効化
2. 実施工程(1〜5)
1. AWSインフラ準備 & LAMP環境構築
- EC2(Amazon Linux)インスタンスの起動およびWebサーバー(Apache)、PHP、MySQLクライアントパッケージの導入。
systemctlによるApacheの起動および自動起動設定の完了。- EC2ローカル環境にてPHP動作およびWebサーバー応答の正常確認。
2. WordPressの導入 & RDSデータベース移行
- 最新版WordPressの取得・展開および所有権/パーミッションの適切な設定。
- データベースの可用性・保守性を確保するため、Amazon RDS(MySQL)インスタンスを作成。
- EC2からRDSへのネットワーク疎通の確立(セキュリティグループの調整)と、ローカルDBからRDSへのデータ移行作業。
wp-config.phpにRDSエンドポイントおよびDB認証情報を設定し、初期セットアップを完了。
3. 固定IP設定 & 独自ドメイン(Route 53)紐付け
- EC2インスタンスの再起動によるIPアドレス変動を防ぐため、Elastic IPを取得してEC2へバインド。
- Route 53にてパブリックホストゾーン(
awsbookexample.click)を作成し、Elastic IPを指定した Aレコード を追加。 - DNSの浸透確認を行い、ドメイン名でのWebアクセスを疎通。
4. Apache VirtualHost & SSL化準備
- AWSセキュリティグループのインバウンドルールに
HTTPS (443)を追加許可。 - Apache用のSSLモジュール(
mod_ssl)を導入し、SSL通信に必要な環境を整備。 - Apacheの仮想ホスト設定ファイル(
/etc/httpd/conf.d/awsbookexample.conf)を新規作成し、ServerNameとして対象ドメインを明記。
5. CertbotによるSSL証明書取得 & HTTPS化完了
- CertbotおよびApache用プラグインを用いて Let’s Encrypt よりSSL証明書を発行・適用。
- HTTPアクセスを自動でHTTPSへと昇格させるリダイレクトルール(Redirect)を適用。
wp-config.php内のWP_HOMEおよびWP_SITEURLをhttps://へ書き換え。- ブラウザでの接続テストを実施し、正常な暗号化通信(🔒鍵マーク)とWebサイト全体の崩れがないことを確認。
3. 構築過程で発生した課題・詰まった点(トラブルシューティング)
構築の際、特に証明書発行(SSL化)のフェーズにおいていくつかの設定上の課題が発生しましたが、原因を特定し迅速に対処いたしました。
① Apache用SSLモジュール(mod_ssl)の未導入によるCertbotエラー
- 課題: Certbot実行時にApache設定の読み込み段階でエラーが発生。
- 原因: Amazon Linux環境において、標準状態ではApacheのSSL用モジュール(
mod_ssl)がインストールされておらず、証明書の適用準備が整っていなかったため。 - 対処:
sudo dnf install -y mod_sslにより追加パッケージを導入し、設定を再読み込みすることで解決。
② VirtualHost(ServerName)未定義による証明書発行の失敗
- 課題: Certbot実行時に
Unable to find a virtual host listening on port 80...というエラーが表示され、証明書が発行できなかった。 - 原因: Apache側でデフォルトのHTTP設定しか存在せず、CertbotがどのWebサイト(ドメイン)に対してSSL証明書を適用すべきか識別できなかったため。
- 対処:
/etc/httpd/conf.d/awsbookexample.confを作成し、<VirtualHost *:80>内にServerName awsbookexample.clickとDocumentRoot /var/www/htmlを明示的に記述・反映。これによりCertbotが正しくドメインを認知し発行に成功。
③ WHOIS情報に関する仕様確認
- 課題: 取得したドメインのIPアドレスに対してWHOIS照会を行った際、所有者情報が表示されず不整合を懸念。
- 原因: IPアドレスに対するWHOISはインフラ提供元(Amazon.com)の情報が返される点、およびRoute 53等のレジストラでは個人情報保護(Privacy Protection/GDPR対応)が標準適用されているため。
- 対処: 仕様であることを確認し、正規のドメイン所有確認はAWSコンソール(Route 53 登録済みドメイン)にて管理を行う運用といたしました。
4. 今回の構築における重要ポイント・成果
- 構成の分離によるスケーラビリティと可用性の確保
- Webサーバー(EC2)とデータベース(RDS)を切り離した構成としたことで、今後のトラフィック増加時のスケーリングやDBのバックアップ・リカバリが容易な構成となっています。
- 完全なセキュリティ(HTTPS化)対応
- トラフィックを全面的に暗号化(SSL化)し、HTTPアクセスを自動でHTTPSへ引き込むリダイレクト設定を行いました。また、Certbotのスケジューラーにより、今後はSSL証明書の更新もバックグラウンドで自動的に行われます。
- 適切なDNS・インフラ設定
- Elastic IPによる固定化とRoute 53によるDNS管理を行うことで、インフラ変更に強く安定したドメイン運用基盤を確立しました。