CloudFrontを設定していたらWordPressが繋がらなくなった話

CloudFrontで画像キャッシュを試みた時の話です。

WordPressサーバーをCloudFrontを利用して画像をキャッシュを行い、高速配信を実現しようとしました。

CloudFrontの設定が終わり、curl -I hoge.com/hoge.pngのようにアクセスして、キャッシュが返ってくることが確認出来たので、ログインして下書き動作に影響がないかを調べようとしました。

ログインしたところ、やけにレスポンスが遅い
一応ログイン出来たので、投稿テストを行いました。

投稿テストも成功したので、一件落着と思ったところ、、、

502エラーになってしまったのです。

どのような構成か

EC2とCloudFrontの構成です。
CloudFrontのキャッシュは基本(デフォルトで)しない設定にしています。
画像のみ(*.png)キャッシュを有効にしていました

エラー画面

スクリーンショットは取れなかった(心の余裕がなかった)のですが、CloudFrontの502エラーではなく、Nginxの画面でのエラーでした。

原因

原因は不明です。
今回の場合はDBの処理が重すぎる状態になっていました。

考えられるものとしては以下です

  • CloudFrontでキャッシュ設定を変更した事による影響
  • タイミング悪くアタックがきた
  • プラグインが暴走してしまった
  • ログインする時などのPHPが過剰に動いたことによるDBの処理増

対処法

復旧した時の対処法は以下の通りです

  1. mysql停止
  2. php停止
  3. nginx停止 ここで少し放置(現在のリクエストたちをタイムアウトさせる)
  4. mysql起動
  5. php起動 ここで一旦止めて安定を待つ
  6. nginx起動

おわりに

本番作業などを行うときにはバックアップを取ることはもちろん、手順などをしっかり書き残すことが大切だなと実感しました。
どのタイミングで異変が起きたのかをわかっているだけで、復旧の可能性も上がります