Redshiftのメンテナンスウィンドウ時間帯にRedshiftが停止していた場合の挙動

この記事を書いたメンバー:

平野 真弓

Redshiftのメンテナンスウィンドウ時間帯にRedshiftが停止していた場合の挙動

目次

Redshiftのメンテナンストラックの種類を変更しようとしたところ、想定外の挙動をしたことがありました。メンテナンストラックの種類の更新はメンテナンスウィンドウ中に実行されるものだと思っていたのですが、なぜかメンテナンスウィンドウ予定日の後もメンテナンストラックの種類は変わらず、しかしクラスターのバージョンは上がるという事象が発生しました。Redshiftのメンテナンスウィンドウの仕様が気になったので、調査しました。

前提条件

  • Redshiftクラスターは構築済みで、クラスターバージョンは1.0.51296(2023/6/29時点)。
  • メンテナンストラックの種類はTrailingになっている。
  • メンテナンスウィンドウの時間は日曜日1:00-1:30(JST)。
  • Redshiftクラスターは平日8:00-20:00(JST)以外は停止させている。

実現したいこと

構築済みのRedshiftクラスターのメンテナンストラックをTrailingからCurrentに変更したいと考えていました。

そのためマネジメントコンソールから以下のようにメンテナンストラックの種類を変更しました。

設定変更前

設定変更

「メンテナンストラックへの変更は、今後のメンテナンスウィンドウで Amazon Redshift クラスターに適用されます。」という注意書きがあるため、次の日曜日1:00に変更が反映されるようです。

設定変更後

マネジメントコンソールで見たところ、メンテナンストラックの種類はTrailingのままです。

しかしAWS CLIで「aws redshift describe-clusters --cluster-identifier クラスター識別子」を実行したところ、PendingModifiedValuesという項目が「"MaintenanceTrackName": "current"」になっていました。また、NextMaintenanceWindowStartTimeは次の日曜日である「"2023-07-01T16:00:00+00:00"」になっています。

これで次回メンテナンスウィンドウ予定日である7月2日(日)の2:00には変更が反映されていると思っていました。

発生した事象

設定変更の後、しばらく放置して7月12日(水)に設定を確認したところ、メンテナンストラックの種類はTrailingのままで、Pending maintenance trackがCurrentになっていました。また、NextMaintenanceWindowStartTimeは次の日曜日である「"2023-07-15T16:00:00+00:00"」になっています。

しかし、Redshiftのバージョンは1.0.53064に上がっています。

バージョンが上がった = メンテナンスウィンドウの時間帯に予定されたアクションも実行されたと考えたのですが、なぜメンテナンストラックの変更が反映されなかったのでしょう・・・?

原因

結論から言うと、Redshiftクラスター停止中は、クラスターのメンテナンスを含むスケジュールされたアクションが実行されないからでした。

公式ドキュメントに以下の記載がありました。

一時停止したクラスターを変更することはできません。クラスターでスケジュールされたアクションは実行されません。これには、スナップショットの作成、クラスターのサイズ変更、クラスターのメンテナンスなどのオペレーションが含まれます。

では、なぜクラスターバージョンは上がったかというと、本来ならメンテナンスウィンドウ中に実施されるべきであったバージョンアップオペレーションが、クラスター再開後に実施される仕様になっているからです。

再開されたクラスターのクラスターバージョンは、クラスターのメンテナンスウィンドウに基づいてメンテナンスバージョンに更新されます。

■参考

https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/managing-cluster-operations.html#rs-mgmt-pause-resume-cluster

まとめ

メンテナンスウィンドウで指定した日時にRedshiftクラスター停止中であってもメンテナンスウィンドウ予定日の後にクラスターバージョンが上がっていたため、Redshiftクラスター停止中であっても予定されたアクションは実行されて、かつバージョンも上がるものだと思い込んでいました。

正しくは、クラスター停止中はスケジュールされたアクションは実行されない、ただし、クラスター起動後にメンテナンスウィンドウに基づいてクラスターのバージョンは上がる、という仕様でした。

そのため、Redshiftクラスター停止中にメンテナンスウィンドウが指定されていた今回の場合は、メンテナンスウィンドウ中にメンテナンストラックの種類の変更は行われず、クラスター再開後にバージョンが上がるという挙動をしたのでした。

最後に

BeeXではデータ分析エンジニアを募集しております。データ分析基盤の企画~保守運用、活用コンサルティングなどに興味がある方がいらっしゃいましたら、ぜひ一緒にお仕事しましょう。こちらからの応募をお待ちしております。


採用情報|基幹システムのクラウド移行・構築・導入支援のBeeX

世界に先駆け企業の基幹システムをクラウド環境へ数多くマイグレーション(移行)してきた実績を持つ、株式会社BeeXの採用情報ページです。業務拡大につき、一緒に成長できるメンバーを募集しております。

beex-inc.com

og_img


カテゴリー
タグ

SAPシステムや基幹システムのクラウド移行・構築・保守、
DXに関して
お気軽にご相談ください

03-6260-6240 (受付時間 平日9:30〜18:00)