# 使用程式碼繪製雲端架構圖 [TOC] ## 學習目的 在需要頻繁撰寫架構圖,有時候需要簡單並整集統一產出節省時間時,就可以運用 coding 的方式快速產出整齊統一的架構圖檔 Diagram as code 是一個可以透過撰寫 python 程式碼的方式轉換為雲端系統架構圖的工具 ## 事前準備 需要準備以下: 1. 安裝 Python 3.6 以上 2. 安裝 Graphviz 進行圖形渲染 3. 安裝 diagrams 套件 [安裝參考](https://diagrams.mingrammer.com/docs/getting-started/installation) ## 撰寫架構圖 繪製一個簡單的 AWS 架構圖,其中包含 Route53、Cloudfront、ELB、ECS、RDS、Redis 等組件服務 ![aws_web_services](https://hackmd.io/_uploads/BkdXioIRT.png) 首先要先將需要使用的組件載入 import 這裡需注意 Cluster 的用法為框 完整程式碼: ```python! from diagrams import Cluster, Diagram from diagrams.aws.network import CloudFront from diagrams.aws.compute import ECS from diagrams.aws.database import ElasticacheForRedis, RDS from diagrams.aws.network import ELB from diagrams.aws.network import PrivateSubnet from diagrams.aws.network import Route53 with Diagram("AWS Web Services", show=False): dns = Route53("Route 53") cdn = CloudFront("CloudFront") lb = ELB("ELB") with Cluster("ECS Cluster"): svc_group = [ECS("web1"), ECS("web2"), ECS("web3")] with Cluster("DB Cluster"): db_primary = RDS("userdb") db_primary - [RDS("userdb ro")] redis= ElasticacheForRedis("Redis") dns >> cdn >> lb >> svc_group svc_group >> db_primary svc_group >> redis ``` ---