Amazon Redshift Serverless の監査ログ記録 - Amazon Redshift

Amazon Redshift Serverless の監査ログ記録

Amazon Redshift Serverless を設定することで、接続、ユーザー、およびユーザーアクティビティに関するログデータを、Amazon CloudWatch Logs のロググループにエクスポートできます。Amazon CloudWatch Logs を使用すると、ログデータのリアルタイム分析や、CloudWatch を使用したアラームの作成、メトリクスの表示を行うことができます。CloudWatch Logs を使用して、非常に耐久性が高いストレージにログレコードを格納できます。

Amazon Redshift コンソールで CloudWatch アラームを作成して、メトリクスを追跡できます。アラームの作成の詳細については、「アラームの管理」を参照してください。

生成されたログデータを Amazon CloudWatch Logs にエクスポートするには、コンソールの Amazon Redshift Serverless 設定で、エクスポート対象のログを選択する必要があります。これを行うには、[セキュリティと暗号化][名前空間の設定] を選択します。

CloudWatch でのログイベント

エクスポートする Redshift ログを選択すると、Amazon CloudWatch Logs でイベントをモニタリングできるようになります。Amazon Redshift Serverless のための新しいロググループが自動的に作成されます。ここで log_type はログタイプを表します。

/aws/redshift/<namespace>/<log_type>

最初のワークグループと名前空間を作成するときのデフォルトは、名前空間名です。ロググループ名は、名前空間の名前によって異なります。

例えば、接続ログをエクスポートする場合、ログデータは次のロググループに保存されます。

/aws/redshift/default/connectionlog

ログイベントをロググループに対しエクスポートする際には、サーバーレスログストリームが使用されます。この場合の動作は、次の条件のうちのどれが true であるかによって異なります。

  • 指定された名前のロググループが存在する。Redshift は、既存のロググループを使用してログデータをエクスポートします。事前定義されたログ保持期間、メトリクスフィルター、カスタムアクセスを持つロググループを作成するために、AWSCloudFormation で提供されているものをはじめとした自動設定機能を使用できます。

  • 指定された名前のロググループが存在しない。対称となるログエントリがインスタンスのログで検出されると、Amazon Redshift Serverless は自動的に、Amazon CloudWatch Logs 内で新しいロググループを作成します。このロググループは、デフォルトの失効なしのログ保持期間を使用します。ログの保持期間を変更するには、Amazon CloudWatch Logs コンソール、AWS CLI、または Amazon CloudWatch Logs API を使用します。CloudWatch Logs でログの保持期間を変更する方法については、「ロググループとログストリームの操作」の「CloudWatch Logs でログデータ保管期間を変更する」を参照してください。

ログイベント内で情報を検索するには、Amazon CloudWatch Logs コンソール、AWS CLI、または Amazon CloudWatch Logs API を使用します。検索およびログデータのフィルタ処理の詳細については、「ログデータの検索およびフィルタ処理」を参照してください。

CloudWatch メトリクス

Amazon Redshift Serverless メトリクスは、コンピューティングメトリクス、データ、ストレージメトリクスに分割され、それぞれワークグループディメンションセットと名前空間ディメンションセットに分類されます。ワークグループおよび名前空間の詳細については、「ワークグループと名前空」を参照してください。

CloudWatch のコンピューティングメトリクスは以下のとおりです。

メトリクス名 単位 説明 ディメンションのセット
QueriesCompletedPerSecond クエリ件数 1 秒ごとに完了したクエリの数。 {Database, LatencyRange, Workgroup}, {LatencyRange, Workgroup}
QueryDuration マイクロ秒 クエリを完了するまでの平均時間。 {Database, LatencyRange, Workgroup}, {LatencyRange, Workgroup}
QueriesRunning クエリ件数 ある時点における実行中のクエリの数。 {Database, QueryType, Workgroup}, {QueryType, Workgroup}
QueriesQueued クエリ件数 ある時点におけるキュー内のクエリの数。 {Database, QueryType, Workgroup}, {QueryType, Workgroup}
DatabaseConnections 接続の数 ある時点におけるデータベースへの接続の数。 {Database, Workgroup}, {Workgroup}
QueryRuntimeBreakdown ミリ秒 クエリステージごとの、クエリが実行された合計時間。 {Database, Stage, Workgroup}, {Stage, Workgroup}
ComputeCapacity RPU 過去 30 分間に割り当てられたコンピューティングユニットの、最も近い整数に切り上げられた平均数。 {Workgroup}
ComputeSeconds RPU 秒 過去 30 分間に使用されたコンピューティングユニットの累積秒数。 {Workgroup}
QueriesSucceeded クエリ件数 過去 5 分間に成功したクエリの数。 {Database, QueryType, Workgroup}, {QueryType, Workgroup}
QueriesFailed クエリ件数 過去 5 分間に失敗したクエリの数。 {Database, QueryType, Workgroup}, {QueryType, Workgroup}
UsageLimitAvailable RPU 時間または TB

