CloudFrontで画像キャッシュを試みた時の話です。
WordPressサーバーをCloudFrontを利用して画像をキャッシュを行い、高速配信を実現しようとしました。
CloudFrontの設定が終わり、curl -I hoge.com/hoge.png
のようにアクセスして、キャッシュが返ってくることが確認出来たので、ログインして下書き動作に影響がないかを調べようとしました。
ログインしたところ、やけにレスポンスが遅い
一応ログイン出来たので、投稿テストを行いました。
投稿テストも成功したので、一件落着と思ったところ、、、
502エラーになってしまったのです。
どのような構成か
EC2とCloudFrontの構成です。
CloudFrontのキャッシュは基本(デフォルトで)しない設定にしています。
画像のみ(*.png
)キャッシュを有効にしていました
エラー画面
スクリーンショットは取れなかった(心の余裕がなかった)のですが、CloudFrontの502エラーではなく、Nginxの画面でのエラーでした。
原因
原因は不明です。
今回の場合はDBの処理が重すぎる状態になっていました。
考えられるものとしては以下です
- CloudFrontでキャッシュ設定を変更した事による影響
- タイミング悪くアタックがきた
- プラグインが暴走してしまった
- ログインする時などのPHPが過剰に動いたことによるDBの処理増
対処法
復旧した時の対処法は以下の通りです
- mysql停止
- php停止
- nginx停止 ここで少し放置(現在のリクエストたちをタイムアウトさせる)
- mysql起動
- php起動 ここで一旦止めて安定を待つ
- nginx起動
おわりに
本番作業などを行うときにはバックアップを取ることはもちろん、手順などをしっかり書き残すことが大切だなと実感しました。
どのタイミングで異変が起きたのかをわかっているだけで、復旧の可能性も上がります