J'ai utilisé draw.io pour dessiner le diagramme de configuration, mais j'ai entendu dire qu'il pouvait être dessiné avec du code en utilisant un outil appelé diagrammes, alors je l'ai essayé.
├── Dockerfile
└── test.py
Documentation a python3.6 ou supérieur et Graphviz installé. Puisqu'il y en a, j'ai créé un Dockerfile comme ça. (Je voulais utiliser alpin cette fois, alors je l'ai créé avec alpin.)
FROM python:3.8-alpine
WORKDIR /app
RUN apk add --update --no-cache \
graphviz \
ttf-freefont \
curl \
bash
#Ajouter une police
RUN curl -O https://noto-website.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip \
&& mkdir -p /usr/share/fonts/noto \
&& unzip NotoSansCJKjp-hinted.zip -d /usr/share/fonts/noto/ \
&& fc-cache -fv \
&& rm NotoSansCJKjp-hinted.zip
RUN pip install diagrams
Après cela, créez le Dockerfile créé. N'hésitez pas à marquer! Cette fois, appelons cela des «diagrammes».
$ docker build -t diagrams .
Créez le fichier en vous référant au Document officiel.
from diagrams import Cluster, Diagram
from diagrams.aws.compute import ECS
from diagrams.aws.database import ElastiCache, Aurora
from diagrams.aws.network import ELB
from diagrams.aws.network import Route53
with Diagram("Test", show=False):
dns = Route53("dns")
lb = ELB("ALB")
api = ECS("API")
redis = ElastiCache("redis")
with Cluster("DB Cluster"):
db_test = Aurora("test")
db_test - [Aurora("test ro")]
dns >> lb >> api
api >> db_test
api >> redis
db_test >> redis
Puisque nous utilisons Docker cette fois, démarrez le conteneur comme suit et exécutez la commande.
docker run --rm -v `pwd`:/app diagrams python test.py
Après l'exécution, le fichier png
sera ajouté.
├── Dockerfile
├── test.png
└── test.py
Si vous dessinez simplement un diagramme de configuration, il n'y a pas de problème avec draw.io, mais je pense que c'est un bon point que vous puissiez le gérer avec Git comme code. Cependant, quand je n'avais pas l'image que je voulais, ou quand je voulais dessiner des choses compliquées (AZ, tâches ECS, etc.), c'était difficile à utiliser, donc je pense que je vais essayer diverses choses avec les futures mises à jour.
Recommended Posts