システム構成図を手書きではなく、コード化したいと思い調べていたら
PythonのDiagramsでかけるみたいなので、インストールと作成方法を試してみる
Diagrams とは
Diagramsは、Pythonで書かれたオープンソースのライブラリで、
インフラストラクチャーやシステムアーキテクチャの構成図をコード化するOSSみたいです。
Diagramsは以下のようなクラウドサービスにも対応してます。
※詳細は公式サイトの「Nodes」を参照
OnPremでは、よく利用される以下OSSのDiagramsもあるので、これだけで構成図が作れそう
- Fluentd
- GitlabCI
- Jenkins
- Ansible
- Datadog
Diagrams を実行するまでの手順
Windows OSでDiagramsを使うには、以下の3つの設定が必要です。
- Pythonをインストール
- Graphvizをインストール
- Diagramsをインストール
詳細手順を以下に案内します。
①Pythonをインストールする
Pythonの公式サイトから、Windows用のインストーラをダウンロード&インストールするか、
Microsoft Store から Python on Windowsをダウンロード&インストールします。
※最新バージョンの3.11だとDiagramsがエラーになって動作しなかったので、3.10をインストールしてください。
各インストール方法は以下を参照
インストールしたら、以下コマンドでバージョンを確認
python --version
VisualStudioCodeで実行する人は、Python 拡張機能のインストールするのもオススメです
②Graphvizをインストールする
Graphvizの公式サイトから、Windows用のインストーラをダウンロードします。
ダウンロードしたインストーラを実行し、指示に従ってGraphvizをインストールします。
windowsへのインストール手順は過去記事のここを参照してください。
インストールしたら、以下コマンドでバージョンを確認
dot -V
③Diagramsをインストールする
コマンドプロンプトを開き、以下のコマンドを実行し Diagrams をインストールします。
pip install diagrams
詳細手順が知りたい人はここを参照
Diagramsの動作確認
インストールが完了したら、Pythonスクリプト内でDiagramsを使ってシステム構成図を作成することができます。
ためしに公式のExamplesコードを試してみましょう。
-
テストコード(ファイル名:diagram.py)
from diagrams import Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS from diagrams.aws.network import ELB with Diagram("Grouped Workers", show=False, direction="TB"): ELB("lb") >> [EC2("worker1"), EC2("worker2"), EC2("worker3"), EC2("worker4"), EC2("worker5")] >> RDS("events")
-
テストコード実行
python diagram.py
-
作成されたシステム構成図(ファイル:grouped_workers.png)