SHOEISHA iD

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

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

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

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

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

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

実験内容

 今回の実験では、フロントエンドのPodの障害を発生させ、実験対象システムが障害に耐えうることを確認します。

 具体的には、フロントエンドのPodを3つ起動するようにしておき、そのうちのPodの1つを停止しても「正常性判断の定義」を満たすことを確認します。

 まずは、サンプルソリューションでAKSに適用したマニフェストファイルにて、azure-vote-frontのreplicasを3に修正します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 3

( 後略 )

 修正したマニフェストファイルをAKSに適用し、フロントエンドのPodが3つ起動していることを確認します。

$ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
azure-vote-back-59cb7dc555-sxzwg    1/1     Running   0          10h
azure-vote-front-5f4d7db9c8-9bt8r   1/1     Running   0          10h
azure-vote-front-5f4d7db9c8-n6mx7   1/1     Running   0          4h29m
azure-vote-front-5f4d7db9c8-p2pg8   1/1     Running   0          4h29m

 続いて、実験対象システムが障害に耐えうることを確認するために、Azure Monitorにて「正常性判断の定義」をもとに以下の状態を異常としてアラート検知できるようにします。

 実験中にアラート検知がないことで、逆説的に「正常性判断の定義」を満たすことを示します。

  • 5分間のHTTPステータスが200のリクエスト数/5分の総リクエスト数 < 90%
  • 5分間のリクエストのレスポンスタイムの90パーセンタイル値 > 3000ms
Azure Monitorのアラート設定
Azure Monitorのアラート設定

 なお、前者はAzure Application Insightsで取得するリクエスト成否に関するメトリック(SuccessRate)を使用します。後者は第3回の記事と同様に「5分間のリクエストのレスポンスタイムの90パーセンタイル値」は Azure Application Insightsで取得するログに対して、以下のKustoクエリを適用して取得します。

let dataset = dependencies
| where timestamp > ago(5m)
;
dataset | summarize percentile(duration, 90)

 それでは、次項からAzure Chaos Studioの具体的な設定に入ります。

 設定の流れはMicrosoftの公式ドキュメントも参照ください。

次のページ
AKSでの準備作業

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング