Amazon Web Services ブログ
Amazon Aurora での Cloudability のパフォーマンス向上、チューニングの簡素化、コスト削減について
Cloudability は、クラウドのコスト管理プラットフォームであり、企業が既知のクラウド財務と完全なアカウンタビリティの実行を可能にします。プラットフォームでは、殺到する請求書および利用データポイントを収集します。各クラウドベンダーの 275,000 以上のサービスとオプション、またクラウドプロバイダーごとに毎年 1,000 以上の新しいサービスが展開されており、1 リソースあたり 3,300 万件にものぼります。
分析、自動化、および Machine Learning を使用して、 Cloudability の True Cost Engine は、企業での割引、クレジット、コミットメント、予約、配分、および償却に基づいてこのデータを補強し、変換します。
Cloudability’ の TrueCost Explorer では、請求データを分析し、使用状況がどのようにコストに変換されるかを理解します。
Cloudability により、より望ましいリザーブドインスタンス (RI) の決定が可能になります。リザーブドインスタンスプランナーを使って、活用されていない RI の計画、購入、変更、および識別が可能です。
コスト、使用量、および RI データを取り込んだ後、Cloudability は、使用時間消費と RI カバレッジ周りのユーザーの可視性における追跡と改善を容易にします。
状況
2017年春、我々は True Cost Engine の新しい予測モデルを公開するプロジェクトに着手しました。AWS で実行するする顧客にさらに高いコスト効率を提供する予測モデルを開発することがこのプロジェクトの目標でした。
このような分析をサポートするためには、パフォーマンス、スケーラビリティ、費用対効果に優れ、そしてメンテナンスやチューニングが容易なデータベースが必要でした。この記事では、これらの要件を満たすための最良の選択である PostgreSQL との互換性を備えた Amazon Aurora をどのように見出したかを示します。
プロジェクト
昨年初め、Cloudability のデータサイエンスチームは、ペタバイトの顧客コスト最適化データを使用して新しい予測モデルを開発することを決めました。これらのモデルは、アカウントの過去のスポット料金の動向、顧客の RI ポートフォリオの欠損値、インスタンスの使用パターン、および顧客が指定した料金表の調整などを考慮に入れます。
このモデルは、過去の AWS スポット料金データセットから数億点のデータポイントについてトレーニングを受ける必要がありました。これらのデータポイントは、モデルの継続的な開発をサポートするために保持する必要がありました。また、AWS が提供するデータストリームであるスポットインスタンスデータフィードの変更に対してリアルタイムに調整する必要があり、顧客の Amazon EC2 スポットインスタンスの使用方法と料金表を示しています。
最後に、異なる地域、インスタンスファミリ、およびインスタンスタイプの独自のモデルがさらに複雑になり、チームは基盤となるデータベースが重大なストレスを受けていることに気付きました。
複数のリーダーノードによるスケーラビリティ
データベース上のストレスの大半は、スポットインスタンスデータフィードの処理によるものでした。フィードによって 1 日に約 100 万の新しいデータポイントが生成され、予測モデルへ強制的に更新されます。フィードは非常に高い書き込み負荷を生成しませんでしたが、データベース上で更新による大量の読み込みトラフィックが発生します更新が継続的に行われていたため、読み込みノードと書き出しノードとが互いに競合しないようにして、レイテンシの問題をさらに深刻にしないようにする必要がありました。
また、Aurora クラスタは単一の書き込みノードと複数の読み込みノードの基礎をなすストレージが同一であるため、読み込み側のスケーラビリティを実現することは簡単でした。書き込みノードを垂直拡張することで、近い将来において書き込みトラフィックの増加に対応可能だと確信していました。Amazon Aurora MySQL で OLAP とレポートデータベースを単一の書き込みノードと複数の読み込みノードをもつ非常に大きなクラスタへ拡大することにおいて、我々は過去に大きな成功を収めました。そのため、Aurora PostgreSQL と同じ経験を期待していました。
Performance Insights でのチューニングの容易さ
大規模なプロダクションデータベースクラスタの永続的な管理作業は、低速のクエリまたは負荷集中のクエリを監視、追跡、隔離することです。アプリケーションパフォーマンスモニタリング (APM) ソリューションは、問題を解決する手掛かりを提供します。しかし、プロセスやホストの境界を越えた呼び出しを伴う複数言語ランタイムを使用するバックエンドサービスでは、そのような APM フレームワークを簡単には統合しないでしょう。
データベースエンジンは膨大な統計情報を生成することもあり、それは圧倒的な量です。低速クエリのログでは、ログからデータを集約し、データベースの負荷と相関をとり、クエリを分離する必要があります。これは、煩雑で退屈なプロセスです。
このように、Aurora PostgreSQL について Performance Insights の発表される際、我々は感激していました。Performance Insights を使い、低速で、性能の悪いクエリを迅速に分離することができました。この機能により、開発における重要なパフォーマンス上の問題を検出し、稼働中に顧客およびビジネスにマイナスな影響を与える問題を回避することができました。次のスクリーンショットに示すように、Performance Insights は、データベースの負荷を視覚化し、簡単にボトルネックの原因を特定できるシンプルなダッシュボードを提供します。
驚くほど高い費用対効果
同様の Amazon RDS デプロイメントと比較して、Aurora を使用する場合には大幅なコスト削減が可能です。プロダクション Amazon RDS クラスタは通常、プロビジョニングされた IOPS およびマルチ AZ ストレージのコストを負担します。大規模なプロダクションクラスタでは、これらのコストは Amazon RDS のインスタンスコストを超えることがあります以下のコスト配分チャートに示すように、Aurora ではコストのほとんどが完全に排除されます。
AWS の大規模な顧客の中には、マルチ AZ プロビジョニング IOPS コストだけで月額 50,000 USD を節約できる可能性があることを見出しました。マルチ AZ のストレージ速度を追加すると、潜在的な節約額はさらに高くなります。一般的に、Amazon RDS クラスタの I/O コストが合計額の 30% を超える場合、Amazon Aurora を評価する必要があります。
したがって、Amazon Aurora に移行することでデータベースのコストの削減が可能です。どれほど驚くべきことなのか ?
結論
最新の製品にはエンタープライズグレードのデータベースソリューションが必要でしたが、Amazon Aurora PostgreSQL で理想的なものを見つけました。スケーラビリティ、コスト、メンテナンス、そしてチューニングの容易さは、我々にとって本当に際立ったものでした。実のところ、我々は Aurora を非常に好んでおり、 PostgreSQL と MySQL の両方の Aurora プラットフォームで将来のデータベースのデプロイを標準化しています。将来を見据えて、顧客がクラウドでコストを最適化するための方法をより多く見つけられることを願っています。Aurora ははその努力において不可欠なものです。
著者について
Rich Hua 氏は、アマゾン ウェブ サービスの Aurora と RDS for PostgreSQL のビジネス開発マネージャーです。
Alok Singh 氏は Cloudability の主要なデータサイエンスエンジニアです。同氏はリアルタイムな料金の予測、クロスクラウドのワークロードの最適化、クラウドの使用とトレンド分析のモデルの構築を担当しています。