Azure Chaos Studioのちょっとだけ#Azureリレー
2021-11-17
azblob://2022/11/11/eyecatch/2021-11-17-azure-chaos-studio-preview-000.jpeg

先日Microsoftから意図的に障害や遅延を発生させることができるAzure Chaos Studioがプレビュー機能として発表されました。システムに何が起こるのかを確認し対応策を検討することが可能です。AWSからは同じような機能としてAWS Fault Injection Simulatorがあります。(以下Microsoftより)

アプリの回復性を向上させるための実験プラットフォーム

カオス テストでは、実際の停止をシミュレートした障害を意図的に導入することで、アプリケーションの回復性を向上させることができます。Azure Chaos Studio Preview はフル マネージドのカオス エンジニアリング実験プラットフォームであり、開発の後期から運用まで、発見が困難な問題の検出を加速できます。お客様のアプリを意図的に破壊することで、ギャップを特定し、お客様の顧客が問題の影響を受ける前に緩和策を計画できます。

①リソースの種類とロールの割り当て

VMやVMSSといった主要キャラはもちろん含まれていますね。

リソースの種類
ターゲット名割り当てが推奨されるロール
Microsoft.Compute/virtualMachines
(エージェントベース)
Microsoft-AgentReader
Microsoft.Compute/virtualMachineScaleSets
(エージェントベース)
Microsoft-AgentReader
Microsoft.Compute/virtualMachines
(サービス直接)
Microsoft-VirtualMachineVirtual Machine Contributor
Microsoft.Compute/virtualMachineScaleSets
(サービス直接)
Microsoft-VirtualMachineScaleSetVirtual Machine Contributor
Microsoft.DocumentDb/databaseAccounts (CosmosDB、サービス直接)Microsoft-CosmosDBCosmos DB オペレーター
Microsoft.ContainerService/managedClusters
(サービス直接)
Microsoft-AzureKubernetesServiceChaosMeshAzure Kubernetes Service クラスター ユーザー ロール
Microsoft.Network/networkSecurityGroups
(サービス直接)
Microsoft-NetworkSecurityGroupNetwork Contributor
Microsoft.Cache/Redis (サービス直接)Microsoft-AzureCacheForRedisRedis Cache Contributor
https://docs.microsoft.com/ja-jp/azure/chaos-studio/chaos-studio-fault-…

②障害およびアクション ライブラリ

続いて利用できるアクション ライブラリについてみていきます。適用できるアクションは大きく分けると「障害」と「遅延」の2つで、「遅延」は障害プロバイダーの指定等は特にないようです。「障害」は下記のように26のアクションが用意されており今後も順次追加予定だそうです。

実際に「障害」のアクション一覧は下記です。

  1. CPU 負荷
  2. 物理メモリ負荷
  3. 仮想メモリ負荷
  4. ディスク I/O 負荷 (Windows)
  5. ディスク I/O 負荷 (Linux)
  6. 任意の stress-ng ストレス
  7. Windows サービスを停止する
  8. 時刻の変更
  9. プロセスを強制終了する
  10. DNS エラー
  11. ネットワーク待ち時間
  12. ネットワーク切断
  13. ファイアウォール規則を使用したネットワーク切断
  14. ARM 仮想マシンのシャットダウン
  15. ARM 仮想マシン スケール セット インスタンスのシャットダウン
  16. Cosmos DB のフェールオーバー
  17. AKS Chaos Mesh のネットワーク障害
  18. AKS Chaos Mesh のポッド障害
  19. AKS Chaos Mesh のストレス障害
  20. AKS Chaos Mesh の IO 障害
  21. AKS Chaos Mesh の時刻の障害
  22. AKS Chaos Mesh のカーネル障害
  23. AKS Chaos Mesh の HTTP 障害
  24. AKS Chaos Mesh の DNS 障害
  25. ネットワーク セキュリティ グループ (規則の設定)
  26. Azure Cache for Redis の再起動

参考:https://docs.microsoft.com/ja-jp/azure/chaos-studio/chaos-studio-fault-…

③まとめ

今回はAzureChaosStudioについてみてきました。うまく利用すればより安全にシステムを運用・管理していけそうです。それでは!