EC2上のdockerリソース枯渇問題を対策する【AWS】【wordpress】

・wordpressのメモリを上げたい
・dockerで割り振られているメモリを確認したい
・EC2インスタンスのタイプ変更
調査1:コンテナ毎のリソース確認
サーバーがダウンしてしまったので、障害発生直前の情報しか取れていませんが、リソース使用率は下記の通りです。
docker stats

ちなみにdockerはデフォルト設定の場合リソースの利用に関して制限がありませんので、ホストカーネルのスケジューラーが割り振るリソース分だけ利用できます。
おそらく割り振られたリソース全て使用しているように見えるので、今度はサーバーの方を確認しましょう。
調査2:EC2インスタンスのモニタリング確認
EC2のダッシュボードに移動し、EC2インスタンスのモニタリングを見てみます。

CPU使用率が100%以上使用して、サーバーダウンしていますね…。
インスタンスタイプがT2の場合、CPU使用率にベースラインというものが設定されており、ベースライン以下の使用率の場合、未使用のCPUリソースがCPUクレジットという形で蓄積されます。
逆にベースライン以上のCPU使用率以上のCPUを使用する場合はCPUクレジット消費してCPU使用率を100%まで増やすことができます。
※1CPUクレジット消費の計算方法は下記のリンクを参考にしてみてください。
ちなみにEC2インスタンスベースライン使用率は以下のとおりです。

ただ、今回の場合CPU使用率が100%以上使い切っているように見えるので、バーストクレジット云々ではなく、リソースを増やす対策、またはCPU使用率を上げている原因特定が必要そうです。
今回はdocker logsから原因探ったのですが、これという原因が見つからなかったのでインスタンスタイプを変更してCPUコア数を増やそうと思います。
※元々1つのサーバーにweb/ap、DB、phpMyAdminコンテナが同居している状態でしたので、この気にインスタンスタイプを変えてしまいます。
T2→T3へインスタンスタイプの変更
インスタンスタイプの変更は下記の記事を参考にしてみてください。
wordpressメモリ拡張
次にwordpressのメモリを拡張していきます。
まず、メモリの割り当てですが、今回の上限である「924.9MiB」まで拡張します。このメモリ拡張はwordpress側のファイルを修正する必要があります。
サーバーにSSH接続しhtml配下のwp-config.phpのファイルに下記のコードを追加してください。
/** PHP memori */
define('WP_MEMORY_LIMIT', '924');
上記の対応でひとまず、サーバーダウンはしなくなりました。
誰かの参考になれば幸いです。