type
status
date
slug
summary
tags
category
icon
password
理論
Amazon Redshift のスケーリングと負荷対策
Amazon Redshift を使っていると、突然クエリが増えてCPU使用率が高くなることがあります。そのような場合に役立つ機能や対策をまとめました。
1. スケーリングの方法
Redshift は、負荷が増えた時にリソースを増やして対応できます。以下の3つが主な方法です:
- クラシックリサイズ (Classic Resize)
- クラスター全体のサイズを変える方法。
- 特徴: 大規模な変更ができるが、時間がかかり、その間クラスターが停止する。
- 適している場面: 長期的にリソースを増やしたい時。
- エラスティックリサイズ (Elastic Resize)
- クラスターを停止せずに素早くリソースを増やす方法。
- 特徴: 迅速だが、急激な負荷増加に完全には追いつけない場合がある。
- 適している場面: 一時的にリソースを増やしたい時。
- Concurrency Scaling (同時実行スケーリング)
- クエリが増えた時だけ、自動で追加リソースを使う機能。
- 特徴: 必要な時にだけ課金され、コスト効率が良い。クエリが減ると自動でリソースを解放。
- 適している場面: 短時間のクエリ集中に対応したい時。
2. CPU負荷が高い時の対策
- クエリを最適化する
- 無駄な結合や計算を減らす。
- データを事前に整理(ETL)する。
- 外部サービスで処理を分散する
- Amazon EMR や AWS Glue で、Redshift 以外のサービスに負荷を分ける。
- モニタリングと自動化
- Amazon CloudWatch でCPU使用率を監視し、閾値を超えたら通知やリサイズを自動化する。
3. コストを抑える方法
- ピーク時だけリソースを増やす
- Concurrency Scaling を使えば、必要な時だけリソースが追加され、コストを抑えられる。
- 長期利用ならリザーブドノードを使う
- 長期間使う場合、予約購入することで割引を受けられる。
4. ベストな選択肢
- 短期的な負荷増加には Concurrency Scaling が最適。
- 自動対応で、常にクエリを処理しながらコストも抑えられる。
- 長期的な需要増加には Elastic Resize や リザーブドノード を検討。
これらを活用すれば、Redshift のパフォーマンスを維持しつつ、コスト効率を最大化できます!
実践
略
一問道場
質問 #305
トピック 1
あるデータ分析会社が、いくつかのリザーブドノードで構成される Amazon Redshift クラスターを使用しています。このクラスターでは、従業員チームが詳細な監査分析レポートを作成しているため、予期しない使用量の急増が発生しています。このレポートを生成するクエリは複雑な読み取りクエリであり、CPU 集中型です。
ビジネス要件として、クラスターは常に読み取りおよび書き込みクエリに対応できる必要があります。
ソリューションアーキテクトは、この急増する使用量に対応するための最もコスト効率の良いソリューションを考案する必要があります。
どのソリューションがこれらの要件を最もコスト効率よく満たしますか?
選択肢:
A. Amazon EMR クラスターをプロビジョニングし、複雑なデータ処理タスクをオフロードする。
B. AWS Lambda 関数をデプロイし、Amazon CloudWatch でクラスターの CPU メトリクスが 80% に達した際に、クラシックリサイズ操作を使用して Amazon Redshift クラスターに容量を追加する。
C. AWS Lambda 関数をデプロイし、Amazon CloudWatch でクラスターの CPU メトリクスが 80% に達した際に、エラスティックリサイズ操作を使用して Amazon Redshift クラスターに容量を追加する。
D. Amazon Redshift クラスターの Concurrency Scaling 機能をオンにする。
解説
この問題は、Amazon Redshift クラスターで発生する急激な使用量の増加にどのように対応するかを問うものです。要件を満たすために、以下のポイントを考慮して選択肢を評価します。
要件の整理
- 常時対応: クラスターは、読み取りクエリと書き込みクエリを常にサービスできる必要があります。
- コスト効率: ソリューションは、コスト効率が高い必要があります。
- 負荷対応: CPU 使用率が急上昇する場合、対応する仕組みが必要です。
選択肢の評価
A. Amazon EMR クラスターをプロビジョニングし、複雑なデータ処理タスクをオフロードする。
- メリット: EMR は複雑なデータ処理に適しており、Redshift の負荷を軽減できます。
- デメリット: 新しい EMR クラスターの設定と管理には時間とコストがかかります。また、読み取り/書き込みクエリを同時に処理するという要件には完全には適合しません。
- 評価: 必要以上のリソースを投入するため、コスト効率が低い。
B. AWS Lambda 関数を使用して、クラシックリサイズ操作で容量を追加する。
- メリット: クラスターに容量を追加することで、使用量の増加に対応できます。
- デメリット: クラシックリサイズ操作は時間がかかり、クラスターが一時的にオフラインになる場合があります。常時対応の要件に違反する可能性があります。
- 評価: 要件に合致せず、不適切。
C. AWS Lambda 関数を使用して、エラスティックリサイズ操作で容量を追加する。
- メリット: エラスティックリサイズは、クラスターを停止せずに迅速に容量を拡張できます。
- デメリット: Lambda を用いた自動化には設計と管理のコストがかかります。また、急激な使用量の増加を即座に処理できるわけではありません。
- 評価: ある程度の柔軟性があるが、コスト効率の面で最適解ではない。
D. Amazon Redshift クラスターの Concurrency Scaling 機能をオンにする。
- メリット: Concurrency Scaling は、クラスターのスケーリングを自動的に行い、読み取りクエリの処理能力を動的に増加させます。この機能は必要な場合にのみ料金が発生するため、コスト効率が高いです。また、クラスターは停止しないため、常時対応の要件を満たします。
- デメリット: Concurrency Scaling は、主に読み取りクエリに対応します。書き込み負荷が大幅に増加した場合には対処できません。
- 評価: このユースケースでは、最もコスト効率が高く、要件を満たしています。
正解: D. Amazon Redshift クラスターの Concurrency Scaling 機能をオンにする。
理由:
Concurrency Scaling は、必要な場合にのみスケーリングし、クエリのパフォーマンスを維持しながらコストを最小限に抑えます。また、読み取り/書き込みクエリの同時処理を妨げることもありません。このため、最適な選択肢となります。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/175d7ae8-88e2-8021-a6ab-df3344efb788
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章