DB インスタンスのメンテナンス - Amazon Relational Database Service

DB インスタンスのメンテナンス

Amazon RDS では、Amazon RDS リソースのメンテナンスを定期的に実行します。

DB インスタンスのメンテナンス更新の概要

メンテナンスでは、ほとんどの場合、DB インスタンスの以下のリソースの更新が行われます。

  • 基盤となるハードウェア

  • 基盤となるオペレーティングシステム (OS)

  • データベースエンジンのバージョン

通常、オペレーティングシステムのアップデートはセキュリティ問題に関連しています。できるだけ早く行うことをお勧めします。オペレーティングシステムのアップデートの詳細については、「DB インスタンスのアップデートを適用する」を参照してください。

メンテナンス更新中のオフラインリソース

一部のメンテナンス項目では、Amazon RDS が DB インスタンスを少しの間オフラインにする必要があります。リソースをオフラインにする必要があるメンテナンス項目には、必要なオペレーティングシステムやデータベースのパッチが含まれます。セキュリティやインスタンスの信頼性に関連するパッチのみ、必須のパッチ適用として自動的にスケジューリングされます。そのようなパッチ適用はまれであり、通常は数か月に一度です。メンテナンスウィンドウのごくわずかしか必要としないことがほとんどです。

遅延 DB インスタンスの変更

すぐに適用しないことを選択した遅延 DB インスタンスの変更は、メンテナンス期間中に適用されます。例えば、メンテナンス期間中に DB インスタンスクラスまたはパラメータグループを変更することを選択できます。保留中の再起動設定を使用して指定した変更は、[ 保留中のメンテナンス ] リストに表示されません。DB インスタンスの変更については、「Amazon RDS DB インスタンスを変更する」を参照してください。

次のメンテナンスウィンドウに向けて保留中の変更を確認するには、describe-db-instances AWS CLI コマンドを使用して PendingModifiedValues フィールドを確認します。

DescribePendingMaintenanceActions API の結果整合性

Amazon RDS DescribePendingMaintenanceActions API は結果整合性モデルに従います。つまり、DescribePendingMaintenanceActions コマンドの結果が、それ以降のすべての RDS コマンドにすぐには表示されない場合があります。以前の API コマンドを使用した直後に DescribePendingMaintenanceActions を使用する場合は、この点に注意してください。

結果整合性は、メンテナンス更新の管理方法に影響を与える可能性があります。例えば、ApplyPendingMaintenanceActions コマンドを実行して DB インスタンスのデータベースエンジンバージョンを更新すると、最終的に DescribePendingMaintenanceActions に表示されます。このシナリオでは、DescribePendingMaintenanceActions はメンテナンスアクションが適用済みであっても適用されていないと示す場合があります。

結果整合性を管理するには、以下を実行します。

  • コマンドを実行して変更する前に、DB インスタンスの状態を確認します。エクスポネンシャルバックオフアルゴリズムを使用して適切な DescribePendingMaintenanceActions コマンドを実行し、前のコマンドがシステム内を伝播するのに十分な時間を確保できるようにします。これを行うには、DescribePendingMaintenanceActions コマンドを繰り返し実行し、数秒の待機時間から始めて、最大 5 分間の待機時間まで徐々に増やします。

  • DescribePendingMaintenanceActions コマンドが正確なレスポンスを返した場合でも、後続のコマンド間の待機時間を追加します。数秒の待機時間から始めて、エクスポネンシャルバックオフアルゴリズムを適用し、最大約 5 分間の待機時間まで徐々に増やします。

保留中のメンテナンス更新の表示

DB インスタンスでメンテナンスによるアップデートが利用可能かどうかは、RDS コンソール、AWS CLI、または Amazon RDS API を使用して確認します。アップデートが利用できる場合は、次に示すように、Amazon RDS コンソールで DB インスタンスの [メンテナンス] 列に表示されます。

使用できるオフラインパッチ

DB インスタンスのメンテナンスアップデートが利用できない場合は、列の値が [なし] になります。

