はじめに
本記事はDB Tech Showcase 2024 の2日目(7/12)において AWS の堤さんが講演された「実践導入!キャッシュレイヤによるOracleコスト削減」のレポートです。
公式セッション紹介
キャッシュレイヤはOracleやRDBMS等のコスト削減に対する強力な武器となります。しかしごく一部でしか使っていない、どの程度の効果があるか分からない、トレードオフが分からない、という方も多いのではないでしょうか。本セッションではキャッシュレイヤ導入に向けてユーザー事例、コスト試算、サンプルコード、実装時の注意点等を30分に凝縮してお伝えします。
セッション資料
- 現時点(2024/7/12)では未公開?
概要/おすすめポイント
このセッションでは、RDS for Oracle を例に キャッシュ層 を利用することで全体としてコスト削減ができますよ、という話です。データベース自体はOracle Databaseに限られる話でもなく、例えば発表者の堤さんが昨年 「Amazon ElastiCache を使用して RDS for MySQL ワークロードのコストを最適化し、パフォーマンスを向上させる」というタイトルでAWS blogを書かれてますし、ワークロードによってはキャッシュを利用することでコスト最適化を図ることができますよ、というお話でした(Oracle Databaseに限らず)。
リクエストが少ないシステムでキャッシュを入れてもTCOは削減されない、という話もあり、どのような場合に検討すると良いかもイメージできるようになっていました。
また、このセッションの中でOracle Databaseのワークロード調査ツールであるDBCSI(Database Current State Investigation)であったり、SQL Serverの調査ツールである RDStools が紹介されており、それらを利用することでキャッシュ導入を検討すべきかを判断できるような流れになっていました。
セッション内容の紹介
次の図は今年のAWS Summitの堤さんの発表資料(NoSQL コスト削減⼤全)からの引用なのでDBTS2024の資料とは若干内容が違いますが、イメージとしてはこの図と同様のお話になります。
キャッシュ層としてElastiCache for Redisを導入することで全体のコスト削減ができるというお話です。
また、このような構成でコスト削減が可能となるのはおおむね次の特徴のワークロードが該当する、という話でした。ようは、キャッシュが効率的に利用できるワークロードでないと、効果が出づらいという形になると考えてます。
- 読み取りが全体の7割以上
- リードレプリカをすでに複数利用している
- 同じデータの読み取りを繰り返すワークロード
- リクエストに対するスループット要件が高い
現在のシステムが上記のワークロードに該当するかは、DBCSIやRDStoolsを利用することで確認ができるとのことでした。ただ、DBCSIはAWSのサポート等に相談して入手し、一緒に調査するような形で使った方が良いとアドバイスされていました。
まとめ
キャッシュを利用してメインのデータベースの負荷をオフロードして全体のコスト最適化を図る、というのはとてもシステムとしては美しいと感じますが、やはり複雑度が増すため難易度は高くなると考えてます。
実際に事例としても2023年のAWS Innovateで紹介されていた Oisix さんの事例(スライドは非公開)以外ではまだあまり聞いたことはありません。。
とはいえ、AWSのパーパスビルト的なデータベースの利用法からすると適切な形となるため、実装のノウハウがたまってきて事例が増えてくると、利用は増えてくるかもしれません。
1つの方式として今後もウォッチしていきたいと考えてます。