DB インスタンスのメンテナンス
Amazon RDS では、Amazon RDS リソースのメンテナンスを定期的に実行します。以下のトピックで、こうしたメンテナンスアクションとその適用方法について説明します。
DB インスタンスのメンテナンス更新の概要
メンテナンスでは、ほとんどの場合、DB インスタンスの以下のリソースの更新が行われます。
-
基盤となるハードウェア
-
基盤となるオペレーティングシステム (OS)
-
データベースエンジンのバージョン
通常、オペレーティングシステムのアップデートはセキュリティ問題に関連しています。できるだけ早く行うことをお勧めします。オペレーティングシステムのアップデートの詳細については、「DB インスタンスへの更新の適用」を参照してください。
メンテナンス更新中のオフラインリソース
一部のメンテナンス項目では、Amazon RDS が DB インスタンスを少しの間オフラインにする必要があります。リソースをオフラインにする必要があるメンテナンス項目には、必要なオペレーティングシステムやデータベースのパッチが含まれます。セキュリティやインスタンスの信頼性に関連するパッチのみ、必須のパッチ適用として自動的にスケジューリングされます。そのようなパッチ適用はまれであり、通常は数か月に一度です。メンテナンスウィンドウのごくわずかしか必要としないことがほとんどです。
遅延 DB インスタンスの変更
すぐに適用しないことを選択した遅延 DB インスタンスの変更は、メンテナンス期間中に適用されます。例えば、メンテナンス期間中に DB インスタンスクラスまたはパラメータグループを変更することを選択できます。保留中の再起動設定を使用して指定した変更は、[ 保留中のメンテナンス ] リストに表示されません。DB インスタンスの変更については、「Amazon RDS DB インスタンスを変更する」を参照してください。
次のメンテナンスウィンドウに向けて保留中の変更を確認するには、describe-db-instancesPendingModifiedValues
フィールドを確認します。
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 インスタンスのメンテナンスアップデートが利用できる場合は、列の値が以下のようになります。
-
必須 - メンテナンスアクションはリソースに適用され、無期限に延期することはできません。
-
利用可能 - メンテナンスアクションは利用可能ですが、自動的にはリソースに適用されません。手動で適用できます。
-
次のウィンドウ - メンテナンスアクションは次回のメンテナンスウィンドウ中にリソースに適用されます。
-
進行中 - メンテナンスアクションはリソースに適用中です。
更新が利用可能な場合は、以下のいずれかの操作を行います。
-
メンテナンスの値が [次のウィンドウ] である場合は、[アクション] から [アップグレードを延期する] を選択してメンテナンスアクションを延期します。既にスタートしているメンテナンスアクションは延期できません。
-
メンテナンスアクションをすぐに適用する。
-
次回のメンテナンスウィンドウ中にメンテナンスアクションを適用します。
-
何のアクションも実行しません。
AWS Management Consoleを使用してアクションを実行するには
-
DB インスタンスを選択して、その詳細を表示します。
-
[メンテナンスとバックアップ] を選択します。保留中のメンテナンスアクションが表示されます。
-
実行するアクションを選択し、適用するタイミングを選択します。

