Docker
Diagrams
これまではDraw.ioでインフラ構成図を書いていたが、更新履歴が残せなかったり配置をいろいろと考えることがあったが、Diagramsを使うとそのあたりから解放されそうだったので試してみた。
実行環境はDockerで構築した。
.
├── Dockerfile
├── diagram_codes
│ └── sample.py
├── docker-compose.yml
└── images
└── sample.png
Dockerfile
FROM python:3.9.5-buster
RUN apt-get update && \
apt-get install -y graphviz
RUN pip install diagrams
RUN groupadd -r appgroup && useradd -r -g appgroup appuser
USER appuser
WORKDIR /home/appuser/app
docker-compose.yml
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
command: bash
tty: true
volumes:
- .:/home/appuser/app
sample.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("Web Service", show=False, filename="images/sample"):
ELB("lb") >> EC2("web") >> RDS("userdb")
Dockerコンテナに対しpythonを実行する。
docker-compose up -d
docker-compose exec app python diagram_codes/sample.py
filename
で指定したimages配下にファイルが作成される。
かんたん。そしてGit管理できるので更新履歴も都度残せて良さそう。
業務のインフラ構成もDiagramsで管理していくことにする。
ひとりインフラだから正直どっちでもいいのだけど…
サンプルではDiagramsの例しか記載してないが、Examplesを参考に各リソースをimportして配置することができる。
OnPremではFluentdやCircleCIなんかもあったのでいろいろできそう。
それでもなければカスタムでローカル画像を指定してインポートすることも可能っぽい。