PlantUML로 코드 기반으로 AWS 아키텍처 다이어그램을 만드는 방법
그 때, draw.io나 Cacoo등의 웹 서비스로 만들고 있는 사람도 많은 것이 아닐까요.
이번에는 또 다른 접근법으로 PlantUML이 코드 기반으로 AWS 아키텍처 다이어그램을 만드는 방법을 소개합니다.
PlantUML 실행 환경 준비
먼저 PlantUML 실행 환경을 준비합니다.
로컬 환경에 설치하는 것이 좋지만 신속하게 시도하려면 PlantUML Web Server을 사용하는 것이 편리합니다.
AWS 아이콘 세트 준비
PlantUML에서는 파일 경로와 URL을 지정하여 리소스를 가져올 수 있습니다.
이를 통해 자작 이미지를 통합할 수 있지만 고맙게도 AWS는 공식적으로 PlantUML을 위한 아이콘 세트를 배포합니다.
기사 집필 시점에서 스타 수가 57로 아직 세상에는 별로 알려지지 않은 것 같습니다.
PlantUML 코드 작성
곧, 다음과 같은 코드를 작성해 보겠습니다.
@startuml Two Modes - Technical View
!define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/master/dist
!include AWSPuml/AWSCommon.puml
!include AWSPuml/General/Users.puml
!include AWSPuml/Mobile/APIGateway.puml
!include AWSPuml/SecurityIdentityAndCompliance/Cognito.puml
!include AWSPuml/Compute/Lambda.puml
!include AWSPuml/Database/DynamoDB.puml
left to right direction
Users(sources, "Events", "millions of users")
APIGateway(votingAPI, "Voting API", "user votes")
Cognito(userAuth, "User Authentication", "jwt to submit votes")
Lambda(generateToken, "User Credentials", "return jwt")
Lambda(recordVote, "Record Vote", "enter or update vote per user")
DynamoDB(voteDb, "Vote Database", "one entry per user")
sources --> userAuth
sources --> votingAPI
userAuth <--> generateToken
votingAPI --> recordVote
recordVote --> voteDb
@enduml
출처 : htps : // 기주 b. 이 m/아wsぁbs/아ws-이콘s-후우 rpぁつつml/bぉb/마s r/레아 D메. md그러면 이러한 다이어그램이 생성됩니다.
각 코드의 의미를 풀어 갑니다.
AWS 아이콘 가져오기
!define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/master/dist
!include AWSPuml/AWSCommon.puml
!include AWSPuml/General/Users.puml
!include AWSPuml/Mobile/APIGateway.puml
!include AWSPuml/SecurityIdentityAndCompliance/Cognito.puml
!include AWSPuml/Compute/Lambda.puml
!include AWSPuml/Database/DynamoDB.puml
사용할 AWS 아이콘을 가져오는 중입니다.여기에서는 GitHub의 URL을 지정하지만 다음과 같이 로컬 파일 경로를 지정할 수 있습니다.
!define AWSPuml path/to/AWSPuml
그리기 방향 지정
left to right direction
그림의 그리기 방향을 왼쪽에서 오른쪽으로 지정합니다.디폴트에서는 위에서 아래이므로, 이 행을 쓰지 않으면 다음과 같이 됩니다.
AWS 리소스 정의
Users(sources, "Events", "millions of users")
APIGateway(votingAPI, "Voting API", "user votes")
Cognito(userAuth, "User Authentication", "jwt to submit votes")
Lambda(generateToken, "User Credentials", "return jwt")
Lambda(recordVote, "Record Vote", "enter or update vote per user")
DynamoDB(voteDb, "Vote Database", "one entry per user")
배포할 AWS 리소스를 정의합니다.이름의 부분은, 실제의 자원명으로 하면(자) 알기 쉬울 것입니다.
각 리소스의 관계 정의
sources --> userAuth
sources --> votingAPI
userAuth <--> generateToken
votingAPI --> recordVote
recordVote --> voteDb
각 리소스의 관계를 정의합니다.자원 사이를
-->
또는 <--
로 연결하면 단방향, <-->
로 연결하면 양방향 화살표가 그려집니다.생성된 다이어그램 포함
Qiita 및 Qiita Team은 PlantUML의 임베디드를 지원하므로 코드 블록 언어에
plantuml
를 지정하여 다이어그램을 생성합니다.PlantUML 포함을 지원하지 않는 서비스의 경우 UML anywhere 이라는 Chrome 확장 프로그램을 사용하면 유용합니다. 1
결론
CloudFormation 템플릿을 로드하고 PlantUML용 코드를 출력해 주는 툴이 있으면 최고군요. 2
Qiita (또는 블로그 등)에 PlantUML로 작성한 UML 그림을 붙일 수 있도록 Chrome 확장 프로그램을 만들었습니다 - Qiita ↩
말하는 법칙 라고 말하지 말아 주세요. ↩
Reference
이 문제에 관하여(PlantUML로 코드 기반으로 AWS 아키텍처 다이어그램을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/munieru_jp/items/088dfc3e5e91b5ea17c3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)