UsageType に応じて、UsageLimitAvailable は次の値を返します。

  • UsageType が SERVERLESS_COMPUTE の場合、UsageLimitAvailable は、ワークグループが指定した制限内でクエリできる RPU 時間の残り数を返します。

  • UsageType が CROSS_REGION_DATASHARING の場合、UsageLimitAvailable は、指定された制限内でお客様がスキャンできる残りの TB 数を返します。

{UsageLimitId, UsageType, Workgroup}
UsageLimitConsumed RPU 時間または TB

UsageType に応じて、UsageLimitConsumed は次の値を返します。

  • UsageType が SERVERLESS_COMPUTE の場合、UsageLimitConsumed は、指定された制限内でワークグループが既にクエリした RPU 時間数を返します。

  • UsageType が CROSS_REGION_DATASHARING の場合、UsageLimitConsumed は、指定された制限内でお客様がスキャンに既に使用した TB 数を返します。

{UsageLimitId, UsageType, Workgroup}

CloudWatch のデータおよびストレージメトリクスは以下のとおりです。

メトリクス名 単位 説明 ディメンションのセット
TotalTableCount テーブルの数 ある時点での既存のユーザーテーブルの数。この合計には Amazon Redshift Spectrum テーブルは含まれません。 {Database, Namespace}
DataStorage Megabytes Redshift データにディスクまたはストレージ領域で使用されるメガバイト数。 {Namespace}

SnapshotStorage メトリクスは名前空間およびワークグループに依存しません。CloudWatch の SnapshotStorage メトリクスを示します。

メトリクス名 単位 説明 ディメンションのセット
SnapshotStorage Megabytes ディスクまたはストレージ領域でスナップショットに使用されているメガバイト数。 {}

ディメンションのセットは、メトリクスに適用されるグループ化ディメンションです。これらのディメンショングループを使用して、統計の取得方法を指定できます。

以下は、特定のメトリクスに対するディメンションとディメンション値を詳しく説明した表です。

ディメンション 説明と値
DatabaseName データベースの名前。カスタム値。
Latency

可能な値は以下のとおりです。

  • Short – 10 秒未満

  • medium – 10 秒~10 分

  • Long – 10 分超過

QueryType 指定できる値は INSERTDELETEUPDATEUNLOADLOADSELECTCTAS、および OTHER です。
stage

クエリの実行ステージ。可能な値は以下のとおりです。

  • QueryPlanning: SQL ステートメントの解析と最適化にかかった時間。

  • QueryWaiting: WLM キューの待機にかかった時間。

  • QueryExecutingRead: 読み込みクエリの実行にかかった時間。

  • QueryExecutingInsert: 挿入クエリの実行にかかった時間。

  • QueryExecutingDelete: 削除クエリの実行にかかった時間。

  • QueryExecutingUpdate: 更新クエリの実行にかかった時間。

  • QueryExecutingCtas: テーブル作成クエリの実行にかかった時間。

  • QueryExecutingUnload: アップロードクエリの実行にかかった時間。

  • QueryExecutingCopy: コピークエリの実行にかかった時間。

  • QueryCommit: コミットにかかった時間。

Namespace 名前空間の名前 カスタム値。
Workgroup ワークグループの名前。カスタム値。
UsageLimitId 使用制限の識別子。
UsageType

制限される Amazon Redshift Serverless 機能。可能な値は以下のとおりです。

  • SERVERLESS_COMPUTE

  • CROSS_REGION_DATASHARING