定期的に実施すべきコスト最適化

2023.05.15

こんにちは、シマです。お金って大事ですよね。(挨拶)
オンプレからAWSへ移行した場合に運用で考慮から漏れがちになるものの1つとしてコストに関する内容が考えられます。
オンプレでは導入時にハードウェアを含んだ各種調達を行うため、コストの検討が最初の見積段階で終了するケースが多いかと思いますが、AWSでは一部を除き毎月利用した分の料金が発生します。
そのため、毎月発生しているするコストが想定通りだったか、またもっとコストを最適化する方法があるのかを定期的に確認、検討する必要があると考えます。

もちろんAWSアカウント構成や利用サービスによってやるべきことはことなりますが、今回は1つのAWSアカウントに対して簡単にできる一般的な確認内容をご紹介いたします。

コストを確認する

コスト最適化を行う前に現状のコストの内訳を把握しておく必要があります。
合計コストを把握されている方は多いと思いますが、内訳を把握している方は案外少なかったりします。
しかし、コスト最適化を行う場合はどこに対して最適化をするとコスト影響が大きいかを考えておくとコスパよくアクションできると思います。
コストを確認する一般的な方法としてはAWS管理コンソールから見られる「AWS Billing Dashborad」を利用する手法になると思います。さらに、上位5件のサ-ビスごとのコストの傾向の確認ができます。

また、左ペインの請求書を選択すると利用サービスの詳細を確認することが可能です。

ここまでAWS管理コンソールから確認可能な内容のお話をしてきましたが、リセラーを経由してAWSアカウントを契約している場合は別の手法で確認する必要があるケースが多いです。
弊社メンバーズの場合は、AWS管理コンソール等でもご確認いただけますが、実際の金額と異なる場合があるため、メンバーズポータルよりサービス毎のコストや、明細をご確認いただいた方が確実です。

リソース使用状況を確認し、最適化を検討する

確認したコストを頭の片隅に置いた状態で、リソース使用状況を確認し、最適化を検討します。

AWS Trusted Advisor

AWSのベストプラクティスに沿ったコスト最適化の推奨アクションを確認できます。

画像では割り当てられていないEIPの削除を促されていますが、
その他にも例えば「Amazon EBS の過剰プロビジョニングボリューム」等を確認することができます。
AWS Trusted Advisorで確認可能な内容はAWS公式ドキュメントをご確認ください。

AWS Compute Optimizer

EC2やEBS等のAWSリソースの使用を最適化するための推奨事項を確認できます。
※私の検証環境では対象リソースがなかったので画面は割愛しますが・・
例えばEC2であれば過去14日間のメトリクスの分析により、推奨インスタンスタイプを教えてくれたりします。

その他よくある最適化例

CloudTrail 管理イベントの重複コスト

CloudTrailのコストのうち、2つ目以降は有料である点は見逃しがちなので留意する必要があります。検知方法はこちらのブログが参考になります。

古いEBSストレージタイプによるコスト高

例えば元々gp2を利用していて、IOPS不足になったことにより、io1の利用や、gp2のまま容量を増やした等のケースがあると思います。
こういったケースの場合、現在ではgp3でIOPSが足りるケースも存在するため、ストレージタイプの再検討を頂くと良いかもしれません。

S3ストレージクラスの最適化

上記EBSの例と同様に、S3のストレージクラスも同様に最適化を行うことでコスト最適化が可能かもしれません。特に旧S3 Glacier(現S3 Glacier Flexible Retrieval)はS3 Glacier Deep Archiveへの変更が可能かを検討してみると良いかもしれません。

最後に

実装当時に最適なアーキテクチャだったとしても、ワークロードの変化やAWSサービスの進化により、現時点の最適解になっているとは限りません。そのため、定期的なコスト最適化アクションは必要だと思います。
皆さんもまずは気づきを得るためにコストの確認から始めてみましょう!