Amazon Web Services ブログ

Amazon Redshift Serverless での最適化機能の活用

Amazon Redshift Serverless は、ワークロードの需要に合わせて自動的に計算能力をスケーリングし、この能力を Redshift Processing Units (RPU) で測定します。従来のスケーリングはクエリキューの待ち時間に応じて行われていましたが、新しい AI 主導のスケーリングと最適化機能 は、クエリの複雑さやデータ量など複数の要因を考慮することで、より洗練されたアプローチを提供します。インテリジェントなスケーリングにより、パフォーマンスとコストのバランスを取ることができ、主要なデータウェアハウスの課題を解決できます。特に、日次パターンや月次サイクルに基づいてワークロードが変動する場合に有効です。

Amazon Redshift サーバーレスでは、ワークグループの構成をより柔軟に設定できるようになりました。ユーザーは、クエリ実行のベース RPU を指定してベース容量を設定するか、価格対パフォーマンスのターゲットを選択できます。RPU の範囲は 8 から 1024 で、各 RPU は 16GB のメモリを提供します。Amazon Redshift Serverless の AI 主導のスケーリングと最適化により、さまざまなワークロードの要件により適切に対応でき、インテリジェントにリソース管理を行い、クエリ実行中にリソースを自動的に調整し、最適なパフォーマンスを実現します。現在のワークロードが 32 から 512 ベース RPU を必要とする場合は、AI 主導のスケーリングと最適化を使用することをお勧めします。32 ベース RPU 未満または 512 ベース RPU を超えるワークロードでは、この機能の使用をお勧めしません。

この記事では、Amazon Redshift Serverless の AI 主導のスケーリングと最適化が、さまざまな最適化プロファイルにおいてパフォーマンスとコストにどのような影響を与えるかを示します。

AI 主導のスケーリングと最適化の選択肢

Amazon Redshift Serverless の AI による自動最適化では、直感的なスライダーインターフェースを提供し、価格とパフォーマンスのゴールをバランスさせることができます。次の図に示されるように、「コスト最適化」から「パフォーマンス最適化」までの 5 つの最適化プロファイルから選択できます 。スライダーの位置に合わせて、Amazon Redshift がリソース割り当てと AI による自動最適化の調整を行い、価格とパフォーマンスを望ましいバランスに保ちます。

スライダーには以下のオプションがあります:

  1. コスト最適化 (1)
    • パフォーマンスよりもコスト削減を優先します
    • コスト削減のため、最小限のリソースを割り当てます
    • パフォーマンスが時間的に重要でないワークロードに最適です
  2. コストバランス (25)
    • 適度なパフォーマンスを維持しつつ、コスト削減に重点を置きます
    • 中程度のリソースを割り当てます
    • クエリ時間に柔軟性がある混合ワークロードに適しています
  3. バランス (50)
    • コスト効率とパフォーマンスに同等の重点を置きます
    • ほとんどのユースケースに最適なリソースを割り当てます
    • 汎用ワークロードに理想的です
  4. パフォーマンスバランス (75)
    • ある程度のコスト管理を維持しつつ、パフォーマンスを優先します
    • 必要に応じて追加のリソースを割り当てます
    • 一貫して高速なクエリ経過時間を必要とするワークロードに適しています
  5. パフォーマンス最適化 (100)
    • コストに関係なく、パフォーマンスを最大化します
    • 利用可能な最大のリソースを提供します
    • 最速のクエリ配信を必要とする時間的に重要なワークロードに最適です

AI 主導のスケーリングと最適化を検討すべきワークロード

Amazon Redshift Serverless の AI によるスケーリングと最適化機能は、ほとんどすべての分析ワークロードに適用できます。Amazon Redshift は、コスト、バランス、パフォーマンスのいずれかの価格と性能の目標に応じて、最適化を評価して適用します。

