[小ネタ]Redshiftクラスターのディスク使用率を取得する

Redshiftのディスク使用率をコマンドラインで取得し、比較的長い期間から、しきい値を超過している時間帯をスクリーニングしてみました。
2021.06.04

はじめに

データアナリティクス事業本部の藤川です。
Redshiftのディスク使用率が一時的に上がる状況が見られました。
すぐに回復するのですが、このまま放置して問題ないとは言い切れません。

CloudWatchでディスク使用率をグラフ表示できるのは便利です。
比較的長い期間から、しきい値を超過している時間帯をスクリーニングしたかったので、コマンドラインで情報を取得してみました。

やってみた

  1. お使いの環境に合わせてコマンドを修正してください。次の情報を準備しておいてください。
    • Redshiftのクラスタ名
    • 開始時刻
    • 終了時刻
    • AWS CLIコマンドのプロフィール情報(--profileオプションに指定する文字列)
  2. コマンドは少々長いですが、お使いの環境の情報に書き換えて実行します。
    この例では、60秒間隔のデータを1時間分取得できます。すなわち、60件分のデータを取得できます。

    aws cloudwatch get-metric-statistics --output json \
        --namespace AWS/Redshift \
        --metric-name PercentageDiskSpaceUsed \
        --dimensions Name=ClusterIdentifier,Value=hogehoge-prd-redshift-cluster \
        --start-time 2021-05-25T00:00:00 \
        --end-time 2021-05-25T01:00:00 \
        --period 60 \
        --statistics Maximum \
        --profile HOGEHOGE \
        | jq -r '.Datapoints[] | [ .Timestamp ,.Maximum ] | @csv' \
        | sort -t ',' -k 1
  3. 実行結果は次のようになります。
    "2021-05-25T00:00:00+00:00",49.3328857421875
    "2021-05-25T00:01:00+00:00",49.3328857421875
    "2021-05-25T00:02:00+00:00",50.49255371093751
    (中略)
    "2021-05-25T00:56:00+00:00",59.18212890625
    "2021-05-25T00:57:00+00:00",49.4525146484375
    "2021-05-25T00:58:00+00:00",51.27197265625
    "2021-05-25T00:59:00+00:00",53.0462646484375

さいごに

RedshiftのRA3ノードはコンピューティングとストレージが分離されたノードタイプです。
ストレージ料金が比較的安価に設定されています。また、Elastic Resizeでリサイズできますので、わずか数分でストレージを追加できます。 足りなくなってから追加できるため、ディスク使用率を気にしながらの運用から開放されそうです。

合わせて読みたい