Amazon Redshift Serverless でのクエリとワークロードのモニタリング
Amazon Redshift Serverless でのクエリとワークロードのモニタリング
提供されたシステムビューを使用して、Amazon Redshift Serverless のクエリとワークロードをモニタリングできます。
クエリをモニタリングするためのアクセス権の付与
スーパーユーザーは、スーパーユーザーではないユーザーにアクセス権を提供して、これらのユーザーがすべてのユーザーに対するクエリモニタリングを実行できるようにすることが可能です。まず、クエリモニタリングのアクセス権を提供するためのポリシーをユーザーまたはロールに追加します。次に、ユーザーまたはロールにクエリモニタリング許可を付与します。
クエリモニタリングポリシーを追加する
https://console.aws.amazon.com/iam/
を選択します。 [Access management] (アクセス管理) で、[Policies] (ポリシー) を選択します。
[Create Policy] (ポリシーの作成) を選択します。
[JSON] を選択して、以下のポリシー定義を貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListDatabases" ], "Resource": "*" }, { "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": "*" } ] }
[Review policy] (ポリシーの確認) を選択します。
[Name] (名前) にポリシーの名前を入力します (例:
query-monitoring
)。[Create policy] を選択します。
ポリシーを作成したら、適切なアクセス許可を付与できます。
アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
-
AWS IAM Identity Center のユーザーとグループ:
アクセス許可セットを作成します。「AWS IAM Identity Center ユーザーガイド」の「権限設定を作成する」の手順に従ってください。
-
IAM 内で、ID プロバイダーによって管理されているユーザー:
ID フェデレーションのロールを作成します。詳細については、「IAM ユーザーガイド」の「サードパーティー ID プロバイダー (フェデレーション) 用のロールの作成」を参照してください。
-
IAM ユーザー:
-
ユーザーが担当できるロールを作成します。手順については、「IAM ユーザーガイド」の「IAM ユーザー用ロールの作成」を参照してください。
-
(お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加する。詳細については、「IAM ユーザーガイド」の「ユーザー (コンソール) へのアクセス権限の追加」を参照してください。
-
ユーザーにクエリモニタリング許可を付与する
sys:monitor
許可を持つユーザーは、すべてのクエリを表示できます。さらに、sys:operator
許可を持つユーザーは、クエリのキャンセル、クエリ履歴の分析、およびバキューム操作を実行することができます。
以下のコマンドを入力して、システムモニタリングのアクセス権を提供します。user-name は、アクセス権を提供するユーザーの名前です。
grant role sys:monitor to "IAM:user-name";
(オプション) 以下のコマンドを入力して、システムオペレーターのアクセス権を提供します。user-name は、アクセス権を提供するユーザーの名前です。
grant role sys:operator to "IAM:user-name";
ロールにクエリモニタリング許可を付与する
sys:monitor
許可を持つロールが設定されたユーザーは、すべてのクエリを表示できます。さらに、sys:operator
許可を持つロールが設定されたユーザーは、クエリのキャンセル、クエリ履歴の分析、およびバキューム操作を実行することができます。
以下のコマンドを入力して、システムモニタリングのアクセス権を提供します。role-name は、アクセス権を提供するロールの名前です。
grant role sys:monitor to "IAMR:role-name";
(オプション) 以下のコマンドを入力して、システムオペレーターのアクセス権を提供します。role-name は、アクセス権を提供するロールの名前です。
grant role sys:operator to "IAMR:role-name";
ビューのモニタリング
モニタリングビューは、クエリとワークロードの使用状況を監視するために使用する、Amazon Redshift Serverless のシステムビューです。これらのビューは、pg_catalog
スキーマ内にあります。用意されたこのシステムビューは、Amazon Redshift Serverless のモニタリングに必要な情報を提供するように設計されており、プロビジョニングされたクラスタ用のものよりもはるかにシンプルです。SYS システムビューは、Amazon Redshift Serverless のために動作するように設計されています。これらのビューで提供される情報を表示するには、SQL SELECT ステートメントを実行します。
システムビューは、以下のモニタリング対象をサポートするように定義されています。
- ワークロードモニタリング
-
以下の目的で、クエリアクティビティを時間の経過とともにモニタリングします。
ワークロードのパターンを調べて、通常 (ベースライン) とビジネスサービスレベルアグリーメント (SLA) に含まれるものを識別する。
一時的な問題によるか、さらなるアクションの理由ともなり得る、平常状態からの逸脱を迅速に特定する。
- データのロードとアンロードのモニタリング
-
Amazon Redshift Serverless においてのデータの出し入れは重要な機能です。データのロードおよびアンロードには COPY および UNLOAD を使用します。また、ビジネス SLA を遵守するため、転送されたバイト/行および完了したファイルの進捗状況を注意深くモニタリングする必要があります。通常これは、システムテーブルへのクエリを頻繁に (つまり、毎分) 実行して進行状況を追跡し、顕著な逸脱が検出された場合には、調査や是正アクションを促すためのアラートを発生することによって実現します。
- 障害と問題の診断
-
クエリまたはランタイムの障害に対応するために、アクションの実行が必要になる場合があります。デベロッパーは、問題を自己診断し、適切な解決策を決定するために、システムテーブルを利用します。
- パフォーマンスチューニング
-
SLA 要件を満たしていないクエリに対しては、使用開始当初から、あるいは時間の経過とともに性能が低下した際に調整を行う必要があります。調整のためには、実行計画、統計、有効期間、リソース消費量など、ランタイムに関する詳細事項を決定する必要があります。逸脱を起こした原因を特定し、パフォーマンスの改善の方法を探るには、問題のあるクエリにおける基準のデータが必要となります。
- ユーザーオブジェクトでのイベントのモニタリング
-
ユーザーオブジェクトでは、マテリアライズドビューのリフレッシュ、バキュームおよび分析など、アクションやアクティビティをモニタリングする必要があります。これには、マテリアライズドビューの自動更新など、システムが管理するイベントも含まれます。ユーザーが開始したイベントについてはその終了タイミングを、また、システムが開始した場合には最後に正常に実行されたイベントを、それぞれモニタリングします。
- 課金のための使用状況の追跡
-
以下の目的のために、時間の経過に伴う使用状況の傾向変化をモニタリングします。
予算計画ならびに事業の拡大見通しの報告。
コールドデータの削除など、潜在的なコスト削減機会の特定。
Amazon Redshift Serverless をモニタリングするには、SYS システムビューを使用します。SYS モニタリングビューの詳細については、「SYS モニタリングビュー」を参照してください。