メインコンテンツに移動

Amazon RDS

Amazon RDS マルチ AZ

総所有コストを考慮して最適化された、管理しやすいリレーショナルデータベース

RDS マルチ AZ とは

Amazon RDS マルチ AZ 配置では、RDS データベースインスタンスの可用性と耐久性が強化され、プロダクションデータベースのワークロードに適しています。ワークロードに必要な可用性に応じて、1 つのスタンバイ、または 2 つの読み取り可能なスタンバイを備えたマルチ AZ を選択できます。

1 つのスタンバイを備えた RDS マルチ AZ

自動フェイルオーバー

データの損失と手動による介入なしで、60 秒という速さで完了する自動データベースフェイルオーバーにより、アプリケーションの高可用性をサポートします。

データベースのパフォーマンスを保護する

スタンバイインスタンスからバックアップすることにより、バックアップ中にプライマリでの I/O アクティビティの一時停止を回避します。

耐久性を向上させる

RDS マルチ AZ 同期レプリケーションテクノロジーを使用して、スタンバイデータベースインスタンスのデータをプライマリに合わせた最新の状態に保ちます。

可用性を高める

2 つ目の AZ にスタンバイインスタンスをデプロイすることで可用性を高め、AZ またはデータベースインスタンスに障害が発生した場合の耐障害性を実現します。

2 つの読み取り可能なスタンバイを備えた RDS マルチ AZ

通常 35 秒以内の自動フェイルオーバー

データ損失も手動による介入もなしで、通常 35 秒未満で自動的にフェイルオーバーします。

読み取りと書き込みに別々のエンドポイントを使用する

書き込みサーバーと適切なリードレプリカスタンバイインスタンスにクエリをルーティングして、パフォーマンスとスケーラビリティを最大化します。

トランザクションコミットレイテンシーを最大 2 倍高速化

1 つのスタンバイを備えたマルチ AZ と比較して、レイテンシーを最大 2 倍改善します。 

マイナーバージョンアップグレードは通常 1 秒未満

マイナーバージョンアップグレードのダウンタイムを通常 35 秒未満に短縮します。デプロイにオープンソースまたは RDS プロキシを追加することで、ダウンタイムを通常 1 秒未満にさらに短縮できます。

比較表

1 つのスタンバイを備えた Amazon RDS シングル AZ もしくは Amazon RDS マルチ AZ、または 2 つの読み取り可能なスタンバイを備えた Amazon RDS マルチ AZ

機能
シングル AZ
1 つのスタンバイを備えたマルチ AZ
2 つの読み取り可能なスタンバイを備えたマルチ AZ
利用可能なエンジン
  • Amazon RDS for PostgreSQL
  • Amazon RDS for MySQL
  • Amazon RDS for MariaDB
  • Amazon RDS for SQL Server
  • Amazon RDS for Oracle
  • Amazon RDS for Db2
  • Amazon RDS for PostgreSQL
  • Amazon RDS for MySQL
  • Amazon RDS for MariaDB
  • Amazon RDS for SQL Server
  • Amazon RDS for Oracle
  • Amazon RDS for Db2
  • Amazon RDS for PostgreSQL
  • Amazon RDS for MySQL
