![見出し画像](https://assets.st-note.com/production/uploads/images/163165440/rectangle_large_type_2_af2f27c1a42653b8331e1166039fbf84.png?width=1200)
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台のようなクラスター構成の場合は下図のようなイメージですので、使用中のインスタンスタイプやストレージの料金を確認して試算してみてください。
![](https://assets.st-note.com/img/1732498447-SaTve5mdcAWQlMqDFJtz1VPf.png)
また、I/O料金はAWSマネジメントコンソールのBilling and Cost Managementから確認できます。
以下のように「USD 0.24 per 1 million I/O requests for Aurora PostgreSQL」として利用料が請求されていると思います。
![](https://assets.st-note.com/img/1732498499-oqnWOExc1Tp4LUkb7Xj62etB.png?width=1200)
これらを元に損益分岐点を計算し、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台のクラスター構成だった場合は以下のようなイメージとなります。
![](https://assets.st-note.com/img/1732498654-eaQzh0B25n8dCDSblITjMULZ.png)
7.まとめ
AuroraではI/Oトラフィックが多いユースケースの場合、I/O最適化に変更することで利用料を抑えることができます。
Auroraの利用料が高くなっていることに気付いたら、I/O最適化が適用されているか確認してみると良いかもしれません。
最後までお読みいただきありがとうございました。
我々は新卒、中途採用を実施しています。ご興味のある方は下記リンクよりご応募お願いします!