ほとんどの分析ワークロードは、数百万または数十億行のデータを処理し、集計や複雑な計算を行います。これらのワークロードはクエリパターンとクエリ数の変動が大きくなります。Amazon Redshift Serverless の AI 主導のスケーリングと最適化により、ワークロードのパターンを学習し、パフォーマンス重視の場合はパフォーマンス向上のためにリソースを多く割り当て、コスト重視の場合はリソースを少なく割り当てるため、価格、パフォーマンス、またはその両方が改善されます。

AI ドリブンのスケーリングと最適化のコスト効率性

Amazon Redshift Serverless の AI 主導のスケーリングと最適化の効果を適切に判断するためには、現在のコストパフォーマンスを測定できる必要があります。現在のコストパフォーマンスを測定するために、sys_query_history を使用してワークロードの合計経過時間を計算し、開始時刻と終了時刻を確認することをお勧めします。次に、sys_serverless_usageを使用してコストを計算します。Amazon Redshift ドキュメントのクエリを使用し、同じ開始時刻と終了時刻を追加できます。これにより、現在のコストパフォーマンスが確立され、比較のための基準ができます。

ワークロードが継続的に実行されており、固定された開始時刻と終了時刻を決めるのが現実的でない場合、別の方法として、全体的に比較することもできます。前月比のコストをチェックしたり、パフォーマンス、システムの安定性、データ配信の改善、または前月比の全体的な処理時間の短縮に対するユーザーの評価をチェックすることができます。

ベンチマークの実施と結果

TPC-DS 3TB データセットを AWS Labs GitHub リポジトリ (amazon-redshift-utils) から評価し、最適化オプションを検証しました。このデータセットを、コスト最適化、バランス、パフォーマンス最適化に設定された 3 つの Amazon Redshift Serverless ワークグループに分けてデプロイしました。本格的なレポーティング環境を作成するため、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス 3 台に JMeter (エンドポイントごとに 1 台) を設定し、次のスクリーンショットに示すように、選択した 15 の TPC-DS クエリを約 1 時間同時に実行しました。

結果キャッシュを無効化して、Amazon Redshift Serverless がすべてのクエリを直接実行し、正確な測定値を提供するようにしました。この設定により、各最適化プロファイルにおける本物のパフォーマンス特性を把握できました。また、Amazon Redshift Serverless ワークグループの 最大容量パラメータを設定しない環境でテストを行いました。このパラメータは、データウェアハウスで利用可能な最大 RPU を制御する重要な設定です。この制限を外すことで、さまざまな設定がテストエンドポイントのスケーリング動作にどのように影響するかを明確に示すことができました。

包括的なテスト計画では、15 個の各クエリを 355 回実行し、テストサイクルごと 5,325 クエリを生成しました。AI 主導のスケーリングと最適化を行うには複数の反復が必要であり、パターンを特定し RPU を最適化するため、このワークロードを 10 回実行しました。これらの繰り返しを通して、AI は学習し、動作を適応させ、テスト期間中に合計 53,250 クエリを処理しました。

テストでは、AI 主導のスケーリングと最適化システムが、コスト最適化、バランス、パフォーマンス最適化の 3 つの異なる構成プロファイルに対してパフォーマンスを適応させ、最適化する様子が明らかになりました。

クエリと経過時間

同じコアのワークロードを繰り返し実行しましたが、JMeter で変数パラメータを使用して WHERE 句の条件に異なる値を生成しました。このアプローチにより、類似ではあるが異なるワークロードが作成され、システムが実際のシナリオでさまざまなクエリパターンを処理する方法を示す自然な変動が導入されました。

経過時間の分析により、パフォーマンス目標を達成するためにどのような設定にしたのかが示されています。
次のスクリーンショットで、各エンドポイントの平均消費メトリックスが示されています。

結果は期待通りで、パフォーマンス最適化の構成は大幅な高速化を実現し、バランス構成の約 2 倍、コスト最適化の構成の約 4 倍のクエリ実行速度でした。

次のスクリーンショットは、各テストの経過時間の内訳を示しています。

次のスクリーンショットは、10 回目の最終テスト反復で、構成間の明確なパフォーマンスの違いを示しています。

