AWS-Architekturdiagramme mit PlantUML erstellen

January 12, 2022

Bei unser Arbeit kommt es häufig vor, dass wir AWS-Architekturdiagramme erstellen. Üblicherweise muss dazu auf ein Grafikprogramm zurückgegriffen werden, mit dem sich technische Diagramme erstellen lassen. Einfach noch die AWS-Iconbibliothek hinzufügen und fertig. Leider ist es nicht ganz so einfach. Der ganze Ablauf ist immer noch mühselig. Weil die Tools kein vernünftiges Auto-Layout unterstützen, kämpfen wir ewig mit dem Programm. Dann merken wir, dass es doch schon wieder ein Icon-Redesign seitens AWS gab. Und jetzt hat der Kollege einfach nur das JPEG in Git eingecheckt, dabei wollten wir nur eine kleine Änderung dokumentieren. Wer kennt es nicht?

Es gibt aber Alternativen, nämlich PlantUML. PlantUML war ursprünglich zur Erzeugung von UML-Diagrammen gedacht, hat sich aber zum schweizer Taschenmesser entwickelt. Mit PlantUML beschreiben wir unsere Architektur mit einer Textdatei, aus der das Diagramm generiert wird. PlantUML verfügt über eine Standardbibliothek in der unter anderem auch Icons von AWS enthalten sind.

Folgenden Text speichern wir in einer Datei my-diagram.puml.

@startuml
!include <awslib/AWSCommon>

' Uncomment the following line to create simplified view
'!include <awslib/AWSSimplified>

!include <awslib/General/Users>
!include <awslib/Mobile/APIGateway>
!include <awslib/Compute/Lambda>
!include <awslib/Database/DynamoDB>

title "My architecture"

Users(USERS, "Users", "people who signed up for the app")

cloud "AWS" {
  APIGateway(API_GW, "API Gateway", "HTTP API Gateway")
  Lambda(LAMBDA, "Lambda", "Lambda function")
  DynamoDB(DDB, "DynamoDB", "DynamoDB")
}

USERS -> API_GW: "making requests"
API_GW -> LAMBDA: "invoking lambda"
LAMBDA -> DDB: "reading from DynamoDB"
@enduml

Jetzt installieren wir PlantUML. Auf einem Mac geht das am einfachsten mit brew install plantuml. Alternativ das aktuelle Release herunterladen, außerdem wird Java benötigt.

Jetzt können wir unser Diagramm rendern:

plantuml my-diagram.puml # falls per brew installiert
java -jar plantuml.jar my-digram.puml # falls per Java installiert

Mein Diagramm

Wenn wir ein optisch einfacheres Diagramm wollen können wir einfach die Zeile

!include <awslib/AWSSimplified>

hinzufügen. Das Ergebnis ist dann folgendes:

Mein einfaches Diagramm

Neben der lokalen Installation gibt es einen Rendering-Server, ein Intellij-Plugin und vieles mehr. Viel Spaß damit 🚀!

photo of Jan

Jan is Co-founder and Cloud Consultant at superluminar and AWS Certified Solutions Architect Professional. He writes here about AWS-specific topics. He can be found under the name @bracki on Twitter.