Amazon Aurora
Aurora のユーザーガイド

障害挿入クエリを使用した Amazon Aurora のテスト

障害挿入クエリを使用して、Amazon Aurora DB クラスターの耐障害性をテストできます。障害挿入クエリは、Amazon Aurora インスタンスに対して SQL コマンドとして発行され、次のいずれかのイベント発生をシミュレートしてスケジュールすることができます。

  • 書き込みまたは読み取り DB インスタンスの障害

  • Aurora レプリカの障害

  • ディスクの障害

  • ディスクの輻輳

クラッシュを指定する障害挿入クエリは、Aurora インスタンスのクラッシュを強制的に発生させます。その他の障害挿入クエリでは、障害イベントのシミュレーションが実行されますが、そのイベントは発生しません。障害挿入クエリを送信する場合、障害イベントのシミュレーションが発生する時間も指定します。

Aurora レプリカのエンドポイントに接続することによって、Aurora レプリカインスタンスの 1 つに障害挿入クエリを送信できます。詳細については、「Amazon Aurora 接続管理」を参照してください。

インスタンスのクラッシュのテスト

ALTER SYSTEM CRASH 障害挿入クエリを使用して、Amazon Aurora インスタンスのクラッシュを強制的に発生させることができます。

この障害挿入クエリでは、フェイルオーバーが発生しません。フェイルオーバーをテストする場合、RDS コンソールで DB クラスターの [Failover (フェイルオーバー)] インスタンスアクションを選択するか、AWS CLI の failover-db-cluster コマンド、または RDS API の FailoverDBCluster オペレーションを使用できます。

構文

ALTER SYSTEM CRASH [ INSTANCE | DISPATCHER | NODE ];

オプション

この障害挿入クエリでは、次のクラッシュタイプのいずれかを指定できます。

  • INSTANCE Amazon Aurora インスタンスの MySQL 互換データベースのクラッシュがシミュレートされます。

  • DISPATCHER Aurora DB クラスターのマスターインスタンスにあるディスパッチャーのクラッシュがシミュレートされます。ディスパッチャー は Amazon Aurora DB クラスターのクラスターボリュームに対して更新を書き込みます。

  • NODE MySQL 互換データベースと Amazon Aurora インスタンスのディスパッチャーの両方のクラッシュがシミュレートされます。この障害挿入のシミュレーションでは、キャッシュも削除されます。

デフォルトのクラッシュタイプは INSTANCE です。

Aurora レプリカの障害のテスト

ALTER SYSTEM SIMULATE READ REPLICA FAILURE 障害挿入クエリを使用して、Aurora レプリカの障害をシミュレートできます。

Aurora レプリカの障害は、指定した期間で、Aurora レプリカまたは DB クラスター内のすべての Aurora レプリカに対するすべてのリクエストをブロックします。指定した期間が終了すると、影響を受けた Aurora レプリカは自動的にマスターインスタンスと同期されます。

構文

ALTER SYSTEM SIMULATE percentage_of_failure PERCENT READ REPLICA FAILURE [ TO ALL | TO "replica name" ] FOR INTERVAL quantity { YEAR | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND };

オプション

この障害挿入クエリは、以下のパラメータを取ります。

  • percentage_of_failure 障害イベントの発生時にブロックするリクエストの割合。この値は 0 ~ 100 の範囲で指定できます。0 を指定する場合、リクエストはブロックされません。100 を指定する場合、すべてのリクエストがブロックされます。

  • 障害のタイプ — シミュレートする障害のタイプ。DB クラスター内のすべての Aurora レプリカの障害をシミュレートするには、TO ALL を指定します。1 つの Aurora レプリカの障害をシミュレートするには、TO と Aurora レプリカの名前を指定します。デフォルトの障害タイプは TO ALL です。

  • quantity Aurora レプリカの障害をシミュレートする時間。この値は時間の量の後に時間単位を続けて指定します。シミュレーションは、指定した単位の期間だけ発生します。たとえば、20 MINUTE と指定すると、シミュレーションは 20 分間実行されます。

    注記

    Aurora レプリカの障害イベントの時間を指定するときには注意が必要です。指定する時間が長すぎ、障害イベントの発生時にマスターインスタンスが大量のデータを書き込んだ場合、Aurora DB クラスターは Aurora レプリカがクラッシュしたものと見なし、レプリカを置き換える可能性があります。