追加読み取り容量
  • なし: 読み取り容量はプライマリに制限されています
    • なし: スタンバイ DB インスタンスは、高可用性のためのパッシブフェイルオーバーターゲットにすぎません
    • 2 つのスタンバイ DB インスタンスがフェイルオーバーターゲットとして機能し、読み取りトラフィックを処理します
    • 読み取り容量は、プライマリからの書き込みトランザクションのオーバーヘッドによって決定されます

    ·        

    トランザクションコミットの低いレイテンシー (より高いスループット)

     

     

    • 1 つのスタンバイを備えた Amazon RDS マルチ AZ と比較して、最大 2 倍高速なトランザクションコミット
    自動フェイルオーバー期間
    • 使用不可: ユーザー、ユーザーが開始したポイントインタイム復元オペレーションが必要になります。
    • このオペレーションの完了には数時間かかる場合があります
    • 最新の復元可能時間 (通常は直近 5 分以内) より後に発生したデータ更新は利用できなくなります
    • 新しいプライマリが利用可能になり、60 秒という速さで新しいワークロードを処理できます
    • フェイルオーバー時間は書き込みスループットに依存しません
    • 新しいプライマリは、通常 35 秒未満で新しいワークロードを提供するために利用できます
    • フェイルオーバー時間はレプリカラグの長さに依存します
    マイナーバージョンアップグレードのダウンタイム
    • マイナーバージョン自動アップグレードを使用する場合、マイナーバージョンアップグレードのダウンタイムは Amazon RDS の 30 分のメンテナンス時間中に発生します
    • マイナーバージョン自動アップグレードを使用する場合、マイナーバージョンアップグレードのダウンタイムは Amazon RDS の 30 分のメンテナンス時間中に発生します
    • 顧客がオープンソースまたは Amazon RDS Proxy をデプロイに追加した場合、通常 1 秒未満
    • 読み取り可能なスタンバイが 2 つあるマルチ AZ では、通常 35 秒未満
    AZ の停止に対するより高い回復力
    • なし: AZ に障害が発生した場合、リスクデータの損失とフェイルオーバー時間
    • AZ に障害が発生した場合、ワークロードは自動的に最新のスタンバイにフェイルオーバーします
    • 障害が発生した場合、残りの 2 つのスタンバイの 1 つが引き継ぎ、プライマリからのワークロード (書き込み) を処理します
    トランザクションコミットのより低いジッター
    • ジッターに関する最適化なし
    • 専用ログボリュームへのアクセス
    • トランザクションログにローカルストレージを使用してジッターを軽減

    料金

    Amazon RDS マルチ AZ は、RDS for PostgreSQLRDS for MySQLRDS for MariaDBRDS for SQL ServerRDS for OracleRDS for Db2 でご利用いただけます。2 つの読み取り可能なスタンバイを備えた RDS マルチ AZ は、RDS for PostgreSQL と RDS for MySQL で利用できます。Amazon Aurora が 3 つのアベイラビリティーゾーンにわたってデータの耐久性を向上させることで可用性を高める方法については、「Aurora レプリカをによるマルチ AZ 配置」をご覧ください。

    シングル AZ 配置、1 つのスタンバイインスタンスを使用するマルチ AZ 配置、および 2 つの読み取り可能なスタンバイを使用するマルチ AZ 配置の場合、料金は、DB インスタンスが起動されてから停止または削除されるまでに消費された DB インスタンス時間あたりで発生します。DB インスタンスクラスの作成、起動、変更などの請求対象となるステータス変更に続いて、1 時間未満の DB インスタンス時間は 10 分を最小料金として、秒単位で請求されます。

    RDS マルチ AZ 料金の詳細については、RDS 料金ページをご覧ください。

    Missing alt text value

      マルチ AZ 配置として実行するように DB インスタンスを作成または変更すると、Amazon RDS では、同期 "スタンバイ" レプリカが別のアベイラビリティーゾーンで自動的にプロビジョニングされ、維持されます。DB インスタンスに対する更新は、別のアベイラビリティーゾーンにあるスタンバイに同時にレプリケートされるため、同期が維持されるとともに、最新のデータベース更新が DB インスタンスの障害から保護されます。

      特定の種類の計画的なメンテナンスの期間中や、DB インスタンスの障害もしくはアベイラビリティーゾーンの障害といった予期せぬイベントが発生した際には、Amazon RDS はスタンバイに対して自動的にフェイルオーバーし、スタンバイが昇格したら直ちにデータベースの読み込みと書き込みを再開できるようにします。DB インスタンスの名前レコードは変化しないため、アプリケーションによるデータベースオペレーションは、管理者による手動での介入なしで再開できます。マルチ AZ 配置のレプリケーションは透過的です。スタンバイと直接やり取りすることはできません。また、スタンバイを読み取りトラフィックの処理に使用することはできません。マルチ AZ 配置の詳細については、「Amazon RDS ユーザーガイド」をご覧ください。

      アベイラビリティーゾーンとは、他のアベイラビリティゾーンで発生した障害から隔離するために設計されたリージョン内の個別の場所です。各アベイラビリティーゾーンは、その独自の、物理的にはっきりと独立したインフラストラクチャ上で稼動しています。また高い信頼性を保つように設計されています。発電機や冷却装置などの障害対策用装置がアベイラビリティーゾーン間で共有されることはありません。さらに、これらは物理的にそれぞれ別々の場所にあるため、火災、竜巻、または洪水などの極めてまれな災害が発生しても、影響を受けるのは単一のアベイラビリティーゾーンのみです。同一リージョンにある Availability Zone は、待ち時間が短いネットワーク接続を提供します。

      DB インスタンスをマルチ AZ 配置として実行する場合、"プライマリ" はデータベースに読み込みと書き込みの機能を提供します。さらに、Amazon RDS は、背後で「スタンバイ」を設定して管理します。これはプライマリの最新レプリカになります。スタンバイはフェイルオーバー時に(プライマリに)「昇格」します。フェイルオーバー後、スタンバイはプライマリとなり、お客様のデータベースオペレーションを受け付けるようになります。昇格前には、どの時点においても、スタンバイと直接やりとり (例: 読み込みオペレーション) することはありません。単一の DB インスタンスのキャパシティ制限を超えて読み取りトラフィックをスケールする方法に関心のあるお客様は、リードレプリカに関するよくある質問をご覧ください。

      DB インスタンスをマルチ AZ 配置として実行することの主な利点は、データベースの耐久性と可用性が向上することです。マルチ AZ 配置によって高められる可用性と耐障害性は、本番環境に最適です。

      DB インスタンスをマルチ AZ 配置として実行すると、万一 DB インスタンスコンポーネントに障害が発生した場合や、特定のアベイラビリティーゾーンで可用性が失われた場合でも、データの安全が守られます。例えば、プライマリ上のストレージボリュームが障害を受ける場合、Amazon RDS はスタンバイに対して自動的にフェイルオーバーを開始し、お客様のデータベース更新はそのスタンバイですべて完全な状態に保たれます。これは、単一の AZ における標準配備と比較した場合、さらなるデータ堅牢性を提供するものです。単一の AZ における標準配備では、ユーザーによって開始される復元オペレーションが必要で、復元可能な最新時刻 (一般的には過去5分以内) 後に発生した更新は利用できません。

      データベースの可用性を向上できることも、DB インスタンスをマルチ AZ 配置として運用する場合の利点の 1 つです。アベイラビリティーゾーンの障害または DB インスタンスの障害が発生した場合、可用性が影響を受けるのは、自動フェイルオーバーが完了するまでの間のみです。Multi-AZ の可用性に対する恩恵は、計画されたメンテナンスにも拡大されます。

      例えば、自動バックアップでは、バックアップがスタンバイから取得されるため、お好みのバックアップウィンドウで、プライマリ上での I/O アクティビティが中断されることはありません。パッチの適用や DB インスタンスクラスのスケーリングを行う場合、これらのオペレーションは、自動フェイルオーバーの前にスタンバイで最初に行われます。結果的に、可用性が影響を受けるのは、自動フェイルオーバーが完了するのに必要な時間に限定されます。

      DB インスタンスをマルチ AZ 配置として実行することによる暗黙の利点は他にもあります。それは、DB インスタンスのフェイルオーバーが自動で行われ、手動管理が必要ないことです。Amazon RDS のコンテキストでは、これはアベイラビリティーゾーンや DB インスタンスの障害時に、(RestoreDBInstanceToPointInTime または RestoreDBInstanceFromSnapshot API を使用して) DB インスタンスのイベントをモニタリングし、手動で DB インスタンスの復旧を開始する必要がないことを意味します。

      実行される同期的データレプリケーションの結果として、単一のアベイラビリティーゾーンにおける標準 DB インスタンスのデプロイと比較した場合、レイテンシーが増加する可能性があります。

      マルチ AZ DB インスタンス配置を作成するには、AWS マネジメントコンソールで DB インスタンスを起動する際に、[マルチ AZ 配置] で [はい] のオプションをクリックするだけです。

      代わりに、Amazon RDS API を使用している場合は、CreateDBInstance API を呼び出して "マルチ AZ" パラメータの値を "true" に設定することもできます。 既存の標準 (シングル AZ) DB インスタンスをマルチ AZ に変換するには、AWS マネジメントコンソールで DB インスタンスを変更するか、ModifyDBInstance API を使用してマルチ AZ パラメータを true に設定します。

      RDS for PostgreSQLRDS for MySQLRDS for MariaDBRDS for SQL ServerRDS for OracleRDS for Db2 データベースエンジンでは、Amazon RDS インスタンスをシングル AZ からマルチ AZ に変換することを選択すると、次のようになります:

      • プライマリインスタンスのスナップショットが取得されます。
      • そのスナップショットから新しいスタンバイインスタンスが別のアベイラビリティーゾーンに作成されます。
      • 同期レプリケーションがプライマリインスタンスとスタンバイインスタンスとの間に構成されます。

      結果として、インスタンスがシングル AZ からマルチ AZ に変換される際には、ダウンタイムは発生しません。ただし、スタンバイのデータがプライマリと一致するように処理されている間は、レイテンシーが増加することがあります。

      Amazon RDS では、マルチ AZ 配置における一般的な障害シナリオが検出され自動的に復旧されるので、管理者の介入は不要でデータベース操作を可能な限りすみやかに再開できます。Amazon RDS によって自動的にフェイルオーバーが実行されるのは、次のことが発生したときです。

      • プライマリ利用可能ゾーンの可用性損失
      • プライマリに対するネットワーク接続の喪失
      • プライマリ上でのコンピューティングユニット障害
      • プライマリ上でのストレージ障害

      注: DB インスタンスのスケーリングやシステムアップグレード (OS のパッチ適用など) のオペレーションがマルチ AZ 配置に対して行われるときは、可用性を高めるために、これらが最初にスタンバイに適用されて、その後で自動フェイルオーバーが実行されます。したがって、可用性への影響が現れるのは自動フェイルオーバーを完了するのに必要な時間までとなります。なお、Amazon RDS マルチ AZ 配置での自動フェイルオーバーは、データベース操作におけるエラー (長時間実行クエリ、デッドロック、データベース破損など) の発生に対しては行われません。

      はい。Amazon RDS では DB インスタンスイベントが発行され、自動フェイルオーバーの発生が通知されます。Amazon RDS コンソールの 「イベント」 セクションをクリックするか、DescribeEvents API を使用して、DB インスタンスに関係のあるイベントについての情報を返すことも可能です。また、Amazon RDS Event Notifications を利用して、特定の DB イベントが発生したときに、通知を受け取ることも可能です。

      フェイルオーバーは Amazon RDS によって自動的に処理されるため、管理者の介入なく、可能な限り迅速にデータベース操作を再開することができます。フェイルオーバーの際には、Amazon RDS は単純に DB インスタンスの正規名レコード (CNAME) を反転させ、スタンバイをポイントします。そしてこのスタンバイが今度は新しいプライマリになります。ベストプラクティスに従い、アプリケーションレイヤーでデータベース接続のリトライを実施することを推奨いたします。

      フェイルオーバーは、プライマリで障害が検出されてからスタンバイでトランザクションが再開されるまでの間隔として定義され、通常 1 ~ 2 分以内に完了します。コミットされていない大きなトランザクションを回復させる必要があるかどうかによっても、フェイルオーバー時間は異なります。最適の結果を得るには、マルチ AZ では十分に大きなインスタンスタイプを使用することをお勧めします。また、高速かつ予測可能で、安定したスループットパフォーマンスを得るには、マルチ AZ インスタンスとともにプロビジョニング IOPS を使用することをお勧めします。

      Amazon RDS は、さまざまな障害状態のときにユーザーが介入しなくても、自動的にフェイルオーバーを行います。さらに、Amazon RDS ではインスタンスが再起動されたときにフェイルオーバーを開始することもできます。この機能にアクセスするには、AWS マネジメントコンソールを使用するか、RebootDBInstance API 呼び出しを使用してください。

      マルチ AZ 配置を使用するには、"Multi-AZ" パラメータを true に設定するだけです。スタンバイ、同期的レプリケーションおよびフェイルオーバーの作成は、すべて自動的に処理されます。つまり、スタンバイが配置されているアベイラビリティーゾーンを選択したり、利用可能なスタンバイ数を変更したりすることはできません (Amazon RDS は、DB インスタンスプライマリごとに 1 つの専用スタンバイを設定します)。また、スタンバイは、データベースの読み取りアクティビティを許可するよう設定できません。 マルチ AZ 配置の詳細をご覧ください

      はい。スタンバイは、DB インスタンスプライマリと同一のリージョンの異なるアベイラビリティーゾーンに自動的にプロビジョニングされます。

      はい。AWS マネジメントコンソールまたは DescribeDBInstances API を使用することで、現在のプライマリの場所を確認できます。

      アベイラビリティーゾーンは、同一リージョンの別のアベイラビリティーゾーンに対して低レイテンシーでネットワーク接続できるように設計されています。さらに、1 つのアベイラビリティーゾーンでサービスに障害が発生してもお客様のアプリケーションが柔軟性を保てるよう、複数のアベイラビリティーゾーン全体で冗長性を持つようにアプリケーションや他の AWS リソースのアーキテクチャーを設計することも検討できます。マルチ AZ 配置は、お客様サイドでの管理作業なく、データベースに対するこのニーズを解決します。

      自動バックアップと DB スナップショットの機能の扱い方は、シングル AZ での標準的な配置とマルチ AZ 配置のどちらで実行するかにかかわらず同一です。マルチ AZ 配置で実行している場合は、自動バックアップと DB スナップショットはスタンバイから取得されます。これは、プライマリでの I/O 中断を避けるためです。なお、単一 AZ とマルチ AZ のどちらの配置の場合も、バックアップ取得中は I/O レイテンシーが増加する可能性があることにご注意ください(一般的には数分で元に戻ります)。

      復元操作(特定時点への復元または DB スナップショットからの復元)についても、マルチ AZ 配置での機能は標準の単一 AZ 配置の場合と同じです。新しい DB インスタンスの配置は、RestoreDBInstanceFromSnapshot または RestoreDBInstanceToPointInTime API のどちらかで作成できます。これらの新しい DB インスタンスの配置は、ソースバックアップが標準配置で開始されていようと、マルチ AZ 配置で開始されていようと、それとは無関係に標準またはマルチ AZ のどちらかに設定できます。

    RDS マルチ AZ の使用を開始する

    RDS マルチ AZ の使用をすぐに開始する方法についての情報をお探しですか? 以下に、RDS マルチ AZ の使用を数ステップで開始する方法を示す、極めて重要な技術文書ガイド、ユーザーガイド、およびチュートリアルを示します。

    1 - 8 (12) を表示中