Amazon Relational Database Service (Amazon RDS) DB インスタンスを変更しようとしています。この変更の際に、データベースの可用性またはパフォーマンスにどのような影響があり得ますか?
解決方法
Amazon RDS でのインスタンスクラスの変更
Amazon RDS でシングル AZ インスタンスのインスタンスクラスを変更すると、新しい Amazon Elastic Compute Cloud (Amazon EC2) ホストが作成されます。更新されたインスタンスクラスを使用して新しい Amazon EC2 ホストを作成すると、既存のホストのデータベースがシャットダウンされます。その後、データストレージは古いホストからデタッチされ、リクエストされたインスタンスクラスの新しいホストに再アタッチされます。続いて、データベースが再起動され、エンジンがリカバリを実行し、データベースが一貫した状態に保たれるようにします。このプロセス中の停止は、データベースのリカバリの期間に比例します。
Amazon RDS でマルチ AZ インスタンスのインスタンスクラスを変更すると、最初にスタンバイインスタンスが更新されます。この更新の後、フェイルオーバーが発生し、スタンバイインスタンスとプライマリインスタンスのロールが切り替わります。フェイルオーバーメカニズムは、新しいホストをポイントするように DB インスタンスの DNS エンドポイントも伝達します。データベースのリカバリ後、アプリケーションからデータベースにアクセスできます。その後、インスタンスクラスの変更は、新しいスタンバイインスタンス上で実行されます。
データベースアクティビティまたは実行時間の長いトランザクションによっては、フェイルオーバーの完了に通常よりも時間がかかる場合があります。フェイルオーバーは通常 60~120 秒以内に完了します。ただし、大規模なトランザクションや長時間のリカバリプロセスにより、フェイルオーバー時間が長くなる可能性があります。インスタンスの変更時に、データベース内に開いているトランザクションがないことを確認することをお勧めします。中断を避けるために、メンテナンスタスクのスケジュールを設定することもできます。
Amazon RDS のストレージの変更
データまたは異なるストレージパフォーマンス属性用に追加のスペースが必要な場合は、Amazon RDS は、(パフォーマンスに影響を及ぼすことなく) 次に対する更新をサポートします。
Amazon RDS は Amazon Elastic Block Store (Amazon EBS) Elastic Volumes を利用して、ストレージのスケーリングオペレーションに必要な時間を最小化します。Amazon RDS は、リクエストされたストレージの量に基づいて、複数の Amazon EBS ボリュームにわたって自動的にストライピングし、パフォーマンスを向上させます。
インスタンスを変更してストレージを追加すると、DB インスタンスはアプリケーションクエリのために完全に動作します。RDS インスタンスでストレージを変更した後、追加のストレージ更新を行う前に 6 時間の猶予期間があります。この期間中、インスタンスのステータスは「ストレージ最適化」と表示されます。インスタンスが「ストレージ最適化」フェーズに入ると、新しいストレージ属性は完全に有効になり、パフォーマンスに影響はありません。
Amazon RDS でのストレージのスケーリング
ストレージの拡張はオンラインプロセスであり、データベースはプロセス中に完全に動作します。ただし、一部のレガシー RDS インスタンスでは、1 回限りのストレージ変換が必要です。
このオペレーション中、Amazon RDS が古いボリュームセットからデータを読み取り、新しいセットに書き込みを行っている間、I/O パフォーマンスに影響する可能性があります。さらに、400 GB (Oracle データベースインスタンスの場合は 200 GB) を超えてスケーリングする場合、Amazon RDS はスケーリングにレガシーメソッドも使用します。レガシーメソッドの使用中は、パフォーマンスが低下することがあります。それ以降のすべてのスケーリングストレージの変更では、伸縮自在なスケーリングメソッドが使用されます。
Amazon RDS でのシングル AZ からマルチ AZ への変換
DB インスタンスをシングル AZ からマルチ AZ に変換すると、Amazon RDS は最初にデータベースのコピーを作成します。その後、コピーは別のアベイラビリティーゾーンに復元されます。EBS スナップショットの復元もこのプロセスの一部であるため、ストレージブロックは新しいボリュームにコピーされます。その結果、シングル AZ からマルチ AZ への変換は、レイテンシーと DB インスタンスのパフォーマンスに影響を与える可能性があります。詳細については、Amazon RDS の高可用性 (マルチ AZ) を参照してください。
マルチ AZ への変換の影響は、大量のストレージボリュームを持つ、多くの書き込みを実行する DB インスタンスで、ワークロードが高い場合に顕著になります。さらに、ボリュームの復元を伴うオペレーション (リードレプリカの作成や新しい DB インスタンスへのスナップショットの復元など) により、レイテンシーが増加します。ストレージブロックが Amazon Simple Storage Service (Amazon S3) から新しいボリュームにコピーされると、レイテンシーは低下します。