見出し画像

Aurora I/O optimizedにしたら費用削減できた話

こんにちは。AWSの費用削減してますか?システム開発1部2課です。
今回は、筆者がキャリタス就活の担当だった時に対応した話となります。

この記事はこんな人におすすめ


・Amazon Auroraの利用を検討している方、利用中の方
・I/O最適化(I/O-Optimized)における費用削減時のポイントを知りたい方



1.背景


キャリタス就活は2023年にリニューアルをしまして、その際にデータベースを移行しました。
その後、現在までサービスを稼働させ続けてきたわけですが、機能追加のリリースや経年によるデータ量の増加により、I/Oトラフィックが増加していました。
あまり気にした事がない方もいらっしゃるかもしれませんが、Aurora StandardではI/Oに料金が発生します。
コンポーネント
Aurora Standard
Aurora I/O 最適化
I/O 料金
USD 0.24/100万リクエスト
利用料に含まれる
※最新情報はAWSの料金のページ(https://aws.amazon.com/jp/rds/aurora/pricing/)でご確認ください。
今回はここにメスを入れました。

2.Aurora I/O最適化とは?


Aurora I/O最適化についてはAWS公式が次のような説明をしています(https://aws.amazon.com/jp/about-aws/whats-new/2023/05/amazon-aurora-i-o-optimized/)
Aurora I/O 最適化を使用すると、ワークロードの要求が非常に高い場合でも、パフォーマンスは向上し、スループットは増加し、レイテンシーは減少します。Aurora I/O 最適化では、読み取りと書き込み I/O オペレーションの料金は発生しません。データベースインスタンスとストレージ使用量に対してのみ課金されるので、データベースの消費量を事前に容易に予測できます。Aurora I/O 最適化は、I/O 料金が Aurora データベースの総消費量の 25% を超える場合、I/O 集約型アプリケーションのコストを最大 40% 削減します。
要するに、I/O料金が多くなっているAuroraのリソースにおいて「I/O Standardと比較して同等以上のパフォーマンスで、料金を削減することが可能」ということです。

3.要件


I/O最適化には要件となるバージョンが存在します(https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.storage-type.html)。
    Aurora MySQL バージョン 3.03.1 以降
    Aurora PostgreSQL バージョン 16.1 以降、15.2 以降、14.7 以降、および 13.10 以降

4.損益分岐点の計算


I/O最適化で割増となる料金は、ストレージとインスタンスの料金です。
・インスタンスの料金は30%割増となります。
・ストレージの料金は25%割増となります。
これらとのトレードオフで、I/O料金が発生しなくなるのがI/O最適化です。
つまり、「インスタンスの割増料+ストレージの割増料 < I/O料金」となる場合は、I/O最適化の適用を検討した方が良いということになります。


次に、それぞれの料金について試算する場合のイメージ・確認する方法をついて触れておきます。
例えば、ライターインスタンス1台、リーダーインスタンス2台のようなクラスター構成の場合は下図のようなイメージですので、使用中のインスタンスタイプやストレージの料金を確認して試算してみてください。

また、I/O料金はAWSマネジメントコンソールのBilling and Cost Managementから確認できます。
以下のように「USD 0.24 per 1 million I/O requests for Aurora PostgreSQL」として利用料が請求されていると思います。

これらを元に損益分岐点を計算し、I/O最適化を利用するかどうか検討しましょう。

5.切り替える際のポイント


切り替え際のポイントとしては以下となります。AWSのユーザーガイドのページ(https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type)にも記載があります。
・ダウンタイム無く切り替えが可能
・ただし、切り替えには制限がある
・I/O最適化 から Standard への切り替えは制限なし
・Standard から I/O最適化 への切り替えは30日ごとに1回

6.リザーブドインスタンスを購入する際の注意点


実はここが一番ややこしいです。
ユースケースによってはリザーブドインスタンスを購入している事もあるかと思います。
RDSのリザーブドインスタンスには、I/O最適化のインスタンス用のリザーブドインスタンスというものは用意されていません。
よって、i/O最適化のリザーブドインスタンスを購入する場合は、
 「利用中のインスタンスタイプ」+「I/O最適化による30%割増分」
を購入しなければ、コスト最適化は完了していません。
I/O最適化による30%割増分については、同じインスタンスファミリーを必要分だけ購入して割り当てます。
例えば、db.r6.2xlageで3台のクラスター構成だった場合は以下のようなイメージとなります。

7.まとめ


AuroraではI/Oトラフィックが多いユースケースの場合、I/O最適化に変更することで利用料を抑えることができます。
Auroraの利用料が高くなっていることに気付いたら、I/O最適化が適用されているか確認してみると良いかもしれません。


最後までお読みいただきありがとうございました。
我々は新卒、中途採用を実施しています。ご興味のある方は下記リンクよりご応募お願いします!


いいなと思ったら応援しよう!