サービスダイレクト フォールトを使用するカオス実験を作成して、Azure Cosmos DB インスタンスをフェールオーバーする

カオス実験を使用して、制御された環境で障害を引き起こすことで、アプリケーションにこれらの障害に対する回復性があることを確認できます。 このガイドでは、カオス実験と Azure Chaos Studio を使用して、マルチ読み取り、単一書き込みの Azure Comos DB フェールオーバーを実行します。 この実験を行うことで、フェールオーバー イベントが発生したときにデータ損失を防ぐことができます。

これと同じ手順を使用して、サービスダイレクト障害に対する実験を設定して実行できます。 カオス エージェントのインストールが必要なエージェントベースの障害とは異なり、サービスダイレクト障害は、インストルメンテーションを必要とせずに Azure リソースに対して直接実行されます。

前提条件

Azure Cosmos DB アカウントで Chaos Studio を有効化する

Chaos Studio では、最初にリソースが Chaos Studio にオンボードされていない限り、リソースに対してフォールトを挿入することはできません。 リソースにターゲットと機能を作成することによって、リソースを Chaos Studio にオンボードします。 Azure Cosmos DB アカウントには 1 つのターゲットの種類 (サービスダイレクト) と 1 つの機能 (フェールオーバー) のみがありますが、その他のリソースには最大 2 つのターゲットの種類 (サービスダイレクト障害とエージェントベースの障害に各 1 つ) と多くの機能を含めることができます。

  1. Azure Portalを開きます。
  2. 検索バーで Chaos Studio (プレビュー) を検索します。
  3. [ターゲット] をクリックし、Azure Cosmos DB アカウントに移動します。 Azure portal での [ターゲット] ビュー
  4. Azure Cosmos DB アカウントの横にあるチェックボックスをオンにして [ターゲットを有効にする] をクリックし、ドロップダウン メニューから [サービスダイレクト ターゲットを有効にする] をクリックします。 Azure portal でターゲットを有効にする
  5. 選択したリソースが正常に有効化されたことを示す通知が表示されます。 ターゲットが正常に有効化されたことを示す通知

これで、Azure Cosmos DB アカウントが Chaos Studio に正常にオンボードしました。 また、 [ターゲット] ビューで、このリソースで有効になっている機能を管理できます。 リソースの横にある [アクションの管理] リンクをクリックすると、そのリソースに対して有効になっている機能が表示されます。

実験の作成

これで Azure Cosmos DB アカウントがオンボードされたので、実験を作成できます。 カオス実験には、ターゲット リソースに対して実行するアクションを、順番に実行するステップと、並行して実行する分岐に分けて定義します。

  1. Chaos Studio ナビゲーションの [実験] タブをクリックします。 このビューでは、すべてのカオス実験を表示および管理できます。 [実験の追加] をクリックしますAzure portal の [実験] ビュー
  2. [サブスクリプション][リソース グループ] 、カオス実験をデプロイする [場所] の情報を入力します。 実験に名前を付けます。 [次へ: 実験デザイナー]>基本的な実験の詳細の追加 をクリックします
  3. これで、Chaos Studio 実験デザイナーが表示されます。 実験デザイナーでは、ステップ、分岐、障害などを追加して実験を構築することができます。 ステップ分岐にフレンドリ名を付け、 [障害の追加] をクリックします。 実験デザイナー
  4. ドロップダウンから [Cosmos DB フェールオーバー] を選択して、 [期間] に障害が継続する時間を分単位で入力し、 [readRegion] に Azure Cosmos DB アカウントの読み取りリージョンを入力します。 [Next: Target resources >](次へ: ターゲット リソース >)> をクリックします障害プロパティ
  5. ご使用の Azure Cosmos DB アカウントを選択して、[次へ][ターゲットの追加] をクリックします
  6. 実験が正しく表示されていることを確認し、[レビューと作成][作成] の順にクリックします。実験を確認して作成する

ターゲット リソースに実験のアクセス許可を付与する

カオス実験を作成すると、Chaos Studio によって、ターゲット リソースに対してフォールトを実行するシステム割り当てマネージド ID が作成されます。 実験を正常に実行するには、この ID にターゲット リソースへの適切なアクセス許可を付与する必要があります。 これらの手順は、任意のリソースとターゲットの種類に対して使用できます。そのためには、手順 3 でロールの割り当てを変更して、そのリソースとターゲットの種類に適したロールに一致するようにします。

  1. Azure Cosmos DB アカウントに移動し、 [アクセス制御 (IAM)] をクリックします。 Azure Cosmos DB の概要ページ
  2. [追加][ロールの割り当ての追加] の順にクリックします。 アクセス制御の概要
  3. Cosmos DB オペレーターを検索して、ロールを選択します。 [次へ][Azure Cosmos DB オペレーター ロールを割り当てる] をクリックします
  4. [メンバーを選択する] をクリックし、実験名を検索します。 実験を選択し、 [選択] をクリックします。 同じテナント内に同じ名前の実験が複数ある場合、実験名はランダムな文字が追加されて切り詰められます。 ロールに実験を追加する
  5. [レビューと割り当て] をクリックし、もう一度 [レビューと割り当て] をクリックします。

実験を実行する

これで、実験を実行する準備が整いました。 影響を確認するには、Azure Cosmos DB アカウントの概要を開き、別のブラウザー タブでデータをグローバルにレプリケートすることをお勧めします。実験中に定期的に更新すると、リージョンのスワップが表示されます。

  1. [実験] ビューで、実験をクリックし、 [開始][OK] の順にクリックします。
  2. [状態][実行中] に変わったら、 [履歴] の下にある最新の実行の [詳細] をクリックして、実行中の実験の詳細を確認します。

次のステップ

これで、Azure Cosmos DB サービスダイレクト実験を実行したので、次のことを行う準備ができました。