[アップデート] Redshift クラスターで一時停止と再開が利用できるようになりました!

Redshiftに神アップデートが来た
2020.03.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

「これは神アップデートやないか!」

ということで、本日のアップデートで、遂に Redshift の一時停止が可能となりました!やったね!!

何が嬉しいのか

これまで Redshift は一時停止がサポートされていなかったので、検証環境や、夜間などクラスターを利用しない期間のコストを抑えるにはスナップショットを取得したうえでクラスターを削除し、利用を再開する際にスナップショットからリストアするといった仕組みをユーザー側で実装する必要がありました。正直、面倒くさいですね・・・。

今回のアップデートによって、クラスターを削除することなく一時停止、再開がサポートされましたのでこれまでよりも運用コストと実装する手間をかなり削減出来ることかと思います!

また、手動による一時停止、再開だけでなく、標準機能でスケジュールできるのも嬉しいポイントかと思います!

Redshift 料金

執筆時点の東京リージョンにおける Redshift クラスターの料金(時間あたり)は下記のとおりです。

クラスタータイプ 料金(/時間/ノード)
dc2.large $0.314
dc2.8xlarge $6.095
ds2.xlarge $1.19
ds2.8xlarge $9.52
ra3.16xlarge $15.347

ノードあたりの時間単価 x 停止時間 x ノード数分のコストがカットできるのですから、是非、今回のアップデートを活用しましょう!

ざっくりシミュレーション

ざっくりですが、各クラスタータイプを 2 ノードで利用している場合に、夜間 8 時間停止した場合の 1 ヶ月(720h換算)のコストシミュレーションです。

クラスタータイプ 停止なし 夜間8時間停止 差額
dc2.large $452.16 $301.44 -$150.72
dc2.8xlarge $8776.8 $5851.2 -$2925.6
ds2.xlarge $1713.6 $1142.4 -$571.2
ds2.8xlarge $13708.8 $9139.2 -$4569.6
ra3.16xlarge $22099.68 $14733.12 -$7366.56

注意点

  • クラスターの停止しても、ストレージ料金は課金されます
  • 以下の種類のクラスターは一時停止できません
    • EC2 Classic クラスター
    • Active ではないクラスター(たとえば Modifying の状態など)
    • HSM クラスター
    • 自動スナップショットが無効になっているクラスター

公式ガイドを読むかぎり、RDS のように 7 日間後に自動起動する、といった制約は見当たりませんでした。

やってみる

手動による一時停止

Redshift の管理コンソールを開き、対象のクラスターを選択。[Actions] のメニューをみると [Pause] が追加されていますね。停止は以下の 3 パターンで指示できるようです。

  • Pause now
  • Pause later
  • Pause and resume on schedule

まずは Pause now で実行してみます。

しばらく待つと・・・

停止できましたね!クラスターサイズによって異なるとは思いますが、検証環境だと、10分〜15分程度で停止することが出来ました!

手動による再開

次は再開を試してみたいと思います。[Actions] - [Resume] を開きます。再開も以下の 3 パターンで指示できるようです。

  • Resume now
  • Resume later
  • Resume and pause on schedule

今回も Resume now で実行してみます。

しばらく待つと・・・

再開されて Active になりました!これもクラスターサイズによって異なるとは思いますが、検証環境だと5分程度で再開することが出来ました。

その他のメニューも確認

Puase later

その他の停止パターンもメニューだけ、さらっと見てみましょう。まずは Puase later です。

Pause time で特定日時に一時停止を実行できるようになっています。

[Scheduler permissions] で指定する IAM ロールは、ユーザーに変わって scheduler.redshift.amazonaws.com がクラスターを操作できるように、信頼関係ポリシーを設定した IAM ロールが必要です。

このあたりは、Resize のスケジュール指定時と同じですね。詳しくは公式ガイドを参照ください。

Pause and resume on schedule

次にスケジュール指定です。

まず、Starts onEnds on でスケジュールの有効期限を指定できます。

次に Editor で日次、週次、月次 でメニューが変わります。

Day

Week

Month

Cron syntax

Editor 以外にも Cron syntax で指定することも可能です。

スケジュールされているものはクラスターの [Schedule] タブを開き、[Pause and resume schedules] の欄で確認できます。

簡単ではありますが、確認は以上です。

さいごに

これまで検証環境など、利用しない期間はクラスター削除してコスト削減する運用をされていたかと思いますが、今回のアップデートで本当にお手軽に停止/再開を実装できるようになりました。

スケジュールによる停止/再開も標準機能として提供されていますので、是非とも活用いただき、無駄なコストはどんどん削減し、浮いたコストは価値を産む部分に投資していきましょう!

以上!大阪オフィスの丸毛(@marumo1981)でした!

関連記事

CLI で実施する場合は、以下のエントリーを参考にしてください。