DB インスタンスのメンテナンスアップデートが利用できる場合は、列の値が以下のようになります。

  • 必須 - メンテナンスアクションはリソースに適用され、無期限に延期することはできません。

  • 利用可能 - メンテナンスアクションは利用可能ですが、自動的にはリソースに適用されません。手動で適用できます。

  • 次のウィンドウ - メンテナンスアクションは次回のメンテナンスウィンドウ中にリソースに適用されます。

  • 進行中 - メンテナンスアクションはリソースに適用中です。

アップデートを利用できる場合は、いずれかのアクションを実行できます。

  • メンテナンス値が [次のウィンドウ] である場合は、[アクション] から [後でアップグレード] を選択してメンテナンス項目を延期します。既にスタートしているメンテナンスアクションは延期できません。

  • メンテナンス項目をすぐに適用します。

  • メンテナンス項目を次のメンテナンスウィンドウ中にスタートするようにスケジュールを設定します。

  • 何のアクションも実行しません。

アクションを実行するには、DB インスタンスを選択してその詳細を表示し、次に [メンテナンス & バックアップ] を選択します。保留中のメンテナンス項目が表示されます。

保留中のメンテナンス項目

メンテナンスウィンドウは、保留中のオペレーションをスタートする時刻を決定しますが、オペレーションの総実行時間を制限しません。メンテナンスオペレーションは、メンテナンスウィンドウが終了するまでに完了するかどうかは保証されておらず、指定終了時間を超える場合もあります。詳細については、「Amazon RDS メンテナンスウィンドウ」を参照してください。

また、DB インスタンスでメンテナンスによるアップデートが利用可能かどうかは、AWS CLI コマンドの describe-pending-maintenance-actions を使用して確認できます。

メンテナンスによるアップデートの適用については、「DB インスタンスのアップデートを適用する」を参照してください。

マルチ AZ 配置のメンテナンス

DB インスタンスをマルチ AZ 配置として実行すると、メンテナンスイベントの影響をさらに軽減できます。この結果は、Amazon RDS が以下の手順に従ってオペレーティングシステムの更新を適用するためです。

  1. スタンバイに対してメンテナンスを実行する。

  2. スタンバイをプライマリに昇格させる。

  3. 旧プライマリでメンテナンスを実行し、その旧プライマリが新しいスタンバイになる。

マルチ AZ 配置で DB インスタンスのデータベースエンジンをアップグレードする場合、Amazon RDS は、プライマリおよびセカンダリ DB インスタンスを両方同時に変更します。この場合、マルチ AZ 配置のプライマリ DB インスタンスとセカンダリ DB インスタンスの両方が、アップグレード中に利用できません。このオペレーションにより、アップグレードが完了するまでダウンタイムが発生します。ダウンタイムの時間は、DB インスタンスのサイズによって異なります。

適用する必要がある基盤となるオペレーティングシステムパッチが存在する場合、プライマリ DB インスタンスにパッチを適用するには、短時間のマルチ AZ フェイルオーバーが必要です。このフェイルオーバーの所要時間は通常 1 分未満です。

DB インスタンスが RDS for MySQL、RDS for PostgreSQL または RDS for MariaDB を実行している場合、ブルー/グリーンデプロイを使用することで、アップグレードに必要なダウンタイムを最小限に抑えることができます。詳細については、「データベース更新のために Amazon RDS ブルー/グリーンデプロイを使用する」を参照してください。マルチ AZ 配置で RDS for SQL Server または RDS Custom for SQL Server DB インスタンスをアップグレードすると、Amazon RDS は、ローリングアップグレードを実行するため、停止が発生が発生するのは、フェイルオーバーが発生する場合のみです。詳細については、「マルチ AZ およびインメモリ最適化に関する考慮事項」を参照してください。

DB インスタンスがマルチ AZ 配置で RDS for SQL Server を実行している場合、次のいずれかの方法を使用して、基盤となるオペレーティングシステムに更新を適用できます。

  • DB インスタンスクラスを別のサイズに変更し、元のサイズに戻します。

  • DB インスタンスのサイズをスケールアップし、元のサイズに戻します。

  • DB インスタンスをマルチ AZ からシングル AZ に変更し、DB インスタンスを停止して起動した後に、インスタンスをマルチ AZ に戻します。

マルチ AZ 配置については、「Amazon RDS でのマルチ AZ 配置の設定と管理」を参照してください。

Amazon RDS メンテナンスウィンドウ

