Open30

3 度目の WordPress 構築 on AWS

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

やることリスト

  • パスワード生成 → 完了
  • メールアドレスの作成 → 完了
  • アカウント作成 → 済
  • EC2 起動 → 完了
  • Elastic IP アドレスの取得・割り当て → 完了
  • SSH 設定 → 完了
  • HTTP サーバーインストール・設定(Override & Document Root) → 完了
  • MariaDB サーバーインストール・DB 作成 → 完了
  • PHP インストール・設定(タイムゾーンやアップロードサイズなど) → 完了
  • WordPress インストール → 完了
  • バックアップ用 S3 バケットの作成・ライフサイクル設定 → 完了
  • ロールの作成 → 完了
  • バックアップスクリプトの作成 → 完了
  • CRON インストール・設定 → 完了
  • 自動再起動設定 → 完了
  • SNS トピック・サブスクリプション作成 → 完了
  • CloudWatch アラーム設定 → 完了
  • FTP サーバーインストール・設定 → 完了
  • phpMyAdmin インストール・Basic 認証 → 完了
  • WordPress 無限ループ対策 → 完了
  • スワップ領域の作成 → 完了
  • PHP FPM プロセス数調整 → 完了
  • MariaDB の OOM スコア調整 → 完了
  • プロセス監視 → 完了
  • HTTPS 設定(ACM を使うケースと使わないケースがある)
薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

設定開始

パスワード生成とメールアドレス作成が完了、アカウントは作成済みだった。

次は EC2 起動だが、インスタンスタイプはどれを選べば良いのだっけ?

確認したところ t3.small だった。

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

DocumentRoot 変更

WordPress をインストールしたら DocumentRoot を /var/www/html/wordpress に変更する。

変更点は 2 箇所ある。

コマンド
sudo vi /etc/httpd/conf/httpd.conf
sudo systemctl restart httpd
薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

プロセス監視

https://zenn.dev/link/comments/b3040589a88646

前回は好奇心のせいで失敗したので手順に従おう。

Quick Setup が Host Management である点は画像が必要かも。

またインスタンスがたくさんある場合は手動で指定する必要がある。

確認コマンドは下記が良さそうだ。

コマンド
sudo systemctl status amazon-ssm-agent
sudo systemctl is-enabled amazon-ssm-agent

出力オプションで「S3 バケットへの書き込みを有効化する」のチェックを外しても良さそう。

Restart mariadbd と Restart httpd で 2 つのアラームを作成している。

動作確認するには mariadbd と httpd を止めてみる。

コマンド
sudo systemctl stop httpd
sudo systemctl stop mariadb

アクションとしては EC2 再起動、条件は 1 分間の平均値が 0 以下としている。

そしてインスタンスタイプを更新したらアラームも変更する必要があるようだ。

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

ここまでの作業時間

1.25 時間追加で合計 2 時間になった。

証明書の設定があると +0.5 時間くらいになるだろうか。

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

ALB 構築

ACM で発行済みの証明書を使って ALB を構築する。

https://zenn.dev/link/comments/081714a983bab4

基本設定通りでできたがターゲットグループでステータスチェックを 200,301 と指定する必要があった。

WordPress アドレスとサイトアドレスを本番用に変更する、こうするとアクセスできなくなって焦るがしょうがない。

次は ALB の IP アドレスを調べて hosts を設定する。

コマンド
nslookup wordpress-alb-xxxx.ap-northeast-1.elb.amazonaws.com

Mac の場合は /private/etc/hosts を編集すれば良いようだ。

また、ロードバランサーの HTTP:80 のルールでアクションのルーティングを「URL にリダイレクト」URL にリダイレクトを「URI 部分」プロトコルを「HTTPS」ポートを「443」に指定しないと HTTP → HTTPS に転送されなかった。

https://repost.aws/ja/knowledge-center/elb-redirect-http-to-https-using-alb

作業時間はなんだかんだで 45 分くらいかかったか。

後から hosts の IP アドレスと alb のホスト名を連絡しておこう。

なんか前は IP アドレスで HTTP アクセスしたらホスト名 + HTTPS に転送された気がしたが、なぜ今回は転送されないんだろう。