0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

aws Lightsail WordPressインスタンス と Route53 で Webページ を配信する

Last updated at Posted at 2022-02-24

最終形

AWS Networking.png

Lightsail WordPressインスタンスを生成する

こちらのチュートリアルに従ってインスタンスをつくっていきます。ステップ5まで実施し、ステップ6以降は別の方式で進めます。

独自ドメインの使用と https 通信の実現

これまでの作業で、WordPressインスタンスにアタッチした静的 IP アドレスを用いて Webページを pull できるようになりました。

この状態では以下の課題が残ってしまっています。

  • 独自ドメインの利用 (Must)
  • https 通信を行う (Must)
    • TLS証明書を取得する (Must)
    • TLS証明書を有効期限内に自動更新する (できたら)
  • CDN を使う (できたら)

Must要件のみ解決するには、WordPressプラグイン (Really Simple SSL) + Certbot + Route53 の組み合わせで完全に無料で実現できます。実際にこの組み合わせで構築し、半年間運用しましたが全く問題なく運用することができました。

しかしながら、TLS証明書は利用開始後3か月経過するごとに証明書の有効期限を迎えるので証明書の更新が必要となり、更新を怠ると http通信にダウングレードされてしまいます。Certbot を用いた方式は aws の責任共有モデルで言うところのユーザ責任での運用となり、自動更新の仕組みを作ったとしても、更新の前後では確認作業が必須になってしまいそうです。

証明書の更新を自動で安全に行うには、aws の CertificateManager を使用するのがよさそうです。CertificateManager を使用するには、aws の ELB または CloudFront を使用しなければなりません。CloudFront の利用を検討していたところ、Lightsail には ディストリビューション というサービスがあって、CloudFront と同じことをやってくれそうです。しかも WordPress に最適化されたキャッシュ機能が選択できるので、これを採用してみようと思います。

Lightsail ディストリビューションを生成する

こちらの一次情報に従ってディストリビューションを作成します。

TLS証明書を作成する

こちらの一次情報に従ってTLS証明書を作成します。

ディストリビューションでカスタムドメインを有効にする

こちらの一次情報に従って設定します。

DNS で ドメインまたはサブドメインを ディストリビューション にポイントする

Aレコードのエイリアスを使用しました。

ディストリビューションと連携が可能になるように WordPressインスタンス を設定する

ここまでの作業でカスタムドメインを使用して Webページが pull できるようになっています。しかし WordPress のテーマによっては画面レイアウトが崩れてしまっていて、カスタムドメインを使用して WordPress の管理画面にログインすると、ここの画面のレイアウトもおかしくなっています。

こちらの一次情報に従って設定を行い、サービスを再起動するとレイアウトは正常に戻ります。

管理メールを送信する

今の状態では管理メールを送信することができません。そのため管理メールを用いたパスワードリセットも行えないためパスワードを忘れるととても困ります。

管理メールを送信できるようにするには、以下の設定が必要です。

  • Amazon SNS SMTP認証情報を取得する
  • WP Mail SMTP Lite (プラグイン) をインストール
  • WP Mail SMTP Lite に Amazon SNS SMTP認証情報を設定する
  • 必要に応じて Amazon SNS Verified identities を設定する

一次情報は以下にありました。

おまけ

WordPress のバックアップ

All-in-One WP Migration というプラグインがおすすめです。

2段階認証

Google Authenticator がおすすめです。バックアップコードは生成できないので、2段階認証を中断するには wp-content/plugins/google-authenticator フォルダをリネームするなどして対応できます。

ユーザ名、パスワードがわからなくなったら

WordPress のログイン画面では、パスワードがわからなくなったらメールでリセットする仕組みになっています。最終手段として MySQLデータベース上のパスワードを更新する手順を持っておくと安心だと思います。

こちらに一次情報がありますが、ちょっと理解するのが難しい内容でしたので、以下に手順を残しておきます。

  • MySQL DB名、ユーザ名、パスワード取得
    wp-config.php から取得する

  • MySQL DB接続

mysql -u (ユーザ名) -p
  • DB一覧取得
show databases;
  • ユーザDB切替
use (DB名);
  • table一覧取得
show tables;
  • ユーザ情報取得 (***_ は wp-config.php で設定されているプレフィクスです)
select * from ***_users;
  • パスワード変更
update ***_users set user_pass = MD5('NewPasswd') where ID = 'hoge';

成果物

unremoted.com

組織

同上

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?