より詳しく説明すると、クエリの経過時間を 3 つのグループに分類しました。

  • 短いクエリー: 10 秒未満
  • 中程度のクエリー: 10 秒以上 10 分未満
  • 長いクエリー: 10 分以上

最後のテストを考慮すると、分析は以下に示す通りです:

構成ごとの期間 コスト最適化 バランス パフォーマンス最適化
短いクエリ (<10 秒) 1488 1743 3290
中程度のクエリ (10 秒 – 10 分) 3633 3579 2035
長いクエリ (>10 分) 204 3 0
合計 5325 5325 5325

構成の容量は、クエリの経過時間に直接影響します。コスト最適化構成では、リソースを制限してコストを節約しますが、その結果クエリ時間が長くなるため、時間的な制約がなく、コスト削減が優先される作業に最適です。バランス構成では、中程度のリソースを割り当てることで、中程度の時間のクエリを効果的に処理し、短いクエリに対しては合理的なパフォーマンスを維持しつつ、長時間実行されるクエリをほぼ排除する中間的な性能を示します。一方、パフォーマンス最適化構成では、多くのリソースを割り当てることで、コストは増加しますが、クエリ結果が高速になるため、クエリの速度が重要な待ち時間に敏感な作業に最適です。

テスト中の使用容量

3 つの構成を比較した結果、Amazon Redshift Serverless の AI 主導のスケーリングと最適化テクノロジーが、ユーザーの期待に応じてリソース割り当てを調整することがわかりました。監視では、ベース RPU の変動はあるものの、構成間で異なるスケーリングパターンが確認されました。パフォーマンスを優先してスケールアップするか、コスト最適化のために RPU を抑えるかが、構成によって異なっていました。

コスト最適化構成は 128 RPU から開始し、3 回のテスト後に 256 RPU に増加します。コスト効率を重視するため、このセットアップではクエリが一時的に溜まった場合でも、スケーリング時の最大 RPU 割り当てを制限します。

次の表では、コスト最適化構成のコストを確認できます。

テスト # 開始時の RPU スケールアップ後の RPU 発生コスト
1 128 1408 $254.17
2 128 1408 $258.39
3 128 1408 $261.92
4 256 1408 $245.57
5 256 1408 $247.11
6 256 1408 $257.25
7 256 1408 $254.27
8 256 1408 $254.27
9 256 1408 $254.11
10 256 1408 $256.15

Amazon Redshift Serverless による戦略的な Redshift Processing Unit (RPU) の割り当てが、コストの最適化に役立つことが、テスト 3 と 4 で観測された大幅なコスト削減から示されています。これは次の図に示されています。

コスト最適化がベース RPU を変更しましたが、バランス構成ではベース RPU は変更されず、2176 RPU にスケールアップしました。これは、コスト最適化設定によって使用された最大値が 1408 RPU を上回っています。次の表は、バランス構成の数値を示しています。

テスト # 開始時の RPU スケールアップ後の RPU 発生コスト
1 192 2176 $261.48
2 192 2112 $270.90
3 192 2112 $265.26
4 192 2112 $260.20
5 192 2112 $262.12
6 192 2112 $253.18
7 192 2112 $272.80
8 192 2112 $272.80
9 192 2112 $263.72
10 192 2112 $243.28

バランス構成は、テストあたり平均 $262.57 かかりましたが、パフォーマンスが大幅に向上し、コスト最適化構成 (テストあたり平均 $254.32) に比べてわずか 3% 高いコストでした。前のセクションで示したように、このパフォーマンス上の利点は経過時間の比較からも明らかです。次のグラフは、バランス構成のコストを示しています。

パフォーマンス最適化の構成から予想されるように、リソースの使用量が高くなり、高パフォーマンスを実現しました。この構成では、2 回のテスト後にエンジンが適応し、より多くの RPU から開始してクエリをより速く処理するようになったことも確認できます。