メンテナンスウィンドウは、システムの変更が適用される週単位の時間間隔です。各 DB インスタンスには、週ごとのメンテナンスウィンドウがあります。メンテナンスウィンドウは、変更やソフトウェアのパッチなどが実行されるタイミングをコントロールする機会です。メンテナンスウィンドウの調整については、「DB インスタンスの適切なメンテナンスウィンドウの調整」を参照してください。

メンテナンスの適用中は、RDS で DB インスタンス のリソースの一部が使用されます。わずかながらパフォーマンスに影響が出る場合があります。DB インスタンスでは、まれに、メンテナンスによるアップデートを完了するためにマルチ AZ フェイルオーバーが必要になる場合があります。

メンテナンスイベントを特定の週に予定した場合、そのイベントはユーザーが指定した 30 分のメンテナンスウィンドウ中にスタートされます。ほとんどのメンテナンスイベントは 30 分のメンテナンスウィンドウ中に完了しますが、大規模なメンテナンスイベントは 30 分以上かかる場合があります。DB インスタンスが停止すると、メンテナンスウィンドウは一時停止されます。

30 分のメンテナンスウィンドウは、リージョンごとに決められた 8 時間の中でランダムに選択されます。DB インスタンスの作成時にメンテナンスウィンドウを指定しないと、RDS でランダムに選択された曜日に 30 分のメンテナンスウィンドウが割り当てられます。

以下では、各リージョンでデフォルトのメンテナンスウィンドウを割り当てる時間帯を確認できます。

リージョン名 リージョン 時間ブロック
米国東部 (バージニア北部) us-east-1 03:00~11:00 UTC
米国東部 (オハイオ) us-east-2 03:00~11:00 UTC
米国西部 (北カリフォルニア) us-west-1 06:00~14:00 UTC
米国西部 (オレゴン) us-west-2 06:00~14:00 UTC
アフリカ (ケープタウン) af-south-1 03:00~11:00 UTC
アジアパシフィック (香港) ap-east-1 06:00~14:00 UTC
アジアパシフィック (ハイデラバード) ap-south-2 06:30~14:30 UTC
アジアパシフィック (ジャカルタ) ap-southeast-3 08:00~16:00 UTC
アジアパシフィック (マレーシア) ap-southeast-5 09:00~17:00 UTC
アジアパシフィック (メルボルン) ap-southeast-4 11:00~19:00 UTC
アジアパシフィック (ムンバイ) ap-south-1 06:00~14:00 UTC
アジアパシフィック (大阪) ap-northeast-3 22:00~06:00 UTC
アジアパシフィック (ソウル) ap-northeast-2 13:00~21:00 UTC
アジアパシフィック (シンガポール) ap-southeast-1 14:00~22:00 UTC
アジアパシフィック (シドニー) ap-southeast-2 12:00~20:00 UTC
アジアパシフィック (東京) ap-northeast-1 13:00~21:00 UTC
カナダ (中部) ca-central-1 03:00~11:00 UTC
カナダ西部 (カルガリー) ca-west-1 18:00~02:00 UTC
中国 (北京) cn-north-1 06:00~14:00 UTC
中国 (寧夏) cn-northwest-1 06:00~14:00 UTC
欧州 (フランクフルト) eu-central-1 13:00~21:00 UTC
欧州 (アイルランド) eu-west-1 22:00~06:00 UTC
欧州 (ロンドン) eu-west-2 22:00~06:00 UTC
ヨーロッパ (ミラノ) eu-south-1 13:00~21:00 UTC
欧州 (パリ) eu-west-3 23:00~07:00 UTC
欧州 (スペイン) eu-south-2 13:00~21:00 UTC
欧州 (ストックホルム) eu-north-1 23:00~07:00 UTC
欧州 (チューリッヒ) eu-central-2 13:00~21:00 UTC
イスラエル (テルアビブ) il-central-1 03:00~11:00 UTC
中東 (バーレーン) me-south-1 06:00~14:00 UTC
中東 (アラブ首長国連邦) me-central-1 05:00~13:00 UTC
南米 (サンパウロ) sa-east-1 13:00~21:00 UTC
AWS GovCloud (米国東部) us-gov-east-1 01:00~09:00 UTC
AWS GovCloud (米国西部) us-gov-west-1 06:00~14:00 UTC