カオス実験を使用して、制御された環境で障害を引き起こすことで、アプリケーションにこれらの障害に対する回復性があることを確認できます。 この記事では、カオス実験と 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 つはサービスダイレクト障害用です。 もう 1 つのターゲットの種類はエージェントベース障害用です。 他のリソースには、他にも多くの機能がある場合があります。
Azure portal を開きます。
検索バーで Chaos Studio を検索します。
[ターゲット] を選択し、Azure Cosmos DB アカウントに移動します。
Azure Cosmos DB アカウントの横にあるチェック ボックスをオンにします。 [ ターゲットを有効にする] を選択し、ドロップダウン メニューから [サービスダイレクト ターゲットを有効にする ] を選択します。
目的のリソースが一覧表示されていることを確認します。 [ 確認と有効化] を選択し、[ 有効] を選択します。
選択したリソースが正常に有効になっていることを示す通知が表示されます。
これで、Azure Cosmos DB アカウントが Chaos Studio に正常に追加されました。 [ターゲット] ビューでは、このリソースで有効になっている機能を管理することもできます。 リソースの横にある [アクションの管理 ] リンクを選択すると、そのリソースに対して有効になっている機能が表示されます。
実験の作成
実験を作成するための準備ができました。 カオス実験の作成時には、ターゲット リソースに対して実行するアクションを定義します。 アクションは編成され、順番に実行されます。 カオス実験では、ブランチに対して並列に実行するアクションも定義できます。
Chaos Studio の [ 実験 ] タブを選択します。 このビューでは、ご自分のすべてのカオス実験を表示および管理できます。 [ 作成>新しい実験] を選択します。
混乱実験をデプロイするサブスクリプション、リソース グループ、場所を入力します。 実験に名前を付けます。 [次へ: 実験デザイナー] を選択します。
現在表示されている画面は、Chaos Studio の実験デザイナーです。 実験デザイナーでは、ステップ、分岐、および障害を追加して実験を構築することができます。 ステップとブランチに親しみやすい名前を付け、[アクションの追加] > [エラーの追加] を選択します。
ドロップダウン リストから [CosmosDB フェールオーバー ] を選択します。 Duration に、失敗が続く時間を分単位で入力し、readRegion に Azure Cosmos DB アカウントの読み取りリージョンを入力します。 [ 次へ: ターゲット リソース] を選択します。
Azure Cosmos DB アカウントを選択し、[ 次へ] を選択します。
実験が正しいことを確認し、[確認と作成]>[作成] を選択します。
ターゲット リソースに実験のアクセス許可を付与する
カオス実験を作成すると、ターゲット リソースに対して障害を実行するシステム割り当てマネージド ID が Chaos Studio によって作成されます。 実験を正常に実行するには、この ID にターゲット リソースへの 適切なアクセス許可 を付与する必要があります。 手順 3. のロールの割り当てを、そのリソースとターゲットの種類に適したロールと一致するように変更することで、任意の リソースとターゲットの種類に対してこれらの手順を使用できます。
Azure Cosmos DB アカウントに移動し、 アクセス制御 (IAM) を選択します。
[ 追加]>[ロールの割り当ての追加] を選択します。
Cosmos DB オペレーターを検索し、ロールを選択します。 [ 次へ] を選択します。
[ メンバーの選択] を選択 し、実験名を検索します。 実験を選んで、選択をクリックしてください。 同じテナント内に同じ名前の実験が複数ある場合は、実験名が切り詰められ、ランダムな文字列が追加されます。
[確認と割り当て]>[確認と割り当て] の順に選択します。
実験を実行する
これで、実験を実行する準備が整いました。 その効果を確認するには、Azure Cosmos DB アカウントの概要を開き、別のブラウザー タブで [データをグローバルにレプリケート する] に移動することをお勧めします。実験中に定期的に更新すると、リージョンのスワップが表示されます。
- [実験] ビュー で 、実験を選択します。 [開始>OK] を選択します。
- [状態] が [実行中] に変わったら、[履歴] で最新の実行の詳細を選択して、実行中の実験の詳細を表示します。
次のステップ
これで、Azure Cosmos DB サービス直接実験を実行したので、次のことを行う準備ができました。