RDSのメンテナンスがスケジューリングされた時にやった手順【ダウンタイムを気にする場合など】

システムAWS

RDSのメンテナンスがスケジューリングされた時にやった手順【ダウンタイムを気にする場合など】
RDSのメンテナンスがスケジューリングされた時にやった手順【ダウンタイムを気にする場合など】

AWSからRDSのメンテナンス通知で「RDSメンテナンス」のお知らせが届きました。それに伴いRDSでメンテナンス作業を行いました。画面スクショで手順をまとめたので紹介します。

システムのダウンタイムを気にしない場合は、今回の手順を行わなくて問題ないです。またRDSクラスタにDBインスタンスが複数ぶら下がる構成の場合も行わなくて問題ないです。

UT

RDSのメンテナンスは定期的にスケジューリングされます。

RDSのメンテナンスについて

RDSのメンテナンスについて
RDSのメンテナンスについて

先日AWSからRDSのメンテナンス通知がメールで届きました。

Dear Amazon Aurora Customer,
(Amazon Auroraのお客様へ、)

We are contacting you to inform you that one or more of your Amazon Aurora DB instances are scheduled to receive maintenance on the underlying hardware between 2022-03-18 07:00 UTC (Friday) and 2022-03-25 06:59 UTC (Friday). The exact time of the maintenance will be determined by the DB instance’s maintenance window.
(1つ以上のAmazonAuroraDBインスタンスが、2022-03-18 07:00 UTC(金曜日)から2022-03-25 06:59 UTC(金曜日)の間に基盤となるハードウェアのメンテナンスを受けるようにスケジュールされていることをお知らせします。メンテナンスの正確な時間は、DBインスタンスのメンテナンスウィンドウによって決定されます。)

For clusters with a single instance, the cluster and the instance will be unavailable for a few minutes in the instance’s maintenance window.
(単一のインスタンスを持つクラスターの場合、クラスターとインスタンスは、インスタンスのメンテナンスウィンドウで数分間使用できなくなります。)

省略

If you have any questions or concerns, contact AWS Premium Support.

https://aws.amazon.com/support

RDSメンテナンス通知の内容

簡単にいうと「DBインスタンスのハードウェアメンテナンスを 2022年3月18日に行います。」という(今回は)内容でした。

仮に何もしなければ(今回)予定されている 2022年3月18日 にメンテナンスが自動で実施されます。

しかしメンテナンスの際に注意しないと行けない点があります。

それは「1つのDBインスタンスしかないDBクラスターの場合は、メンテナンス中は数分間使用できなくなります。」ということです。

運用中のシステムがあるとRDSメンテナンス中はDBに接続できなくなるのは困ります。

UT

今回はRDSのメンテナンス対応でダウンタイムが短く済むような手順を紹介していきます。

RDSメンテナンスで何もしない場合

RDSメンテナンスがスケジューリングされた日程までにメンテナンス対応を行わないとどうなってしまうのでしょうか?

それはスケジューリングされた日程でAWSが自動でメンテナンス対応が行われます。

ただし再起動が行われダウンタイムが発生します。なので、システム運営ができない時間が発生することになります。

そのために再起動が自動でされたくない場合は、スケジューリングされた日程より前に手動でメンテナンス対応を行う必要があるということです。

UT

システム運用していると自動で再起動されると困ると思うので、スケジューリングされた日程より前に手動でメンテナンス対応することになります。

RDSメンテナンス内容の確認方法

RDSのメンテナンスが発生したときはメールがAWSから送られてくるのですが、AWSマネージメントコンソールでも確認することができます。その方法について紹介します。

AWSマネージメントコンソールでRDSメンテナンスを確認する方法

AWSマネージメントコンソールでRDSメンテナンスを確認する方法
AWSマネージメントコンソールでRDSメンテナンスを確認する方法

画面上部にあるツールメニュのベル – 予定された変更をクリックします。

RDSメンテナンスの内容

すると、RDSメンテナンスがスケジューリングされている日程や内容を(英語だけど)確認することができます。

フェイルオーバーでリードレプリカをマスタへ切り替えて対応<ダウンタイムを気にする場合>

フェイルオーバーでリードレプリカをマスタへ切り替えて対応<ダウンタイムを気にする場合>
フェイルオーバーでリードレプリカをマスタへ切り替えて対応<ダウンタイムを気にする場合>

システム運営中の場合は、極力ダウンタイムを少ない時間で対応する必要があります。

こうしたダウンタイムを気にする場合の方法として「フェイルオーバを発生させてリードレプリカをマスタへ切り替えて対応」する手順を紹介します。

リードレプリカをクラスタへ追加する

まずはRDSのマネージメントコンソールを開きます。

リードレプリカをクラスタへ追加する
リードレプリカをクラスタへ追加する