メンテナンスウィンドウは、保留中のオペレーションをスタートする時刻を決定しますが、オペレーションの総実行時間を制限しません。メンテナンスオペレーションは、メンテナンスウィンドウが終了するまでに完了するかどうかは保証されておらず、指定終了時間を超える場合もあります。詳細については、「Amazon RDS メンテナンスウィンドウ」を参照してください。
また、DB インスタンスでメンテナンスによるアップデートが利用可能かどうかは、AWS CLI コマンドの describe-pending-maintenance-actions を使用して確認することもできます。
メンテナンスによるアップデートの適用については、「DB インスタンスへの更新の適用」を参照してください。
Amazon RDS のメンテナンスアクション
RDS DB インスタンスには、次のメンテナンスアクションが適用されます。
-
ca-certificate-rotation
– DB インスタンスの Amazon RDS 認証局証明書を更新します。 -
db-upgrade
– DB インスタンスの DB エンジンバージョンをアップグレードします。 -
hardware-maintenance
– DB インスタンスの基盤となるハードウェアでメンテナンスを実行します。 -
system-update
– DB インスタンスのオペレーティングシステムを更新します。
マルチ AZ 配置のメンテナンス
DB インスタンスをマルチ AZ 配置として実行すると、メンテナンスイベントの影響をさらに軽減できます。この結果は、Amazon RDS が以下の手順に従ってオペレーティングシステムの更新を適用するためです。
-
スタンバイに対してメンテナンスを実行する。
-
スタンバイをプライマリに昇格させる。
-
旧プライマリでメンテナンスを実行し、その旧プライマリが新しいスタンバイになる。
マルチ 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 およびインメモリ最適化に関する考慮事項」を参照してください。
マルチ AZ 配置については、「Amazon RDS でのマルチ AZ 配置の設定と管理」を参照してください。
Amazon RDS メンテナンスウィンドウ
メンテナンスウィンドウは、システムの変更を適用する週単位の時間間隔です。各 DB インスタンスには、週ごとのメンテナンスウィンドウがあります。メンテナンスウィンドウは、変更やソフトウェアのパッチなどが実行されるタイミングをコントロールする機会です。メンテナンスウィンドウの調整については、「DB インスタンスの適切なメンテナンスウィンドウの調整」を参照してください。
メンテナンスの適用中は、RDS で DB インスタンス のリソースの一部が使用されます。わずかながらパフォーマンスに影響が出る場合があります。DB インスタンスでは、まれに、メンテナンスによるアップデートを完了するためにマルチ AZ フェイルオーバーが必要になる場合があります。
メンテナンスイベントを特定の週に予定した場合、そのイベントはユーザーが指定した 30 分のメンテナンスウィンドウ中にスタートされます。ほとんどのメンテナンスイベントは 30 分のメンテナンスウィンドウ中に完了しますが、大規模なメンテナンスイベントは 30 分以上かかる場合があります。DB インスタンスが停止すると、メンテナンスウィンドウは一時停止されます。
30 分のメンテナンスウィンドウは、リージョンごとに決められた 8 時間の中でランダムに選択されます。DB インスタンスの作成時にメンテナンスウィンドウを指定しないと、RDS でランダムに選択された曜日に 30 分のメンテナンスウィンドウが割り当てられます。
次の表に、デフォルトのメンテナンスウィンドウを割り当てる時間ブロックを AWS リージョン別に示します。
リージョン名 | リージョン | 時間ブロック |
---|---|---|
米国東部 (バージニア北部) | 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 |
DB インスタンスの適切なメンテナンスウィンドウの調整
メンテナンスウィンドウは使用率の最も低い時間帯に設定する必要があります。このため、場合によっては変更が必要になります。この間、DB インスタンスは、システムの変更が適用されていて停止が必要な場合に限り、使用できません。必要な変更を加えるのに必要な最小限の時間のみ使用不可となります。
次の例では、DB インスタンスの適切なメンテナンスウィンドウを調整します。
この例では、mydbinstance という名前の DB インスタンスが存在しており、必要なメンテナンス時間は "日曜日 05:00 ~ 日曜日 06:00" (UTC) であることを前提としています。
必要なメンテナンスウィンドウを調整するには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択し、変更する DB インスタンスを選択します。
-
[Modify] (変更) を選択します。Modify DB instance ページが表示されます。
-
[メンテナンス] セクションで、メンテナンスウィンドウをアップデートします。
注記
DB インスタンスのメンテナンスウィンドウとバックアップ時間は重複できません。バックアップ時間に重複するメンテナンスウィンドウを入力した場合、エラーメッセージが表示されます。
-
[続行] を選択します。
確認ページで、変更内容を確認します。
-
直ちにメンテナンスウィンドウに変更を適用するには、[すぐに適用] を選択します。
-
[DB インスタンスを変更] を選択して、変更を保存します。
または、[戻る] を選択して変更を編集するか、[キャンセル] を選択して変更をキャンセルします。
必要なメンテナンスウィンドウを調整するには、以下のパラメータを指定して AWS CLI modify-db-instance
コマンドを使用します。
-
--db-instance-identifier
-
--preferred-maintenance-window
次のコード例は、メンテナンス時間を火曜日の午前 4:00 から 4:30 UTC に設定します。
Linux、macOS、Unix の場合:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --preferred-maintenance-windowTue:04:00-Tue:04:30
Windows の場合:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --preferred-maintenance-windowTue:04:00-Tue:04:30
必要なメンテナンスウィンドウを調整するには、以下のパラメータを指定して Amazon RDS API の ModifyDBInstance
オペレーションを使用します。
-
DBInstanceIdentifier
-
PreferredMaintenanceWindow
DB インスタンスへの更新の適用
Amazon RDS を使用すると、メンテナンスオペレーションを適用するタイミングを選択できます。AWS Management Console、AWS CLI、または RDS API を使用して Amazon RDS で更新を適用するタイミングを指定できます。
DB インスタンスのアップデートを管理するには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
-
アップデートが必要な DB インスタンスを選択します。
-
[アクション] で、以下のいずれかのオプションを選択します。
-
今すぐパッチを適用
-
次のウィンドウでパッチを適用
注記
[次のウィンドウでパッチを適用] を選択して、アップデートを延期する場合は、[アップグレードを延期する] を選択します。既にスタートしているメンテナンスアクションは延期できません。
メンテナンスアクションをキャンセルするには、DB インスタンスを変更し、[マイナーバージョン自動アップグレード] を無効にします。
-
保留中のアップデートを DB インスタンスに適用するには、AWS CLI コマンドの apply-pending-maintenance-action を使用します。
例
Linux、macOS、Unix の場合:
aws rds apply-pending-maintenance-action \ --resource-identifier
arn:aws:rds:us-west-2:001234567890:db:mysql-db
\ --apply-actionsystem-update
\ --opt-in-typeimmediate
Windows の場合:
aws rds apply-pending-maintenance-action ^ --resource-identifier
arn:aws:rds:us-west-2:001234567890:db:mysql-db
^ --apply-actionsystem-update
^ --opt-in-typeimmediate
注記
メンテナンスアクションを延期するには、--opt-in-type
として undo-opt-in
を指定します。メンテナンスアクションが既にスタートされている場合は、--opt-in-type
として undo-opt-in
を指定できません。
メンテナンスアクションをキャンセルするには、modify-db-instance AWS CLI コマンドを実行し、--no-auto-minor-version-upgrade
を指定します。
少なくとも 1 つの保留中のアップデートがあるリソースのリストを取得するには、describe-pending-maintenance-actions AWS CLI コマンドを使用します。
例
Linux、macOS、Unix の場合:
aws rds describe-pending-maintenance-actions \ --resource-identifier
arn:aws:rds:us-west-2:001234567890:db:mysql-db
Windows の場合:
aws rds describe-pending-maintenance-actions ^ --resource-identifier
arn:aws:rds:us-west-2:001234567890:db:mysql-db
AWS CLI コマンド describe-pending-maintenance-actions
の --filters
パラメータを指定して、DB インスタンスのリソースのリストを取得することもできます。--filters
コマンドの形式は、Name=
です。filter-name
,Value=resource-id
,...
以下は、フィルターの Name
パラメータの許容値です。
-
db-instance-id
- DB インスタンス識別子または Amazon リソースネーム (ARN) のリストが許容されます。返されるリストには、これらの ID または ARN で識別された DB インスタンスの保留中のメンテナンスアクションのみが含まれます。 -
db-cluster-id
- DB クラスター識別子または Amazon Aurora 用の ARN のリストが許容されます。返されるリストには、これらの ID または ARN で識別された DB クラスターの保留中のメンテナンスアクションのみが含まれます。
次の例では、sample-instance1
および sample-instance2
DB インスタンスの保留中のメンテナンスアクションが返されます。
例
Linux、macOS、Unix の場合:
aws rds describe-pending-maintenance-actions \ --filters Name=db-instance-id,Values=sample-instance1,sample-instance2
Windows の場合:
aws rds describe-pending-maintenance-actions ^ --filters Name=db-instance-id,Values=sample-instance1,sample-instance2
アップデートを DB インスタンスに適用するには、Amazon RDS API の ApplyPendingMaintenanceAction
オペレーションを呼び出します。
少なくとも 1 つの保留中のアップデートがあるリソースのリストを返すには、Amazon RDS API の DescribePendingMaintenanceActions
オペレーションを呼び出します。
RDS DB インスタンスのオペレーティングシステムの更新
RDS for Db2、RDS for MariaDB、RDS for MySQL、RDS for PostgreSQL、RDS for SQL Server、および RDS for Oracle DB インスタンスでは、オペレーティングシステムのアップデートが必要になることがあります。Amazon RDS は、データベースパフォーマンスと顧客の全体的なセキュリティ体制改善のために、OS を新しいバージョンにアップグレードします。通常、アップデートには約 10 分かかります。オペレーティングシステムのアップデートでは、DB インスタンスの DB エンジンのバージョンまたは DB インスタンスクラスは変更されません。
オペレーティングシステムのアップデートは、オプションの場合も必須の場合もあります。
-
オプションのアップデートは、随時適用できます。これらのアップデートはオプションですが、RDS フリートを最新の状態に保つために定期的に適用することをお勧めします。RDS は、これらのアップデートを自動的に適用しません。
新しいオプションのオペレーティングシステムパッチが利用可能になったときに通知を受けるには、セキュリティパッチイベントカテゴリの RDS-EVENT-0230 をサブスクライブできます。RDS イベントにサブスクライブする方法については、「Amazon RDS イベント通知にサブスクライブする」を参照してください。
注記
RDS-EVENT-0230
は、オペレーティングシステムのディストリビューションのアップグレードに適用されません。 -
必須アップデートが必要で、適用日があります。この適用日付より前にアップデートをスケジュールするように計画してください。指定した適用日後、割り当てられたメンテナンスウィンドウ中に、Amazon RDS は DB インスタンスのオペレーティングシステムを最新バージョンに自動的にアップグレードします。
注記
さまざまなコンプライアンス義務を果たすためには、すべてのオプションおよび必須のアップデートを最新の状態に保つことが必要になる場合があります。RDS によって提供されるすべてのアップデートは、メンテナンス期間中に定期的に適用することをお勧めします。
AWS Management Console または AWS CLI を使用すると、オペレーティングシステムのアップグレードの種類に関する情報を取得できます。
AWS Management Console を使用してアップデート情報を取得するには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択し、DB インスタンスを選択します。
-
[メンテナンスとバックアップ] を選択します。
-
[Pending maintenance] (保留中のメンテナンス) セクションで、オペレーティングシステムのアップデートを検索し、[Status] (ステータス) 値をチェックします。
オプションのアップデートの場合、AWS Management Console で、メンテナンスステータスが [使用可能] と設定されており、次の画像のように[適用日] がありません。

