初めに
diagramsという物をインストールしてみる
https://diagrams.mingrammer.com
install
Macのhome brewを使った例を示す。
# python3をインストールする。
brew install python3
# diagramsをインストールする
pip3 install diagrams
# graphvizをインストールする。理由は後述。(思った以上にインストールに時間がかかる。)
brew install graphviz
サンプルを動かす
https://diagrams.mingrammer.com/docs/getting-started/examples#clustered-web-services
ここのサンプルを使う。
sample.py
from diagrams import Cluster, Diagram
from diagrams.aws.compute import ECS
from diagrams.aws.database import ElastiCache, RDS
from diagrams.aws.network import ELB
from diagrams.aws.network import Route53
with Diagram("Clustered Web Services", show=False):
dns = Route53("dns")
lb = ELB("lb")
with Cluster("Services"):
svc_group = [ECS("web1"),
ECS("web2"),
ECS("web3")]
with Cluster("DB Cluster"):
db_main = RDS("userdb")
db_main - [RDS("userdb ro")]
memcached = ElastiCache("memcached")
dns >> lb >> svc_group
svc_group >> db_main
svc_group >> memcached
構成図を出力してみる
python3 sample.py
graphviz.backend.ExecutableNotFound: failed to execute ['dot', '-Kdot', '-Tpng', '-O', 'clustered_web_services'], make sure the Graphviz executables are on your systems' PATH
が出て出力失敗した場合。
上記のエラーがが出たときはGraphvizをインストールする必要がある。
brew install graphviz
できたもの
使ってみて
>>
や<<
で繋げていくのはわかりやすい印象でした。
システム構成図をgit管理できるのは良さそう。
より複雑な構成になった時はどうなるか、そして運用していくにはどうするかは、
それぞれチームとで話し合っていく必要がありそうだ。