-
Cloud Architecture DiagramCloud 2022. 2. 6. 17:33
Cloud Architecutre 설계할 때, draw.io를 활용했다.
내 주위에는 lucidchart(https://www.lucidchart.com/pages/)를 활용하거나, CSP에서 제공하는 PPT 아이콘을 다운받아 활용하기도 한다.
한 땀, 한 땀 아이콘 찾아 배치하고,
트래픽 flow을 표현하기 위해 선 연결하여,
edge마다 메시지들을 써주고,
그러다가 인스턴스 추가/삭제가 발생하면, 이쁘게 다시 배치하고, 선을 다시 연결하고..
(무한반복)
실 설계보다 그림 그리는 일에 에너지와 시간을 많이 쏟고 있었다.
코드로 UML 다이어그램을 그릴 수 있는 tool들을 검색하다가, diagrams(https://diagrams.mingrammer.com) 발견하여 잠깐 사용해봤다. 이제는 draw.io를 떠나야 할 정도로 만족스럽다.Diagrams · Diagram as Code
Diagram as Code
diagrams.mingrammer.com
설치, 사용법은 docs/guide에 잘 나와 있는데 간략히 정리해본다.
- 설치
- pre-requirement : python 3.6+, graphviz
- (개인 환경 : OSX, python은 conda로 관리한다.)
-
$conda install -c anaconda graphviz ##https://anaconda.org/anaconda/graphviz $conda install -c conda-forge diagrams ##https://anaconda.org/conda-forge/diagrams
- sample
- code
-
from diagrams import Cluster, Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS, RDSMariadbInstance from diagrams.aws.network import ELB from diagrams.aws.analytics import EMRCluster with Diagram("Web Service", show=False) as diag: elb = ELB("elb") with Cluster("web"): webs = [EC2("web01"), EC2("web02"), EC2("web03")] with Cluster("was"): wases = [EC2("was01"), EC2("was02"), EC2("was03")] elb2 = ELB("elb") with Cluster("db"): db_primary = RDSMariadbInstance("primary") db_primary - [RDSMariadbInstance("replica1"), RDSMariadbInstance("replica2")] elb >> webs >> elb2 >> wases >> db_primary << EMRCluster("datalake") diag - output

- 기타
- diagram output은 "show=True, show=False"와 상관없이 기본적으로 작업 폴더에 이미지 파일로 wrtie 한다.
- vscode jupyter에서 작업 파일이 임시저장 상태일 때, run 시키면 write 권한 오류가 나온다. mac에서 vscode temp file 위치가 "~/Library/Application\ Support/Code" 로 알고 있는데, 해당 디렉토리의 권한은 owner rwx 이다. 계정은 같은데.. @@
-
OSError: [Errno 30] Read-only file system: - 작업 파일을 일단 저장한 상태에서 실행하면 해당 오류는 해결된다.
- 설치