LoginSignup
2
0

More than 1 year has passed since last update.

Redshift Serverlessの使用制限を使ってみた

Last updated at Posted at 2022-09-24

Redshift Serverlessの使いすぎを防ぐべく、使用制限を使って利用料の監視をしました。
1日あたり$2以上使った場合はSNSトピックに通知するという設定をして、動作確認をしてみました。

使用制限の設定

マネジメントコンソールで設定する場合、Amazon Redshift サーバーレス→ワークグループの設定→ワークグループ名→制限→使用制限を管理→Redshift 処理ユニット (RPU) の最大数→制限を追加から設定します。
設定画面で入力するのは以下4点です。

  • 頻度:どのスパンで利用料を計算するか指定します。[毎日/ 毎週 / 毎月]から選択します。
  • 使用制限 (時間):RPU hourの閾値を入力します。計算方法は後ほど記載します。
  • アクション:閾値を超えた場合のアクションを指定します。[アラート / システムテーブルへのログ / ユーザークエリを無効にする]のいずれかから選択します。
  • SNSトピック:アクションで[アラート / ユーザークエリを無効にする]のどちらかを選択した場合、通知先を指定します。
    image.png

設定を保存するとこのように制限IDが発行され、裏ではCloudWatchアラームが作成されていました。
1.png
2.png

閾値の計算方法

前提条件

  • 今回検証に利用するRedshift ServerlessのベースRPU容量は128
    image.png
  • Redshift Serverlessの東京リージョンの利用料は$0.494(RPU hour)
  • $2以上使ったらアラートを飛ばしたい

60秒以内のクエリ1回あたりの料金

  • Serverlessの1秒あたりの料金: 0.494(RPU hour) / 60 / 60 * 128 = $0.01756444
  • クエリは60秒未満は切り上げのため、1回あたり60秒とする。
  • 0.01756444 * 60 = $1.05386667

金額から閾値(使用制限 (時間))を計算する

x (RPU hour) * 0.494 (USD/RPU hour) = 2 (USD)
x = 4.048584(RPU hour)

ただし、使用制限 (時間)には整数しか指定できないので、4と設定します。

通知が来るか確認する

Redshift Serverlessでselect 1を2回実行してみます。
select 1はシンプルなクエリで60秒以内に実行できるので1回あたり約$1です。2回実行すれば通知が来るはずです。

1回目を実行して5分ほど待ったらCloudWatchアラームのグラフがこのようになっていました。
3.png

1回目のクエリから5分ほど間をあけて2回目実行したところ、UsageLimitAvailableが0になり、無事SNSトピックのサブスクリプションに含まれるメールアドレスに通知が来ました!
4.png
5.png

おまけ

クエリを実行した時間帯のリソースのモニタリングがどうなっているかも確認しました。

image.png
image.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0