We’re sorry we missed you at re:Invent, but we can still meet!

クラウドインフラのコスト削減は思ったより簡単です

バックエンドのキャッシュ戦略を変更し、クラウドインフラのコストを50%削減。

Eric Heikkila
Author

Share

現在のマクロ経済状況は芳しくなく、日に日に悪化しています。クラウドベースの開発チームやプラットフォーム・チームは、積極的なコスト削減目標を迅速に達成するよう迫られています。可能な限り、明日の革新的な新しいアプリケーションを構築する能力を犠牲にすることなく、今日の可用性とパフォーマンスを維持するコスト効率の高いインフラから始めることが不可欠です。過去10年間のクラウドコンピューティングの爆発的な成長により、多くの組織が、厳密な最適化やコスト管理よりも、目先のイノベーションとデジタルトランスフォーメーションの利益の名の下に、急速な拡大を選択しました。その結果、標準的なクラウドのフットプリントには、将来を担保にすることなくコスト管理ができる可能性が見過ごされている部分があります。コツは、どこを見るべきかを知ることです。

クラウドスタックの中でコスト最適化のチャンスがある場所のひとつが、バックエンドのキャッシュ基盤です。

データベースとデータストアのバックエンド・キャッシングは、今日、ほとんどのクラウド・アーキテクチャにおいて、家の配管と同じようにどこにでもあるものです。このため、ほとんどの組織では、キャッシングに関する戦略的な計画を持っていません。

今日、クラウド・コンピューティングを利用する最大手の顧客の多くでは、キャッシュ・インフラは通常、Redis、Memcached、そしてSQLデータベース・クラスタなどの不適切なツールの組み合わせとなっています。RedisとMemcachedのクラスタは、生のコンピュートインスタンスやVM上のマネージドサービスとセルフマネージドサービスがランダムに混在していることが多く、全体的なキャッシング戦略であるべきものがさらに分断されています。このように既存のソリューションを寄せ集めると、バックエンド・キャッシングは不必要に複雑になり、ベスト・プラクティスが曖昧になります。その結果、キャッシングの恩恵を受けられるはずの多くのアプリケーションが、キャッシングを見逃したり、積極的に避けたりすることになります。Momento Cacheはこれを変えます。マルチテナントとサーバーレスパラダイムを採用し、高性能で使いやすいバックエンド・キャッシュ・ソリューションを実現しました。

全体的なキャッシング戦略とそれを実行するための適切なツールがあれば、クラウドインフラストラクチャの複数のレイヤーにわたってコスト削減を達成することができます。稀に見るWin-Winの関係です。

クラウドインフラのコストを削減できる6つのレイヤー

1.データベースの総費用を最適化

バックエンド・キャッシングは、パフォーマンス、安定性、コスト効率を向上させる最良の方法の1つであるにもかかわらず、必ずしも実装されていません。これは、単純な認識不足による場合もあれば、チームが複数の成長サイクルに対処しているために時間やリソースが足りず、実施できない場合もあります。どのような状況であれ、常に「早すぎる」か「遅すぎる」ことになります。今すぐデータベースにキャッシュを追加する時間を作りましょう。

データキャッシュの運用は、データベースをスケールアップするよりも安価です。
Momentoの顧客であるCBS Sportsは、典型的な大容量アプリケーションのトラフィックの90%をキャッシュする場合、必要な管理データベースノードはわずか4台であることを挙げています。データベース・インスタンスの 75% 削減は、パフォーマンスと可用性の向上に加え、コスト面でも大きなメリットをもたらします!

2.キャッシュ支出の最適化

クラウドの経済学101は、常に弾力性とオートスケールに根ざしています。残念ながら、これらの基礎は従来のRedisとMemcachedのマネージドクラウドサービスには適用されません。下のグラフは、弾力性のあるクラウドリソースのコストメリットについて、最も低いところにぶら下がっている果実を一般的に視覚的に表したものです。一番上の青い線と波打った緑の線の間のスペースが、即座に節約できるコストです。静的な容量では、ピーク時の負荷に対して常に料金を支払うことになりますが、クラウドの弾力性では、使用した分だけ料金を支払えばよいのです。

Amazon ElastiCacheやGoogle MemorystoreのようなマネージドRedisやMemcachedサービスはシングルテナント・サービスです。Amazon DynamoDBやGoogle Firestoreのような最新のサーバーレスデータベースのようなマルチテナントではありません。これが、DynamoDBやFirestoreが非常に効率的である理由であり、そもそもサーバーレスがデータベースのコスト効率にとって重要である理由です。シングルテナントのクラスタでは、ウォームキャパシティというものは存在しません。ノードのコールドスタートには最大で15分かかることがあり、データベースが故障している場合は14分59秒遅いと言われます。このため顧客は、需要の山と谷によって実際に消費されるキャッシュ負荷は時間とともにずっと低くなるにもかかわらず、ピーク負荷(一番上の水色の線)に対して過剰にプロビジョニングし、停止を避けるために24時間365日稼働させるという時代遅れのモデルを守らざるを得なくなります。

