対象読者
- 業務系システムの開発者、インフラ担当者
- Azureの基本操作を知っている方
Chaos Toolkitとは
Chaos Toolkitは、カオスエンジニアリングを実現するオープンソースソフトウェアです。Chaos Toolkitが提供する拡張機能を利用することにより、Azure、AWS、GCP(Google Cloud Platform)といったパブリッククラウドサービスやKubernetesなどのコンテナプラットフォームに対して疑似的な障害を発生させることができます。
今日のカオスエンジニアリングツールとしては、Netflixが公開するAWS向けカオスエンジニアリングツール「Chaos Monkey」や、Chaos MonkeyをモデルにしたAzure向けカオスエンジニアリングツール「WazMonkey」がオープンソースソフトウェアとして公開されています。また、SaaS提供の「Gremlin」やAWSのマネージドサービスである「AWS Fault Injection Simulator」なども存在しています。
Azureにおいても2021年3月に開催されたIgnite 2021にて「Azure Chaos Studio」が発表され、GAが待ち遠しい状況となっています(本記事執筆時点)。
これらカオスエンジニアリングツールの中でもChaos Toolkitは、マルチプラットフォーム対応、かつ比較的お手軽に導入できるカオスエンジニアリングツールであるため、まずはカオスエンジニアリングを体験してみたいというニーズにマッチするツールと言えます。
それでは、Chaos Toolkitを実際に動かすまでのプロセスを見ていきましょう。
Chaos Toolkitのインストール方法
まず、Chaos Toolkitのインストール方法を説明します。Chaos Toolkitは、Python 3で実装されており、実行する環境にPythonのインストールが必要となります。Chaos Toolkitインストールの大まかな流れは以下の通りとなります。
- Pythonのインストール
- 仮想環境を作成
- Chaos Toolkitのインストール
- Azure用の拡張機能のインストール
1. Pythonのインストール
Chaos Toolkitを実行するOS上にPythonをインストールします。各OSのPythonのインストール方法は以下の通りです。なお、Chaos ToolkitではPython 3.6以降を公式にサポートしています(本記事執筆時点)。
macOSの場合
$ brew install python3
Debian/Ubuntuの場合
$ sudo apt-get install python3 python3-venv
CentOS 7の場合
$ sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm $ sudo yum -y install python35
Windowsの場合
Pythonの公式サイトからパッケージをダウンロードして、インストールします。
2. 仮想環境を作成
Pythonを使用した開発を実施する場合、専用の実行環境である仮想環境を作成することが一般的です。Chaos Toolkitでも仮想環境を利用することが推奨されているので、以下コマンドにより仮想環境を作成します。
ここでは、CentOSにおけるコマンドの例を示します。
# 仮想環境を作成 $ python3 -m venv ~/.venvs/chaostk # 仮想環境をアクティブ化 $ source ~/.venvs/chaostk/bin/activate
3. Chaos Toolkitのインストール
以下のコマンドにより、仮想環境にChaos Toolkitをインストールします。
(chaostk) $ pip install -U chaostoolkit
インストール後、以下のコマンドによりChaos Toolkitのバージョンを表示してみます。Chaos Toolkitのバージョンが表示されていれば、Chaos Toolkitが正しくインストールされています。
(chaostk) $ chaos --version
4. Azure用の拡張機能のインストール
Azureに対してChaos Toolkitを実行するためにはAzure用の拡張機能が必要となるため、Azure用の拡張機能もインストールしておきます。インストール方法はシンプルで、以下のコマンドを実行することによりAzure用の拡張機能をインストールできます。
$ pip install -U chaostoolkit-azure
これで、Azureに対するChaos Toolkit実行環境のセットアップは完了です。