サービスダイレクト フォールトを使用するカオス実験を作成して、Azure Cosmos DB インスタンスをフェールオーバーする
カオス実験を使用して、制御された環境で障害を引き起こすことで、アプリケーションにこれらの障害に対する回復性があることを確認できます。 このガイドでは、カオス実験と Azure Chaos Studio を使用して、マルチ読み取り、単一書き込みの Azure Comos DB フェールオーバーを実行します。 この実験を行うことで、フェールオーバー イベントが発生したときにデータ損失を防ぐことができます。
これと同じ手順を使用して、サービスダイレクト障害に対する実験を設定して実行できます。 カオス エージェントのインストールが必要なエージェントベースの障害とは異なり、サービスダイレクト障害は、インストルメンテーションを必要とせずに Azure リソースに対して直接実行されます。
前提条件
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
- Azure Cosmos DB アカウント。 Azure Cosmos DB アカウントがない場合は、こちらの手順に従って作成できます。
- Azure Cosmos DB アカウントの読み取りリージョンと書き込みリージョンが 1 つ以上設定されていること。
Azure Cosmos DB アカウントで Chaos Studio を有効化する
Chaos Studio では、最初にリソースが Chaos Studio にオンボードされていない限り、リソースに対してフォールトを挿入することはできません。 リソースにターゲットと機能を作成することによって、リソースを Chaos Studio にオンボードします。 Azure Cosmos DB アカウントには 1 つのターゲットの種類 (サービスダイレクト) と 1 つの機能 (フェールオーバー) のみがありますが、その他のリソースには最大 2 つのターゲットの種類 (サービスダイレクト障害とエージェントベースの障害に各 1 つ) と多くの機能を含めることができます。
- Azure Portalを開きます。
- 検索バーで Chaos Studio (プレビュー) を検索します。
- [ターゲット] をクリックし、Azure Cosmos DB アカウントに移動します。
- Azure Cosmos DB アカウントの横にあるチェックボックスをオンにして [ターゲットを有効にする] をクリックし、ドロップダウン メニューから [サービスダイレクト ターゲットを有効にする] をクリックします。
- 選択したリソースが正常に有効化されたことを示す通知が表示されます。
これで、Azure Cosmos DB アカウントが Chaos Studio に正常にオンボードしました。 また、 [ターゲット] ビューで、このリソースで有効になっている機能を管理できます。 リソースの横にある [アクションの管理] リンクをクリックすると、そのリソースに対して有効になっている機能が表示されます。
実験の作成
これで Azure Cosmos DB アカウントがオンボードされたので、実験を作成できます。 カオス実験には、ターゲット リソースに対して実行するアクションを、順番に実行するステップと、並行して実行する分岐に分けて定義します。
- Chaos Studio ナビゲーションの [実験] タブをクリックします。 このビューでは、すべてのカオス実験を表示および管理できます。 [実験の追加] をクリックします
- [サブスクリプション] 、 [リソース グループ] 、カオス実験をデプロイする [場所] の情報を入力します。 実験に名前を付けます。 [次へ: 実験デザイナー]>
をクリックします
- これで、Chaos Studio 実験デザイナーが表示されます。 実験デザイナーでは、ステップ、分岐、障害などを追加して実験を構築することができます。 ステップと分岐にフレンドリ名を付け、 [障害の追加] をクリックします。
- ドロップダウンから [Cosmos DB フェールオーバー] を選択して、 [期間] に障害が継続する時間を分単位で入力し、 [readRegion] に Azure Cosmos DB アカウントの読み取りリージョンを入力します。 [Next: Target resources >](次へ: ターゲット リソース >)> をクリックします
- ご使用の Azure Cosmos DB アカウントを選択して、[次へ]
をクリックします
- 実験が正しく表示されていることを確認し、[レビューと作成]、[作成] の順にクリックします。
ターゲット リソースに実験のアクセス許可を付与する
カオス実験を作成すると、Chaos Studio によって、ターゲット リソースに対してフォールトを実行するシステム割り当てマネージド ID が作成されます。 実験を正常に実行するには、この ID にターゲット リソースへの適切なアクセス許可を付与する必要があります。 これらの手順は、任意のリソースとターゲットの種類に対して使用できます。そのためには、手順 3 でロールの割り当てを変更して、そのリソースとターゲットの種類に適したロールに一致するようにします。
- Azure Cosmos DB アカウントに移動し、 [アクセス制御 (IAM)] をクリックします。
- [追加] 、 [ロールの割り当ての追加] の順にクリックします。
- Cosmos DB オペレーターを検索して、ロールを選択します。 [次へ]
をクリックします
- [メンバーを選択する] をクリックし、実験名を検索します。 実験を選択し、 [選択] をクリックします。 同じテナント内に同じ名前の実験が複数ある場合、実験名はランダムな文字が追加されて切り詰められます。
- [レビューと割り当て] をクリックし、もう一度 [レビューと割り当て] をクリックします。
実験を実行する
これで、実験を実行する準備が整いました。 影響を確認するには、Azure Cosmos DB アカウントの概要を開き、別のブラウザー タブでデータをグローバルにレプリケートすることをお勧めします。実験中に定期的に更新すると、リージョンのスワップが表示されます。
- [実験] ビューで、実験をクリックし、 [開始] 、 [OK] の順にクリックします。
- [状態] が [実行中] に変わったら、 [履歴] の下にある最新の実行の [詳細] をクリックして、実行中の実験の詳細を確認します。
次のステップ
これで、Azure Cosmos DB サービスダイレクト実験を実行したので、次のことを行う準備ができました。