Amazon Web Services ブログ
主要なクラウドデータウェアハウスに比べて最大 3 倍のコストパフォーマンスを持つ Amazon Redshift
本記事は Amazon Web Services, Director of product management for Amazon Redshift である Eugene Kawamoto、Senior Performance Engineer with Amazon Redshift である Stefan Gromoll によって 2020 年 12 月に投稿されたものです。
2012 年に Amazon Redshift を発表して以来、データからビジネスインサイトを得るために必要なパフォーマンスと拡張性を提供することで、何万ものお客様にご活用いただいています。Amazon Redshift のお客様は、スタートアップ企業から Fortune 500 企業まで、あらゆる業界と規模にわたり、私たちはあらゆるユースケースで最高のコストパフォーマンスを提供できるよう努めています。2020 年の初めに、私たちは Amazon Redshift の速度とスケーラビリティの向上に関するブログ記事を公開しました。これには、Concurrency Scaling で必要なときにクラスター容量を動的に追加したり、自動ワークロード管理 (WLM) でクラスターリソースを効率的に使用したり、与えられたワークロードに対して最適なパフォーマンスを実現するためのデータレイアウト、分散キー、クエリプランの自動調整などの最適化が含まれます。また、Codeacademy、OpenVault、Yelp、Nielsen などのお客様が、クラウドデータウェアハウスを拡張し、コストを削減するためにどのようにマネージドストレージを備えた Amazon Redshift RA3 ノードをうまく利用したのかについても、これまでブログ記事としてまとめてきました。
パフォーマンスと拡張性の向上に加え、Amazon Redshift が提供するコストパフォーマンスも改善する方法を常に検討しています。お客様に最高の価値を提供することを保証する方法の 1 つは、業界標準の TPC-DS ベンチマークから派生したベンチマークを使用して、定期的にパフォーマンスを測定することです。ベンチマークの詳細はこのブログの最後にあり、この Github リポジトリのスクリプト、クエリ、およびデータを使用して結果を再現できます。
その当時に入手可能な複数ベンダーの最新バージョンの製品を使用して TPC-DS ベンチマークから派生した最新のベンチマークを2020 年 11 月に完了しました。Amazon Redshift においては、2020 年 11 月より前にリリースされた 15 を超える新機能が含まれ、AWS re: Invent 2020 で発表された新機能は含まれていません。
すぐに使用可能でチューニングされた最高のコストパフォーマンス
Amazon Redshift と他の 3 つの主要なクラウドデータウェアハウスの 2020 年 11 月のテストでは、Amazon Redshift が標準設定の状態で最大 3 倍優れたコストパフォーマンスを実現していることが示されました。以下のグラフは、これらの結果を示しています。
このテストでは、TPC-DS ベンチマークから派生した 99 個のすべてのクエリを 3 TB のデータセットに対して実行しました。すべてのクエリを実行するのに必要な時間数に、各クラウドデータウェアハウスの 1 時間あたりの料金を掛けて、コストパフォーマンスを計算しました。各データウェアハウスに同等のハードウェア特性を持つクラスタを使用しました。また、クラウドデータウェアハウスごとにデフォルト設定を使用しました。ただし、2 つのサービスではデフォルトで暗号化が有効になっているため、4 つのサービスすべてで暗号化を有効にし、該当する場合は結果キャッシュを無効にしました。デフォルト設定にすることで、手動チューニングなしで得られるコストパフォーマンスを明らかにすることができました。各サービスによって提供される最適化機能をうまく活用するために、クエリごとに 3 回の実行した中から最良の結果を選択しました。最後に、Apples-to-Apple の比較を確実にするために、公開価格を使用し、パフォーマンス単体の比較ではなくコストパフォーマンスで比較しました。分かりやすいように Amazon Redshift では、オンデマンド料金を使用しました。ただし、Amazon Redshift リザーブドインスタンスの料金では、オンデマンド料金に比べて最大 60% の割引が適用されます。
これらの結果から、比較的小さい 3 TB のデータセットでも、Amazon Redshift が標準設定でも最高のコストパフォーマンスを提供することを示しています。つまりこれは、手動チューニングしない初期段階からAmazon Redshift の優れたコストパフォーマンスの恩恵を受けることができるということを示しています。
また、 Amazon Redshift のパフォーマンスチューニング手法を活用して、ワークロードに対してさらに良い結果を得ることができます。各クラウドデータウェアハウスベンダーが提供するチューニングのベストプラクティスを使用したベンチマークテストも行いました。すべてのクラウドデータウェアハウスでチューニングが行われた後では、次の図に示すように、Amazon Redshift は最も接戦となったクラウドデータウェアハウスよりも 1.5 倍優れたコストパフォーマンスを示しています。
すべてのベンチマークと同様に、透明性と再現性は非常に重要です。このため、 GitHub でデータとクエリを誰でも使用できるようにしました。これらのベンチマークの再実行に関する詳細な手順については、GitHub の README を参照してください。
データウェアハウスの成長につれて、チューニングされたコストパフォーマンスが向上
データウェアハウスの重要な側面の 1 つは、データの増大に合わせて拡張する方法です。データが増加するにつれてTBあたりの支払いが維持できるでしょうか、それともコストは一定であり予測可能な状態を維持しますか? Amazon Redshift は、データの増加に応じて強力なパフォーマンスを発揮するだけでなく、一貫したコストパフォーマンスも提供できるように努めています。3 TB、30 TB、100 TB のデータセットを持つ TPC-DS から派生したクエリを使用して、3 つの異なるクラスターサイズで Amazon Redshift のコストパフォーマンスをテストしました。次のグラフに示すように、データセットの増加に応じて、チューニング後のコストパーフォーマンスも向上しています ( 1 回の実行 1 TB あたり 2.80 USD から 2.41 USD )。ワークロードやクラスターサイズの組み合わせにより改善の度合いは異なるものの、チューニングによってネットワークやディスク I/O の削減効果が得られます。
さらに、次の表に示すように、Amazon Redshift の標準設定でのコストパフォーマンスは、3 つのデータセットサイズすべてでほぼ同じ( 実行あたり TB あたり 4.80 USD ~ 5.01 USD )です。標準設定とチューニングの両方において、データサイズとクラスターサイズに関わらずコストパフォーマンスが直線的にスケーリングされるため、Amazon Redshift はデータとワークロードの増大に合わせて予測どおりにスケーリングできます。
A | B | C | D | E | F | |
1 | TPC-DS ベンチマークから派生したテストのAmazon Redshift の結果 | |||||
2 | 標準設定 | チューニング | ||||
3 | データセット ( TB ) |
クラスター | ランタイム ( 秒 ) |
実行あたり TB あたりの料金 |
ランタイム ( 秒 ) |
実行あたり TB あたりの料金 |
4 | 3 | 10 ノードra3.4xlarge | 1,591 | $4.80 | 926 | $2.80 |
5 | 30 | 5 ノードra3.16xlarge | 8,291 | $5.01 | 4,198 | $2.53 |
6 | 100 | 10 ノードra3.16xlarge | 13,343 | $4.83 | 6,644 | $2.41 |
大規模データセットに対する Amazon Redshift のパフォーマンスについて詳しくは、「 Amazon Redshift が Amazon.com の大規模分析をどのように強化するか」を参照してください。この AWS re: Invent 2020 セッションでは、 Amazon.com が Amazon Redshift を使用してどのように爆発的に増加するデータに対応したのかと、スケールとパフォーマンスを得るために既存のデータウェアハウスのワークロードを RA3 ノードにどのようにアップグレードして、大きな価値を実現したかについて説明します。
コストパフォーマンスは向上し続けています
Amazon Redshift は、データウェアハウスのニーズの拡大に合わせて Amazon Redshift が継続的に改善されるように投資しています。前述のとおり、これらのベンチマーク結果は 2020 年 11 月時点の Amazon Redshift の最新バージョンを反映しています。このバージョンには、分散ブルームフィルタ、ベクトル化されたクエリ、自動 WLM など、今年初めにリリースされた 15 を超える新機能が含まれていますが、AWS re: Invent 2020 で発表された新機能の利点は含まれていません。
AQUA でクエリパフォーマンスが最大 10 倍向上
これらの新機能には、 Amazon Redshift の AQUA (高度なクエリアクセラレータ) が含まれます。AQUA は Amazon Redshift 用の新しい分散型ハードウェアアクセラレーションキャッシュで、特定の種類のクエリに対して他のクラウドデータウェアハウスよりも最大 10 倍高いクエリパフォーマンスを提供します。AQUA は、クラウドデータウェアハウジングに対する新しいアプローチを採用しています。AQUA は、革新的なキャッシュ上で大量のデータ処理をインプレースで実行することで、コンピューティングをストレージに導入します。さらに、AWS が設計したプロセッサとスケールアウトアーキテクチャを使用して、従来の CPU が現在実行できる以上のデータ処理を加速します。
ワークロードに最適なコストパフォーマンスを発見
このブログで使用されているベンチマークは、業界標準の TPC-DS ベンチマークから派生したもので、次のような特徴があります。
- スキーマとデータは TPC-DS から変更せずに使用しました。
- クエリは TPC-DS から変更せず使用しました。データウェアハウスがデフォルトの TPC-DS クエリの SQL 文法をサポートしていない場合、TPC で承認されたクエリとは多少異なったものを使用しました。
- このテストには 99 個の TPC-DS SELECT クエリのみが含まれます。メンテナンスとスループットのステップは含まれません。
- TPC-DS キットのデフォルトのランダムシードを使用して生成されたクエリパラメータを使用して、3 つの Power Run (訳注: 並列実行数 1 でのクエリ実行のこと) が実行されました。
- 主要なメトリクスとしてクエリ実行時間の合計を使用しました。実行時間は 3 回の実行のうち、最良のものを採用しました。
- コストパフォーマンスは、1 時間あたりのコスト ( USD ) を 1 時間あたりのクエリ数で割った値として計算しました。これは、クエリあたりの平均コストに相当します。すべてのデータウェアハウスで公開されたオンデマンド料金を使用しました。
私たちはこの形式で行ったベンチマークテストを Cloud Data Warehouse ベンチマークと呼んでいます。 GitHub で利用可能なスクリプト、クエリ、データを使用して、上記のベンチマーク結果を再現できます。これは TPC-DS ベンチマークから派生したものであり、テストの結果が仕様に準拠していないため、公開されている TPC-DS の結果と比較することはできません。
各ワークロードには固有の特性があるため、Amazon Redshift がお客様の要件に対してどのように機能するかを理解するには、POC が最適な方法です。独自の概念実証を実行する際には、適切なクラスターサイジングと適切なメトリクス (クエリのスループット ( 1 時間あたりのクエリ数) とコストパフォーマンス) に焦点を当てることが重要です。POC の支援を依頼するか、システムインテグレーションおよびコンサルティングパートナーと協力して、データドリブンな意思決定を行うことができます。
Amazon Redshift の最新の開発情報を入手するには、 Amazon Redshift の新機能 RSS フィードを購読してください。
原文はこちらです。
本ブログは Solutions Architect の池田が翻訳しました。