DBクラスターを選択し、[アクション]の[リーダーの追加]を行います。これでリードレプリカをDBクラスタへ追加されます。

マスタ(書き込み)のDBインスタンスをフェイルオーバーする

マスタ(書き込み)のDBインスタンスをフェイルオーバーする
マスタ(書き込み)のDBインスタンスをフェイルオーバーする

DBクラスタに紐づいているマスタ(書き込み)となっているDBインスタンスを選択して、[アクション]の[フェイルオーバー]を選択します。これでフェイルオーバーを手動で発生させます。

UT

注意ですが、フェイルオーバーすると数秒ダウンタイムが発生します。

すると数秒でリードレプリカがマスタへ昇格して切り替わります。

ファイルオーバーが完了したらリードレプリカとなったDBインスタンスを削除します。

これで作業は完了となります。

フェイルオーバーで発生するダウンタイムについて

フェイルオーバーを発生させてリードレプリカをマスタへ昇格させて切り替える際に発生するダウンタイムですが、だいたい30秒くらい発生しました。

なので、フェイルオーバーでダウンタイムは30秒程度は発生するので注意が必要です。

ちなみにDBインスタンスのデータ量によってダウンタイムの時間が変動するかと予想していましたが、あまり関係はしないようです。

AWSのヘルプで解説された記事

AWSのヘルプでもRDSメンテナンス時の対応方法について解説されていました。

Amazon Relational Database Service (Amazon RDS) DB インスタンスの 1 つにメンテナンスが必要であるというメンテナンス通知を受け取りました。ダウンタイムを最小限に抑えるにはどうすればいいですか?

https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-required-maintenance/

RDSのメンテナンスである「ハードウェアのメンテナンス」と「OSのメンテナンス」「DBエンジンのメンテナンス」とそれぞれでの対処法を紹介しています。

ぜひこちらもご覧ください。

さいごに

今回は定期的に発生するRDSのメンテナンスで行う対応方法について紹介しました。

運営中のシステムだとダウンタイムが発生しないようにしたいです。なんせ企業によっては売上に直結してしまったりするで。。。またトラブルが発生しにくい方法であることも重要です。

システム運営者はサーバのメンテナンスとか色々と大変ですよね(汗)

AWSから届いたメンテナンス通知メール

Dear Amazon Aurora Customer,
(Amazon Auroraのお客様へ、)

We are contacting you to inform you that one or more of your Amazon Aurora DB instances are scheduled to receive maintenance on the underlying hardware between 2022-03-18 07:00 UTC (Friday) and 2022-03-25 06:59 UTC (Friday). The exact time of the maintenance will be determined by the DB instance’s maintenance window.
(1つ以上のAmazonAuroraDBインスタンスが、2022-03-18 07:00 UTC(金曜日)から2022-03-25 06:59 UTC(金曜日)の間に基盤となるハードウェアのメンテナンスを受けるようにスケジュールされていることをお知らせします。メンテナンスの正確な時間は、DBインスタンスのメンテナンスウィンドウによって決定されます。)

For clusters with a single instance, the cluster and the instance will be unavailable for a few minutes in the instance’s maintenance window.
(単一のインスタンスを持つクラスターの場合、クラスターとインスタンスは、インスタンスのメンテナンスウィンドウで数分間使用できなくなります。)

For clusters with multiple instances:

– If the affected DB instance is a Primary (Writer) at the time of maintenance, a failover will occur. During the failover, all cluster instances will restart and writes will not be possible until the failover completes, which usually takes less than 60 seconds. The affected instance, demoted to a Replica, will undergo maintenance and will be unavailable for a few minutes.
(影響を受けるDBインスタンスがメンテナンス時にプライマリ(ライター)である場合、フェイルオーバーが発生します。フェイルオーバー中、すべてのクラスターインスタンスが再起動し、フェイルオーバーが完了するまで書き込みはできません。これには通常60秒未満かかります。レプリカに降格された影響を受けるインスタンスはメンテナンスを受け、数分間使用できなくなります。)

– If the affected DB instance is a Replica at the time of maintenance, the instance will undergo maintenance and will be unavailable for a few minutes. Failover will not occur and no availability impact is expected for other cluster instances.
(影響を受けるDBインスタンスがメンテナンス時にレプリカである場合、インスタンスはメンテナンスを受け、数分間使用できなくなります。フェールオーバーは発生せず、他のクラスターインスタンスの可用性への影響は予想されません。)

You can find the instance’s role (Primary or Replica) under 'Replication role’ column on the RDS Console DB Instances list, or under the 'Replication’ section of the DB Instance details page. You can also obtain this information using the AWS CLI or the AWS RDS API.
(インスタンスのロール(プライマリまたはレプリカ)は、RDSコンソールの[DBインスタンス]リストの[レプリケーションの役割]列、または[DBインスタンスの詳細]ページの[レプリケーション]セクションにあります。この情報は、AWSCLIまたはAWSRDSAPIを使用して取得することもできます。)

