Amazon Web Services ブログ

Amazon Redshift の新しい一時停止/再開アクションでコストを削減



今日の分析ワークロードには通常、24 時間年中無休で利用できるデータウェアハウスが必要ですが、Amazon Redshift クラスターが高頻度 (または低頻度) 間隔で短時間しか必要ない場合があるかもしれません。たとえば、定期的なETL ジョブを実行する、またはクラスターをテストと開発に使用して、勤務時間外や週末には使用しないなどです。こういった場合、データウェアハウスを短時間だけ起動して実行する簡単な方法があればよいと思うでしょう。これまでは、バックアップを作成し、クラスターを停止して、スナップショットからクラスターを復元することでこれを実行することができました。Amazon Redshift の一時停止と再開の各アクションは、課金を停止するためのよりシンプルな方法で、Amazon Redshift が定期的に 1 回数時間単位で停止される場合のために設計されています。

クラスターを一時停止するとコンピューティングが停止されますが、基盤となるデータ構造とデータは維持されるので、後ほどデータを喪失することなくクラスターを再開できます。これは Amazon Redshift コンソールで、または Amazon Redshift CLI を使って設定できます。

クラスターが一時停止されると、料金はクラスターのストレージにしか発生しません。オンデマンドコンピューティングの課金は停止され、秒単位で再開されます。一時停止されたクラスターは、引き続きコンソールにエントリとして表示されます。一時停止と再開のアクションは、運用ニーズに適したスケジュールを使用して自動化することもできます。

Amazon Redshift コンソールを使ったアクションの使用

Amazon Redshift コンソールで一時停止および再開アクションを使用するには、以下の手順を実行してください。

  1. Amazon Redshift コンソールで [クラスター] を選択します。
  2. 目的のクラスターを選択します。
  3. [アクション] を選択します。
  4. [Pause] を選択します。
  5. クラスターをいつ一時停止するかを決定するには、次の 3 つのオプションから選択します。
    • クラスターを直ちに一時停止するには、[Pause now] を選択します。
    • クラスターを後で一時停止するには、[Pause later] を選択します。
    • 設定されたスケジュールに従ってクラスターを一時停止し、再開するには [Pause and resume on schedule] を選択します。
  6. このチュートリアルでは Pause now を選択します。
  7. [Pause now] を選択します。

クラスターが Modifying ステータスになります。クラスターが Paused 状態に変更されるまでには最大数分かかる場合がありますが、コンピューティングリソースの料金発生は直ちに停止されます。

以下のスクリーンショットは、クラスターステータスのビューです。

Amazon Redshift は、クラスターを一時停止する前に未処理のクエリをすべて処理します。クラスターは、一時停止されても引き続き Amazon Redshit コンソールで表示でき、[Resume] アクションを使用できます。

クラスターを再開するには、以下の手順を実行してください。

  1. Amazon Redshift コンソールで [クラスター] を選択します。
  2. 目的のクラスターを選択します。
  3. [アクション] を選択します。
  4. [Resume] を選択します。
  5. クラスターをいつ再開するかを選択します。オプションは一時停止アクションのものと同じです。
  6. このチュートリアルでは Resume now を選択します。
  7. [Resume now] を選択します。

クラスターが Modifying ステータスになります。再開アクションの完了にかかる時間は、データとクラスターのサイズに応じて異なります。課金はクラスターが使用可能になってからしか再開されません。

以下のスクリーンショットは、クラスターステータスのビューです。

CLI を使ったアクションの使用

以下の 2 つのコマンドはクラスターを一時停止し、再開します。

  • Pause-cluster
  • Resume-cluster

所定のクラスターを一時停止するには、次のコードを入力します。

aws redshift pause-cluster --cluster identifier <insert cluster identifier here>

一時停止されたクラスターを再開するには、次のコードを入力します。

aws redshift resume-cluster --cluster identifier <insert cluster identifier here>

一時停止/再開アクションスケジュールの作成

クラスターは、1 日、または週の特定の時間に一時停止して再開するようにスケジュールすることが可能です。たとえば、このチュートリアルはクラスターを金曜日の午後 8 時に一時停止し、月曜日の午前 7 時に再開します。これは、Amazon Redshift コンソールまたは API を使って設定できます。

Amazon Redshift コンソールを使ったスケジュールの作成

Amazon Redshift コンソールでクラスターの一時停止と再開をスケジュールするには、以下の手順を実行してください。

  1. Amazon Redshift コンソールで [クラスター] を選択します。
  2. 目的のクラスターを選択します。
  3. [アクション] を選択します。
  4. [Pause] を選択します。
  5. [Pause and resume on schedule] を選択します。
  6. [Schedule name] にこのスケジュールの名前を入力します。
  7. オプションで、[Starts on] と [Ends on] にスケジュールを開始し、終了する日付と時間を入力します。
  8. [Pause every] と [Resume every] には、一時停止、および再開する時間と曜日を選択します。
  9. [Schedule recurring pause and resume] を選択します。

既存の一時停止および再開のスケジュールは、[Schedules] タブで確認できます。以下のスクリーンショットを参照してください。

CLI を使用したスケジュールの作成

以下の CLI コマンドでは、スケジュールされた一時停止および再開タスクを作成、変更、および削除することができます。

一度だけ実行される予定アクションを作成するには、次のコードを入力します。

aws redshift create-scheduled-action --scheduled-action-name test-resume --schedule "at(2020-02-21T02:00:00)" --target-action "{\"ResumeCluster\":{\"ClusterIdentifier\":\"redshift-cluster-1\"}}" --iam-role arn:aws:iam::<Account ID>:role/<Redshift Role>

反復される予定アクションを作成するには、次のコードを入力します。

aws redshift create-scheduled-action --scheduled-action-name "scheduled-pause-repetitive" --target-action "{\"PauseCluster\":{\"ClusterIdentifier\":\"redshift-cluster-1\"}}" --schedule "cron(30 20 * * ? *)" --iam-role "arn:aws:iam::<Account ID>:role/<Redshift Role>"

上記のコード例は、毎日午後 10:30 にクラスターを一時停止します。

既存の予定アクションを変更するには、次のコードを入力します。

aws redshift modify-scheduled-action --scheduled-action-name "scheduled-pause-repetitive" --schedule "cron(30 * * * ? *)"

上記のコード例は、毎時 30 分に実行するように scheduled-pause-repetitive スケジュールを変更します。

予定アクションを削除するには、次のコードを入力します。

aws redshift delete-scheduled-action --scheduled-action-name "scheduled-pause-repetitive"

まとめ

Amazon Redshift の一時停止および再開アクションを使うと、常に稼働していないクラスターを簡単に一時停止し、再開することができます。柔軟なオンデマンド料金と秒単位の課金は、クラスターのコストをより良くコントロールできるようにしてくれます。ユーザーは、前もって一定量のリソースを購入する必要なく、可能な限り低いコストでデータウェアハウスを実行することができます。Amazon Redshift は、一時停止および再開といったさらなる拡張機能を絶えず追加していくことによって、データウェアハウスユーザーのために水準を引き上げ続けており、ユーザーがより低いコストでデータをより良く活用できるようにします。

 


著者について

Sain Das は、AWS のデータウェアハウススペシャリストソリューションアーキテクトです。