ディスクの障害のテスト

ALTER SYSTEM SIMULATE DISK FAILURE 障害挿入クエリを使用して、Aurora DB クラスターのディスクの障害をシミュレートできます。

ディスク障害のシミュレーションでは、Aurora DB クラスターがランダムにディスクセグメントをエラーとしてマークします。シミュレーションを実行する間、これらのセグメントに対するリクエストはブロックされます。

構文

ALTER SYSTEM SIMULATE percentage_of_failure PERCENT DISK FAILURE [ IN DISK index | NODE index ] FOR INTERVAL quantity { YEAR | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND };

オプション

この障害挿入クエリは、以下のパラメータを取ります。

  • percentage_of_failure — 障害イベントの発生時にエラーとしてマークするディスクの割合。この値は 0 ~ 100 の範囲で指定できます。0 を指定すると、ディスクのどの部分もエラーとしてマークされません。100 を指定すると、ディスク全体がエラーとしてマークされます。

  • DISK index — 障害イベントをシミュレートする特定のデータの論理ブロック。利用可能な論理データブロックの範囲を超えた場合は、指定できる最大インデックス値を示すエラーが表示されます。詳細については、「Aurora DB クラスターのボリュームステータスの表示」を参照してください。

  • NODE index — 障害イベントをシミュレートする特定のストレージノード。利用可能なストレージノードの範囲を超えた場合は、指定できる最大インデックス値を示すエラーが表示されます。詳細については、「Aurora DB クラスターのボリュームステータスの表示」を参照してください。

  • quantity — ディスクの障害をシミュレートする時間。この値は時間の量の後に時間単位を続けて指定します。シミュレーションは、指定した単位の期間だけ発生します。たとえば、20 MINUTE と指定すると、シミュレーションは 20 分間実行されます。

ディスクの輻輳のテスト

ALTER SYSTEM SIMULATE DISK CONGESTION 障害挿入クエリを使用して、Aurora DB クラスターのディスクの障害をシミュレートできます。

ディスク輻輳のシミュレーションでは、Aurora DB クラスターがランダムにディスクセグメントを輻輳としてマークします。これらのセグメントに対するリクエストは、シミュレーションを実行する間、指定された最小遅延値と最大遅延値の間で遅延します。

構文

ALTER SYSTEM SIMULATE percentage_of_failure PERCENT DISK CONGESTION BETWEEN minimum AND maximum MILLISECONDS [ IN DISK index | NODE index ] FOR INTERVAL quantity { YEAR | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND };

オプション

この障害挿入クエリは、以下のパラメータを取ります。

  • percentage_of_failure 障害イベントの発生時に輻輳としてマークするディスクの割合。この値は 0 ~ 100 の範囲で指定できます。0 を指定すると、ディスクのどの部分も輻輳としてマークされません。100 を指定すると、ディスク全体が輻輳としてマークされます。

  • DISK index または NODE index 障害イベントをシミュレートする特定のディスクまたはノード。ディスクまたはノードのインデックスの範囲を超えた場合は、指定できる最大インデックス値を示すエラーが表示されます。

  • minimum および maximum 輻輳による遅延の最小値と最大値をミリ秒単位で指定します。シミュレーションを実行する間、輻輳としてマークされたディスクセグメントでは、ミリ秒単位の最小値と最大値の間の範囲でランダムな遅延が発生します。

  • quantity ディスクの輻輳をシミュレートする時間。この値は時間の量の後に時間単位を続けて指定します。シミュレーションは、指定した時間単位の期間だけ発生します。たとえば、20 MINUTE と指定すると、シミュレーションは 20 分間実行されます。