[小ネタ]Redshiftクラスターのディスク使用率を取得する
Redshiftのディスク使用率をコマンドラインで取得し、比較的長い期間から、しきい値を超過している時間帯をスクリーニングしてみました。
はじめに
データアナリティクス事業本部の藤川です。
Redshiftのディスク使用率が一時的に上がる状況が見られました。
すぐに回復するのですが、このまま放置して問題ないとは言い切れません。
CloudWatchでディスク使用率をグラフ表示できるのは便利です。
比較的長い期間から、しきい値を超過している時間帯をスクリーニングしたかったので、コマンドラインで情報を取得してみました。
やってみた
- お使いの環境に合わせてコマンドを修正してください。次の情報を準備しておいてください。
- Redshiftのクラスタ名
- 開始時刻
- 終了時刻
- AWS CLIコマンドのプロフィール情報(
--profile
オプションに指定する文字列)
- コマンドは少々長いですが、お使いの環境の情報に書き換えて実行します。
この例では、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
- 実行結果は次のようになります。
"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
でリサイズできますので、わずか数分でストレージを追加できます。
足りなくなってから追加できるため、ディスク使用率を気にしながらの運用から開放されそうです。