AWSによるWordPress環境構築

仮想ネットワーク全体像 AWS
仮想ネットワーク全体像

概要

AWS上でWordPressブログをホストし,HTTPS通信を行う環境を構築する


目次

  • 仮想NW&サーバ構築
    • 全体像
  • WebサーバにSSL証明書を導入
    • ドメイン取得
    • SSL証明書の取得・導入(Let’s Encryptの利用)
  • WordPressのSSL対応

仮想NW&サーバ構築

WordPressブログをホストするにはWebサーバとDBサーバが必要で,Webサーバはインターネットアクセスできる必要があります.

AWS上では下記の要素で環境を構築できます.

  • EC2インスタンス(Webサーバ用)
    • Apache(フリーのWebサーバソフト)をインストール
    • パブリック&プライベートIPアドレスを設定
  • EC2インスタンス(DBサーバ用)
    • MariaDBをインストール
    • プライベートIPアドレスを設定
  • インターネットゲートウェイ
    • Webサーバ用インスタンスの通信用

構成においては下記書籍を参考にしました.大まかに分けて①AWS ②ネットワーク ③サーバの3つの知識について平易に解説されていて,初学者にもわかりやすい内容になっています.

私が手に取ったのは改訂3版で,AWSのインターフェイスに変更が加わっていたため,ところどころ行間を埋める必要がありました.新版が発売されているようなのでそちらをお勧めいたします.

全体像

結果として,下記のようなネットワーク構成になります.

仮想ネットワーク全体像
仮想ネットワーク全体像

WebサーバにSSL証明書を導入

前章の書籍を一通りさらうと,自分のWordPressのサイトにアクセスできます.
Webサーバ用のEC2インスタンスのパブリックIPアドレスにブラウザアクセスすればOKです.

ただし,WebサーバにSSL証明書を導入していないため,HTTPSでの通信ができません.Chromeであればアドレスバーに’保護されていない通信’と表示されます.

本章ではWebサーバにSSL証明書を導入し,HTTPS通信することを目標とします.

ドメインの取得

本章ではLet’s EncryptというSSL証明書発行サービスを利用するのですが,その際自分の所有するドメインが必要になります.

AWSにはRoute53というサービスがあり,ここで独自のドメインを購入できますので,今回はこちらを利用しました.

また,Route53では自分の所有するドメインと,仮想サーバの持つパブリックIPアドレスを対応させるゾーン情報を登録することができます.

取得したドメイン(厳密にはホスト名+ドメイン)をWebサーバのパブリックIPアドレスと対応させれば,ブラウザのアドレスバーにドメインを入力することで自分のWebページにアクセスすることが可能になります.

Route53ダッシュボードの’ドメインの登録’欄から申し込みが可能です.およそ$11.0ほどが最安値のようです.

SSL証明書の取得・導入(Let’s Encryptの利用)

本節ではSSL証明書の取得&導入を実施します.下記の記事が参考になります.

Let’s Encryptを利用してApache 2.4サーバをHTTPS化する(CentOS7向けの記事)
Amazon Linux 2 に Certbot を導入

前者の記事はCentOS7向けの記事で,今回のAWSの仮想サーバで用いているAmazon Linux 2では,証明書発行ツールのCertbotのインストールは別の手順を踏む必要があります.

Amazon Linux 2にCertbotをインストールする手順を解説したのが後者の記事なので,まずはこちらに沿ってWebサーバのEC2インスタンスにSSH接続して作業を進めます.

$ sudo certbot

を実行するとメールアドレスとドメインを要求されます.

また,このとき下記の留意点があります.

  • 仮想サーバのWebサーバ用ソフトが稼働しており,ポート80でListenしている.
    • $ sudo systemctl start httpd でApacheを起動しておきましょう
  • 取得したドメインとWebサーバのパブリックIPアドレスが対応づいている(名前解決できる状態である)
    • Route53の’ドメインの登録’でゾーン情報を登録しておきましょう

上記がうまくいくと/etc/httpd/conf.d/httpd.confRewriteRuleなどの記述が追加されます.これはWebサーバあてにHTTP通信した際にHTTPS通信にリダイレクトするための設定項目です.

ここまででCertbotの導入が終わり,/etc/letsencrypt/[ドメイン名]以下に証明書や秘密鍵が格納されています.の手順でいえば,’証明書の初回作成’まで完了している状態ですので,そのまま手順を進めましょう.

ただし,/etc/httpd/conf.d/rewrite.confの内容はすでに/etc/httpd/conf.d/httpd.confに設定されているので,とばしてO
Kと思われます.


WordPressのSSL対応

WordPressをHTTPS通信で閲覧・編集するには,サイトのSSL化が必要です.

SSL化には’Really Simple SSL’を利用しました.これによってサイトに埋め込まれているリンクなどをSSL化できます.

プラグインをインストールし,ガイダンスに沿って作業すればOKです.

最終的に下記がアドレスバーに表示され,HTTPS通信ができます.

コメント

タイトルとURLをコピーしました