テスト # 開始時の RPU スケールアップ後の RPU 発生コスト
1 512 2753 $295.07
2 512 2327 $280.29
3 768 2560 $333.52
4 768 2991 $295.36
5 768 2479 $308.72
6 768 2816 $324.08
7 768 2413 $300.45
8 768 2413 $300.45
9 768 2107 $321.07
10 768 2304 $284.93

3 回目のテストで 19% のコストアップがあったものの、その後の大半のテストでは平均コストを下回りました。

パフォーマンス最適化構成は、クエリ時間を短縮することを優先し、コスト効率よりも速度を重視してリソース使用量を最大化します。

費用対効果の最終分析では、説得力のある結果が明らかになりました:

  • バランス構成は、コスト最適化構成に比べてわずか 3.25% のコスト増でパフォーマンスが 2 倍向上しました
  • パフォーマンス最適化構成は、コスト最適化オプションと比較して 19.39% のコスト増で経過時間が 4 分の 1 の時間で実行できました。

次の図は、コストパフォーマンスの調査結果を示しています。

これらの結果は特定のテストシナリオを反映していることに注意が必要です。各ワークロードには固有の特性があり、構成間のパフォーマンスとコストの違いは、他のユースケースでは大きく異なる可能性があります。
当社の調査結果は一般的な基準というよりは参考値として提示するものです。また、Amazon Redshift Serverless で利用可能な中間の 2 構成(コスト最適化とバランスの間、バランスとパフォーマンス最適化の間)はテストしていません。

結論

テスト結果は、さまざまなワークロード要件に対する Amazon Redshift Serverless の AI 駆動型スケーリングと最適化の有効性を示しています。この結果は、Amazon Redshift Serverless の AI 駆動型スケーリングと最適化が、組織がコストとパフォーマンスの理想的なバランスを見つけるのに役立つことを示唆しています。ただし、テスト結果は参考程度にすぎません。各組織は特定のワークロード要件とコストパフォーマンス目標を評価する必要があります。5 つの異なる最適化プロファイルの柔軟性と、インテリジェントなリソース割り当てを組み合わせることで、チームはデータウェアハウス運用を最適な効率で細かく調整できます。

Amazon Redshift Serverless の AI によって自動的に行われるスケーリングと最適化を開始するには、次のことをお勧めします。

  1. 現在の価格とパフォーマンスのベースラインを確立する
  2. ワークロードのパターンと要件を特定する
  3. 特定のワークロードでさまざまな最適化方法をテストする
  4. 結果に基づいて監視と調整を行う

これらの機能を活用することで、組織は特定のパフォーマンスとコスト目標を達成しながら、リソースをより効率的に活用できます。

AWS マネジメントコンソールにアクセスして、今すぐ Amazon Redshift Serverless の AI 主導のスケーリングと最適化機能を作成し、さまざまな最適化プロファイルを探索してみてください。詳細については、Amazon Redshift Serverless の AI 主導のスケーリングと最適化に関するドキュメントをご覧いただくか、AWS アカウントチームにお問い合わせいただき、ご利用のユースケースについてご相談ください。

著者について

Ricardo Serafim は、AWS のシニアアナリティクス専門ソリューションアーキテクトです。2007 年からデータウェアハウスソリューションの支援を行っています。

Milind Oke は、ニューヨークを拠点とするデータウェアハウス専門のソリューションアーキテクトです。15 年以上にわたってデータウェアハウスソリューションを構築しており、Amazon Redshift に特化しています。

Andre Hass は、AWS の Senior Technical Account Manager で、AWS のデータ分析ワークロードに特化しています。20 年以上のデータベースとデータ分析の経験を持ち、お客様のデータソリューションの最適化と複雑な技術的課題の解決を支援しています。データの世界に没頭していないときは、アウトドアアドベンチャーに情熱を注いでいます。週末や機会があれば、家族とキャンプ、ハイキング、新しい目的地を探索することを楽しんでいます。

翻訳は、ソリューションアーキテクトの平井が担当しました。原文はこちらです。