AzureのWordPressのMySQLのコスト見直し
このブログは、以前の記事でも書いたように、Azure App ServiceでWordPressを構築しています。

構築してから2ヶ月、構築時の想定では、3,500円程度と思っていた月額の費用が6,000円を超えそうになっていたので、原因を調査し、改善しました。
費用の状況
想定の費用
2023/8時点では、App ServiceのB1で1,957円/月、Azure DatabaseのB1sで1340円/月とデータが従量課金で、3,500円/月くらいしそうです。
実際の費用
2023/9では、前半は1日143円前後で想定の費用でしたが、9/13を境に、200円/日を超えて来ました。そして月額では5,495円になっていました。
そして、10月の前半の見込みでは、6,000円を超える見込みになっていました。
原因の調査
コスト分析で、リソース別の内訳を見ていくと、MySQLの額が想定を超えていました。
さらに見ると、Paid IO LRS IO Rate Operationsという項目の費用が高くなっていました。

実際に、MySQLの「コンピューティングとストレージ」の内容を確認にしてみました。
すると、IOPSの項目が「自動スケール」になっていました。

自動スケールのため、自動的にスケールしてパフォーマンスをあげるようになり、無償枠を超えた分、費用がかかっていたようです。
対策
IOPSの自動スケールの廃止
IOPSの設定を「事前プロビジョニング済みのIOPS」に変更しました。
また、設定値を最小値の360に設定し、追加コストがかからないようにしました。

変更による効果
日別のコストを見ると、想定通りの結果になりました。
毎日、140円強していたMySQL(水色)が、設定した10/10を境に減少し、24時間設定が反映された10/11では、59.94円と半分以下に減少しました。
これにより、130円/日前後になったため、3,900円/月程度になりました。(最近のさらなる円安の影響で円では高くなりそう)

まとめ
コストについては、アラート設定や早期に気づいたり、少なくとも月額の請求金額はウォッチして対策をする重要性を身に染みて感じました。
また、「MySQLのStandard_B1s」は、1 vCore, 1GiBメモリとその点ばかり気にしていましたが、IOのところで、自動スケールになるところがあるのに知らなかったので、勉強になりました。