Momento Cacheは、DynamoDBやFirestoreのようなマルチテナント分散アーキテクチャによって実現されるウォームキャパシティによって、真に弾力的なバックエンドキャッシュを提供します。
レガシーなRedisやMemcachedクラスタ(80%もオーバープロビジョニングされている)をServerless Cacheに置き換えることで、キャッシュコストを半分以下に削減することができました。これは、重要なクラウドの請求項目において、かなりの節約になります。

3.スモール・オブジェクト・ストレージのコストを最適化

この隠れたチャンスは微妙だが、珍しいことではありません。

Amazon S3、Google Cloud Storage、Azure Blob Storageのようなクラウド・オブジェクト・ストレージ・サービスは、耐久性のあるストレージとしては文句なしのコストリーダーです。GB、TB、PBのデータを永続的に保存するのに、これより安い値段はないでしょうが、これらのサービスには見落とされがちな価格設定があります。これらはリクエスト料金と呼ばれます。

月に何百万ものPUTやGETを行っていなければ、これらの料金に気づくことはほとんどありません。例えば、US-Eastリージョンでは、Amazon S3は1,000PUTあたり0.005ドル、Google Cloud Storageは1,000GETあたり0.0004ドルです。些細なことのように思えるが、膨大な量の小さなオブジェクトを扱う顧客にとっては、これらの料金は意味のあるものになります。

自問自答すべきはいくつかあります。小さなファイルが本当にオブジェクト・ストアの耐久性を必要としているのか?これらのファイルは短期間しか関連性がないのか?もしそのうちの1つが消えてしまった場合、デフォルトに戻って元のソースから再生成できるのか?

例えば、メディアのプレビュー(画像のサムネイル、ダウンスケールされたビデオ・スニペット、低忠実度のオーディオ・サンプル)や、より大きなオブジェクトを要約するあらゆる種類の小さなメタデータを考えてみましょう。このデータストレージのために、いくつかのプロパティをトレードオフすることで、コストとレイテンシーの両方を削減することができます。

Momentoの顧客であるスマートホーム企業のWyze Labsの例を考えてみましょう。同社は、世界中に数百万台あるモーション・アクティブ・セキュリティ・カメラで撮影されたすべてのビデオのサムネイル画像を保存しています。サムネイルファイルは1つ数KBの小さなものですが、毎月数億枚が保存されています。この量になると、リクエスト料金はWyzeのAmazon S3の総コストの97%に達していました。Momento Cacheに移行することで、このコストは50%以上削減され、その過程でレイテンシも改善されました。

4.機械学習(ML)プラットフォームのコストを最適化する

クラウド業界は過去5年間、急速に加速するMLとディープラーニングのイノベーションを活用しようと競い合ってきたが、必要なインフラの効率化と最適化はほったらかしにされてきました。

データサイエンティストは、アルゴリズムを書いたり、予測モデルを作ったり、AIサービスを作ったり、一般的にデータを魔法に変えることに長けているが、クラウドインフラの専門家、ましてやキャッシングの専門家であることはほとんどありません。キャッシュはリアルタイムのフィーチャーストアと予測に不可欠なツールであるため、これは問題です。

MLチーム内にキャッシングの専門知識が不足しており、非常に非効率なレガシーバックエンドキャッシングソリューションとMLインフラストラクチャの急ぎの展開が組み合わさることで、コスト最適化の有意義な機会が生まれます。当社のサーバーレス・キャッシュをMLワークフローに導入したMomentoのすべてのお客様は、コスト・プロファイルを合理化し、レイテンシを削減し、モデルの提供時間を短縮しています。

5.開発者の生産性向上

開発者が前述のRedisやMemcachedのサービスを使用している場合、メンテナンスウィンドウの回避、手作業によるシャーディング、データのレプリケーション、ホットキーやフェイルオーバー/バックアップの管理、キャッシュのヒット率の監視など、ビジネスの中核となる価値を提供しないオペレーションに貴重なサイクルを浪費していることになります。

サーバーレスAPIファーストのアーキテクチャを採用したMomento Cacheは、このような細部にまで対応します。キャッシングはわずか5行のコードで実行できるため、開発者はビジネス・クリティカルなタスクに時間を割くことができ、大幅なコスト削減を実現できます。

6.コストのかかるダウンタイムをなくす

レガシーなバックエンド・キャッシング・サービスで必要とされるすべての手動操作は、複雑で、エラーが発生しやすく、運用上のリスクが高く、必然的に高価な障害やダウンタイムを引き起こします。サーバーレス・バックエンド・キャッシング・ソリューションでは、このような脆弱性が排除されます。このような停止をなくし、その結果生じる損失やブランドへのダメージをなくすことで、キャッシングの総所有コストを削減できます。

結論

レガシー・キャッシング・サービスが何を犠牲にしているのか気づいていないかもしれないが、コントロールを取り戻すには今しかありません。今日という日は贈り物です。戦略的なキャッシング・プランを導入し、Momento Cacheのような最新のツールを活用して、クラウド・インフラのコストを削減し、ついでにアーキテクチャも強化しましょう。

キャッシング戦略を変革し、Momento Cacheを導入することで、クラウドインフラストラクチャのコストを削減する方法については、当社までお問い合わせください。

Share