Please review the maintenance window for each affected DB instance and ensure it is set appropriately to minimize the impact of this maintenance on your application. For best results and in order to avoid simultaneous unavailability of multiple instances, please ensure that maintenance windows for the affected instances do not overlap.
(影響を受ける各DBインスタンスのメンテナンスウィンドウを確認し、このメンテナンスがアプリケーションに与える影響を最小限に抑えるように適切に設定されていることを確認してください。最良の結果を得るには、また複数のインスタンスが同時に使用できなくなるのを防ぐために、影響を受けるインスタンスのメンテナンスウィンドウが重複しないようにしてください。)

If you have any questions or concerns, contact AWS Premium Support.

https://aws.amazon.com/support

AWSのマネージメントコンソールでスケジューリングされたイベント

RDS aurora hardware maintenance scheduled
(RDS auroraハードウェアメンテナンスが予定されています)

Description
We are contacting you to inform you that one or more of your Amazon Aurora DB instances listed in the 'Affected resources’ tab are scheduled to receive maintenance on the underlying hardware between between 2022-03-18 07:00 UTC (Friday) and 2022-03-25 06:59 UTC (Friday). The exact time of the maintenance will be determined by the DB instance’s maintenance window.
(リストされている1つ以上のAmazonAuroraDBインスタンスが、2022-03-18 07:00 UTC(金曜日)から2022年の間に基盤となるハードウェアのメンテナンスを受ける予定であることをお知らせします。 -03-25 06:59 UTC(金曜日)。メンテナンスの正確な時間は、DBインスタンスのメンテナンスウィンドウによって決定されます。)

For clusters with a single instance, the cluster and the instance will be unavailable for a few minutes in the instance’s maintenance window.
(単一のインスタンスを持つクラスターの場合、クラスターとインスタンスは、インスタンスのメンテナンスウィンドウで数分間使用できなくなります。)

For clusters with multiple instances:

– If the affected DB instance is a Primary (Writer) at the time of maintenance, a failover will occur. During the failover, all cluster instances will restart and writes will not be possible until the failover completes, which usually takes less than 60 seconds. The affected instance, demoted to a Replica, will undergo maintenance and will be unavailable for a few minutes.
(影響を受けるDBインスタンスがメンテナンス時にレプリカである場合、インスタンスはメンテナンスを受け、数分間使用できなくなります。フェールオーバーは発生せず、他のクラスターインスタンスの可用性への影響は予想されません。)

– If the affected DB instance is a Replica at the time of maintenance, the instance will undergo maintenance and will be unavailable for a few minutes. Failover will not occur and no availability impact is expected for other cluster instances.
(影響を受けるDBインスタンスがメンテナンス時にレプリカである場合、インスタンスはメンテナンスを受け、数分間使用できなくなります。フェールオーバーは発生せず、他のクラスターインスタンスの可用性への影響は予想されません。)

You can find the instance’s role (Primary or Replica) under 'Replication role’ column on the RDS Console DB Instances list, or under the 'Replication’ section of the DB Instance details page. You can also obtain this information using the AWS CLI or the AWS RDS API.
(インスタンスのロール(プライマリまたはレプリカ)は、RDSコンソールの[DBインスタンス]リストの[レプリケーションの役割]列、または[DBインスタンスの詳細]ページの[レプリケーション]セクションにあります。この情報は、AWSCLIまたはAWSRDSAPIを使用して取得することもできます。)

Please review the maintenance window for each affected DB instance and ensure it is set appropriately to minimize the impact of this maintenance on your application. For best results and in order to avoid simultaneous unavailability of multiple instances, please ensure that maintenance windows for the affected instances do not overlap.
(影響を受ける各DBインスタンスのメンテナンスウィンドウを確認し、このメンテナンスがアプリケーションに与える影響を最小限に抑えるように適切に設定されていることを確認してください。最良の結果を得るには、また複数のインスタンスが同時に使用できなくなるのを防ぐために、影響を受けるインスタンスのメンテナンスウィンドウが重複しないようにしてください。)

If you have any questions or concerns, contact AWS Premium Support.

https://aws.amazon.com/support

参考サイト

AWS Aurora の SSL/TLS 接続用 CA 証明書を更新した話
https://techblog.timers-inc.com/entry/2019/11/07/180000

Amazon AuroraのDB インスタンスクラス変更方法まとめ
https://blog.serverworks.co.jp/tech/2019/07/31/how-to-change-aurora-db-instance-class/#snapshot

RDSのメンテナンス対応の備忘録

UT
UTの日常

1985年生まれ1児の父親です。ブログとか副業で収入を得る手段を模索中であります。(無理しない程度が理想wだから実績が出ないorz)
UTのプロフィール
Amazon欲しいものリスト

システムAWS

Posted by UT