2021年11月1日月曜日

Python の diagrams を使ってサーバ構成図をコードで記述する

Python の diagrams を使ってサーバ構成図をコードで記述する

概要

パワポなどのツールだと構成図がバイナリになってしまい差分などを確認するのが大変です Python の diagrams であればコードで残せるので今回はインストールと簡単なサンプルを紹介します

環境

  • macOS 11.6
  • Python 3.8.3

インストール

  • pipenv install diagrams

サンプルコード

とりあえず動作させることができるサンプルコードがあるのでこれを動かしてみます

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"):
    lb = ELB("lb")
    workers = [EC2("worker1"),
               EC2("worker2"),
               EC2("worker3"),
               EC2("worker4"),
               EC2("worker5")]
    db = RDS("events")
    lb >> workers >> db

動作確認

これで grouped_workers.png というファイルが作成されます

簡単な使い方の解説

with Diagram の引数で図のタイトルを設定します
show=True にすると自動でファイルを開きます
direction は矢印の向きで BT や LR などを指定できます
各種オプションは graphviz のオプションと同じなので指定可能なオプションは graphviz のドキュメントを見ると良いかなと思います

各種ノードは >> で結合することで矢印でつなぐことができます
結合方法は他に「<<」と「-」があります
ハイフンや矢印なしの接続になります

サンプルにはないですが Cluster を使うとその配下のノードを枠で囲うことができます
またクラスタは階層化することもできます

最後に

内部的には graphviz ですが Python で書けるので Python に慣れている人にはオススメです
サンプルでは AWS のアイコン集を使っていますが gcp や自分でカスタマイズすることもできます

参考サイト

0 件のコメント:

コメントを投稿