MENU

Knowledge Oasisは主にAIとAWSの知識を共有するブログです。その他ITに関する知識やまれに生活に役立つ知識も共有するかもしれません。

KOふみ
名前はKOふみ(こふみ)。独立系SIerで20年のキャリアを持ち、新人研修の講師から請負開発まで幅広く経験。現在はAIを駆使したソリューション開発に従事。資格は応用情報技術者、データベーススペシャリスト、プロジェクトマネージャー、PMP、簿記2級。AWS学習中で、将来はAWSアンバサダーを目指す。

クラウド構成図をPythonで描けるようにする

クラウド構成図をPythonで描けるようにする
  • URLをコピーしました!

AWSの学習をしています。AWSに携わるにあたって必ず出てくるのがクラウド構成図です。これをExcelやPower Pointで描くのは大変だと思います。そこでPythonで描く方法を調べました。Pythonで描くことで様々なメリットが得られます。参考にしてください。

目次

環境準備

Diagramsというライブラリを使用します。Diagramsでは内部でGraphvizを使用するのでまずはGraphvizからインストールしていきます。

この記事で使用する環境は以下の通りです。

  • Windows11
  • Python 3.12.3
  • graphviz 11.0.0
  • Diagrams 0.23.4

Graphvizのインストール

ダウンロードページから環境にあったファイルをダウンロードしてください。

Windows版はZipファイルなので解凍して好きなディレクトリへ格納してください。

解凍先のbinディレクトリを環境変数のpathに設定します。

Diagramsのインストール

Pythonの仮想環境を作成して、アクティベートします。

以下のコマンドでインストールします。

pip install diagrams

この時、以下のようなエラーが発生した場合の対応方法はこちらにまとめてあります。

pipが正常完了すれば準備完了です。

動作確認

以下のコードを実行してgrouped_workers.pngというファイルが出力されればOKです。

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")
grouped_workers.png。Diagramsで出力したAWS構成図。

使用できるNode

DiagramsではAWSの他にAzureやGCPの構成図も作成することができます。その際に使用できるNode(アイコン)はここにまとめられています。Nodeごとにimportして使用するようです。

Customを使用することで自分で用意したアイコンで図を作成することもできます。

Pythonで構成図を作成するメリット

大きく3つのメリットがあると考えています。

位置調整をDiagramsが行ってくれる。見た目を調整するためにマウスの細かい操作をする必要がありません。正しい構成になっているかに意識を集中るることができます。

差分比較とバージョン管理ができる。画像ではなくテキストベースのPythonコードなので差分を比較することができます。画像だと画像同士を見比べないと何を直したのかがわかりませんが、Pythonコードであれば容易に差分確認を行うことができます。差分確認ができることでバージョン管理が容易になるのもポイントです。

生成AIに描かせることで効率化できる。GPT-4oなど画像認識能力が高く、手描きのラフな構成図からPythonのコードを作ることも可能になってきます。

さいごに

いかがだったでしょうか?

クラウド構成図をPythonで描くことができました。3つのメリットは結構大きな気がしています。クラウド構成図をExcelやPowerPointで作っている人はぜひ一度試してみてください。

  • URLをコピーしました!

コメント

コメントする

目次