본문 바로가기

AWS

딸깍하면 완성되는 AWS Architecture Diagram with Kiro-CLI?

 

오늘은 AWS 아키텍쳐를 빠르고 간편하게 그려보는 방법에 대해서 알아볼까 합니다.


사실 뭐든 처음 배우시거나 익숙치 않은 분들에게 글로서 내용을 표현하려고 해도 쉽지 않더라구요. 
마치 그냥 소설책보단 만화책이 좀 더 잘 와닿고 빨리 읽히는 것 처럼요.
기초 서적중에서도 "그림으로 배우는..." 시리즈 류의 책을 기초 서적으로 추천드리기도 합니다.

출처 : Yes24


Web Console에서 아키텍쳐에 맞춰서  어찌저찌 만들긴 했지만
hands-on이나, lab대로 따라 만들어도 내 실 생활에 쓰지 않으면 바로 까먹기 마련입니다.

저도 강의를 만들고 그림을 올려놓고 설명을 해야 좀 더 잘 이해가 되실거 같아서 항상 만들려고 노력하는데요.

Drawio로 그려서 보여주는 것도 깔끔하고 괜찮지만, 
항상 문제가 매번 새로 그려야 하기도 하고 
정작 Drawio로 학생분들이 그려야 하기에 제가 편한 것만 생각하기엔 무리가 있었습니다.

처음 보는 입장에서 IaC까진 아닌거 같고 확실히 웹 콘솔에서 먼저 체험해보고 코딩해야 의미가 있다고 생각하고 있습니다.

그래서 따로 웹 형태 어플리케이션으로 만들어볼까 했지만 형태도 여러가지고, AWS 아이콘의 압박도 컸습니다.
https://d1.awsstatic.com/webteam/architecture-icons/q1-2025/Asset-Package_02072025.dee42cd0a6eaacc3da1ad9519579357fb546f803.zip

그리고 매년 업데이트를 하기도 하구요.

현재 AWS 공식 아이콘의 개수가 대략 5000개정도 있더라구요. (서비스에 따라 다르지만 16, 32, 48, 64까지 있음)
중복 제거하면 대략 1600~1700개 가량 되지 않을까 예상합니다.

이걸 일일이 서비스에 맞춰서 매칭하고 하는 부분들이 쉬울까 생각하면 또 그렇지 않을거 같더라구요.

방법을 모색해보다 AWS 아키텍쳐를 그려주는 mcp가 있다는 것을 확인했습니다.
https://awslabs.github.io/mcp/servers/aws-diagram-mcp-server/

전 윈도우 환경이라 WSL에서 설치했고 설치한 설정은 아래와 같습니다.

{
	"mcpServers": {
		# 이것저것 여러개...,
		"awslabs.aws-diagram-mcp-server": {                                                                                                                                                               
			"command": "uvx",                                                                                                                                                                               
			"args": ["awslabs.aws-diagram-mcp-server"],                                                                                                                                                     
			"env": {                                                                                                                                                                                        
				"FASTMCP_LOG_LEVEL": "ERROR"                                                                                                                                                                  
			},                                                                                                                                                                                              
			"autoApprove": [],                                                                                                                                                                              
			"disabled": false                                                                                                                                                                               
		},
	}
}




이것을 이용해서 kiro-cli (구 amazon Q Cli)와 함께 한번 간단하게 그림을 만들어보았습니다.

1vpc (cidr 10.0.0.0/16), 
3 az, 
1 public subnet each zone, 
1 private subnet each zone, 
1 nat gw, 
1 igw, 
s3 gateway endpoint, 
dynamodb gateway endpoint, 
ecs cluster in vpc, 
ecs 2 task deployed with az a, az b로 
배포된 상태의 아키텍쳐를 python diagram으로 만들어줘.

솔직히 그럭저럭 깔끔하게 나오는 편이지만 가장 불편한 건 화살표가 거슬립니다. 
이건 제가 프롬프팅을 잘 못한 거 같긴 하지만 제어가 잘 안되더라구요.

내가 지정해서 나오는 건 괜찮겠지만, 실제 내 계정에서 데이터를 가져와서 보여주려면 어떻게 해야 할까요?
그것도 물론 가능합니다.

물론 데이터를 가져오기 위해선 당연히 내가 타게팅하는 계정의 정보가 로그인 또는 

role assume 가능한 프로필이 있어야 할 것입니다.

내 계정의 vpc 내 모든 정보, alb, ecs task 정보를 기반으로 아키텍쳐 만들어줘. 
default profile을 이용해. ap-northeast-2만 가져와. 
cidr 정보는 포함해선 안돼.



이렇게 하면 내장 aws tool을 이용하여 자연스럽게 데이터를 가져옵니다.



전 람다도 일부 사용하고 있습니다.
그래서 람다 api gw + lambda + dynamodb의 아키텍쳐 정보가 어떻게 되어 있는지도 살펴보겠습니다.

내 계정에 aws-exam과 연동되는 dynamodb, lambda, api gateway정보를 찾아서 
python diagram으로 만들어줘.



이렇게 실행하면 어떨까요?


뭐 완벽하게 보이진 않지만 최소한 대략적으로 이렇게 흘러가는구나 정도는 알 수 있습니다.
물론 발표 자료로 만들거나 하려면 대부분 ppt 타입은 이것을 활용할 것입니다.
https://aws.amazon.com/ko/architecture/icons/

여기에 ppt도 있고, 아이콘팩도 있습니다. 어지간하면 최신 아이콘과 아키텍쳐 타입을 맞춰주는 것이 중요하겠죠?

drawio에서 그리는게 편한 분들도 계시지만, drawio에 익숙하지 않고 AI Agent를 이용해 코딩하는 분들이라면 

이런 방법도 어떨지 추천드려봅니다.