必須のアップデートの場合、メンテナンス[Status] (ステータス) が [必須] と設定されており、次の画像のように[Apply date] (適用日) があります。

AWS CLI からアップデート情報を取得するには、describe-pending-maintenance-actions コマンドを使用します。
aws rds describe-pending-maintenance-actions
オペレーティングシステムの必須の更新には、AutoAppliedAfterDate
値と CurrentApplyDate
値が含まれます。オペレーティングシステムのオプションのアップデートには、これらの値は含まれません。
次の出力は、必須のオペレーティングシステムのアップデートを示しています。
{ "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:db:mydb1", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "AutoAppliedAfterDate": "2022-08-31T00:00:00+00:00", "CurrentApplyDate": "2022-08-31T00:00:00+00:00", "Description": "New Operating System update is available" } ] }
次の出力は、オプションのオペレーティングシステムのアップデートを示しています。
{ "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:db:mydb2", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "Description": "New Operating System update is available" } ] }
オペレーティングシステムのアップデートの可用性
オペレーティングシステムのアップデートは、DB エンジンのバージョンと DB インスタンスクラスに固有です。したがって、DB インスタンスは、異なる時間にアップデートを受信または要求します。そのエンジンのバージョンとインスタンスクラスに基づいた DB インスタンスにオペレーティングシステムのアップデートがある場合は、アップデートがコンソールに表示されます。describe-pending-maintenance-actions AWS CLI コマンドを実行するか、または DescribePendingMaintenanceActions RDS API オペレーションを呼び出すことによっても表示できます。インスタンスでアップデートが利用可能である場合、DB インスタンスへの更新の適用 の手順に従って OS をアップデートできます。