SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

AWSとAzureのマネージドサービスで実践カオスエンジニアリング

【Azureのコンテナでカオスエンジニアリング】Azure Chaos StudioでAKS にカオスを挿入する

AWSとAzureのマネージドサービスで実践カオスエンジニアリング 第5回

  • X ポスト
  • このエントリーをはてなブックマークに追加

AKSでの準備作業

 Azure Chaos Studioでは、まず実験対象システムのAKSにChaos Meshを導入する必要があります。

 Chaos Meshを導入する手順は公式ドキュメントを参照ください。

 問題なく作成された場合は、AKS上にて以下のようにChaos Meshが起動していることが確認できます。

$ kubectl get pods -n chaos-testing
NAME                                        READY   STATUS    RESTARTS   AGE
chaos-controller-manager-7fb56f9797-gjhss   1/1     Running   0          39s
chaos-controller-manager-7fb56f9797-htv2z   1/1     Running   0          39s
chaos-controller-manager-7fb56f9797-smd5q   1/1     Running   0          39s
chaos-daemon-tg9w9                          1/1     Running   0          39s
chaos-dashboard-85b45d85db-mhm4p            1/1     Running   0          39s

ターゲットの有効化

 実験を行うためにはAzure Chaos Studioのターゲットとしてリソースを有効化する必要もあります。

 方法についてはMicrosoftの公式ドキュメントを参照ください。

 Azure Chaos Studioにて実験対象のAKSのサービス直接欄が「有効」となっていれば、実験の準備完了です。

ターゲットの有効化
ターゲットの有効化

実験の作成

 これまでの準備が完了したら、ようやく実験の作成を始めることができます。

 実験では、実行するアクションの設定として順次実行される「ステップ」と、並列で実行される「ブランチ」を定義します。

 設定できるアクションは、障害ライブラリのドキュメントに記載されたものの中から選択できます。

 今回は、Podを利用不可にさせる実験を追加します。

 AKSに対する実験を作成するには、Azure PortalにてJSON構成を直接記載します。

実験の作成
実験の作成

 公式ドキュメントにもありますが、このJSONを準備する際には一度YAMLファイルを記載してからJSONにコンバートする方法が簡単です。

 下記のように実験を定義するYAMLファイルを作成し、JSONに変換します。変換の際は、YAMLからJSONへのコンバートできるサイトなどを使うのがよいでしょう。

 YAMLファイル作成に当たっては、公式ドキュメントのChaos MeshのPod障害の設定方法を参照します。

 今回は10分の間、3つあるフロントエンドのPodの1つを利用不可にする実験を行います。

YAMLファイル
action: pod-failure
mode: one
duration: '600s'
selector:
  namespaces:
  - default
  labelSelectors:
    app: azure-vote-front
JSON形式
{"action":"pod-failure","mode":"one","duration":"600s","selector":{"namespaces":["default"],"labelSelectors":{"app":"azure-vote-front"}}}

 このJSONを、パラメータのjsonSpecに記載し、Durationを設定して実験の作成は完了です。

 なお、実験の作成画面で指定するDurationは実験自身の実行期間であり、jsonSpec内のdurationは実験から呼び出されるChaos Meshの実行期間であるため、Duration >= durationとなるように設定します。

次のページ
ターゲットへのアクセス許可設定

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
AWSとAzureのマネージドサービスで実践カオスエンジニアリング連載記事一覧

もっと読む

この記事の著者

石崎 奏(株式会社NTTデータ)(イシザキ ソウ)

 入社以来、NTTデータグループにおけるWindows/Linuxシステムの技術問合せ、トラブルシュート支援、アーキテクチャレビューに従事。現在は、Azureを中心としたクラウド技術者の能力開発や、グループ全体へのAzure活用支援にも携わる。Microsoft MVP for Azure (2022-) Twitter LinkedIn

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

伊藤 歩(株式会社NTTデータ)(イトウ アユム)

 入社以来、公共系システムの基盤開発に従事。昨今はパブリッククラウド ( AWS, Azure, GCP ) を中心にシステム開発を行う。現場でのシステム開発の他に NTT データグループの技術者育成施策を通じて Azure の技術検証を行い、Azureを強みとしている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17233 2023/01/27 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング