Skip to content

AWS Resource Diagram Conventions

Conventions for creating AWS infrastructure diagrams in PlantUML within Arda design documents. These rules extend the general PlantUML Guide with AWS-specific guidance derived from the AWS Architecture Icons program and the awslabs/aws-icons-for-plantuml library.

Use the official AWS Icons for PlantUML library. Pin to a specific version to ensure reproducible rendering.

PlantUML diagram

All Arda diagrams must use v20.0 (aligned with AWS Architecture Icons Release 20, February 2025). Do not use main or latest — diagram rendering must be deterministic. The full symbol catalog is at AWSSymbols.md.

Import only the services used in each diagram. Each service has a <Category>/<ServiceName>.puml file that provides a macro of the same name.

AWS ServiceImport PathMacro
VPCAWSPuml/NetworkingContentDelivery/VirtualPrivateCloud.pumlVirtualPrivateCloud(alias, label, tech, desc)
SubnetAWSPuml/NetworkingContentDelivery/VirtualPrivateCloudSubnet.pumlVirtualPrivateCloudSubnet(alias, label, tech, desc)
NAT GatewayAWSPuml/NetworkingContentDelivery/VPCNATGateway.pumlVPCNATGateway(alias, label, tech, desc)
Internet GatewayAWSPuml/NetworkingContentDelivery/VPCInternetGateway.pumlVPCInternetGateway(alias, label, tech, desc)
S3AWSPuml/Storage/SimpleStorageService.pumlSimpleStorageService(alias, label, tech, desc)
CloudFrontAWSPuml/NetworkingContentDelivery/CloudFront.pumlCloudFront(alias, label, tech, desc)
Route 53AWSPuml/NetworkingContentDelivery/Route53.pumlRoute53(alias, label, tech, desc)
EKSAWSPuml/Containers/ElasticKubernetesService.pumlElasticKubernetesService(alias, label, tech, desc)
RDS / AuroraAWSPuml/Database/Aurora.pumlAurora(alias, label, tech, desc)
API GatewayAWSPuml/ApplicationIntegration/APIGateway.pumlAPIGateway(alias, label, tech, desc)
CognitoAWSPuml/SecurityIdentityCompliance/Cognito.pumlCognito(alias, label, tech, desc)
IAMAWSPuml/SecurityIdentityCompliance/IdentityandAccessManagement.pumlIdentityandAccessManagement(alias, label, tech, desc)
Secrets ManagerAWSPuml/SecurityIdentityCompliance/SecretsManager.pumlSecretsManager(alias, label, tech, desc)
ACMAWSPuml/SecurityIdentityCompliance/CertificateManager.pumlCertificateManager(alias, label, tech, desc)
NLBAWSPuml/NetworkingContentDelivery/ElasticLoadBalancingNetworkLoadBalancer.pumlElasticLoadBalancingNetworkLoadBalancer(alias, label, tech, desc)
CloudWatchAWSPuml/ManagementGovernance/CloudWatch.pumlCloudWatch(alias, label, tech, desc)
CloudFormationAWSPuml/ManagementGovernance/CloudFormation.pumlCloudFormation(alias, label, tech, desc)
AmplifyAWSPuml/FrontEndWebMobile/Amplify.pumlAmplify(alias, label, tech, desc)
VPC EndpointAWSPuml/NetworkingContentDelivery/VPCEndpoints.pumlVPCEndpoints(alias, label, tech, desc)

AWS architecture diagrams use nested containers to represent containment hierarchies. The library provides dedicated group macros that apply the correct AWS color palette automatically. Prefer these over plain rectangle when available.

The library provides group macros in AWSCommon.puml. These render with the official AWS color palette:

MacroPurposeInclude
AWSCloudGroup(alias, label)AWS Cloud boundaryAWSCommon.puml
AWSAccountGroup(alias, label)AWS Account boundaryAWSCommon.puml
RegionGroup(alias, label)AWS RegionAWSCommon.puml
VPCGroup(alias, label)VPC boundaryAWSCommon.puml
AvailabilityZoneGroup(alias, label)Availability ZoneAWSCommon.puml
PrivateSubnetGroup(alias, label)Private subnetAWSCommon.puml
PublicSubnetGroup(alias, label)Public subnetAWSCommon.puml
GenericGroup(alias, label)Generic logical groupingAWSCommon.puml

When group macros do not render correctly (e.g., in some PlantUML server versions), fall back to rectangle with explicit color conventions.

Use the following nesting order (outermost to innermost):

  1. AWS CloudAWSCloudGroup(cloud, "AWS Cloud")
  2. AWS AccountAWSAccountGroup(acct, "Account 009765408297")
  3. RegionRegionGroup(region, "us-east-1")
  4. VPCVPCGroup(vpc, "VPC 10.0.0.0/16")
  5. Availability ZoneAvailabilityZoneGroup(az, "AZ-a")
  6. SubnetPrivateSubnetGroup(priv, "Private Subnet") or PublicSubnetGroup(pub, "Public Subnet")

When using plain rectangle instead of group macros:

BoundaryBackground ColorBorder
AWS AccountWhiteSmoke (light gray)DarkSlateGray (AWS dark)
RegionAliceBlue (light blue)SteelBlue (AWS blue)
VPCHoneydew (light green)DarkGreen (green)
Public SubnetMintCream (green tint)ForestGreen
Private SubnetLightCyan (blue tint)MidnightBlue
Security boundaryLemonChiffon (yellow tint)DarkGoldenrod

PlantUML diagram

Example: VPC with Subnets (Fallback Rectangle)

Section titled “Example: VPC with Subnets (Fallback Rectangle)”

PlantUML diagram

Shows the deployed AWS resources and their relationships at runtime. Focus on what exists in the AWS account after deployment.

Rules:

  • Use AWS service icons (macros) for individual resources.
  • Use rectangles with background colors for containment (VPC, subnets, AZs).
  • Show data flow arrows between resources (solid for primary, dashed for secondary/async).
  • Label arrows with the protocol or API (HTTPS, SigV4, OAC).
  • Include IAM roles only when they are central to the design (e.g., presigning roles, service account roles). Omit standard service-linked roles.
  • Include security boundaries (e.g., “CloudFront signed cookies”, “OAC”) as notes or annotations, not as separate resources.
  • Omit CloudFormation, CDK, and deployment machinery — those belong in deployment diagrams.

What to show:

  • Network topology (VPC, subnets, endpoints, gateways)
  • Compute (EKS, Lambda)
  • Storage (S3 buckets, databases)
  • Edge/CDN (CloudFront, Route53)
  • Security (IAM roles central to the design, Cognito, Secrets Manager)
  • Integration (API Gateway, NLB)

What to omit:

  • CloudFormation stacks
  • CDK constructs
  • CI/CD pipelines
  • Deployment scripts
  • CloudWatch (unless monitoring is the diagram’s topic)

Shows the CDK constructs, CloudFormation stacks, and scripts that produce the runtime resources. Use UML class or object diagrams (not AWS icons) for these.

Rules:

  • Use class diagram notation for CDK constructs and stacks.
  • Show the construct tree: stacks contain constructs, constructs create resources.
  • Use stereotypes: <<Stack>>, <<Construct>>, <<CfnTemplate>>, <<Script>>.
  • Show dependencies with dashed arrows (..>): “Stack A depends on Stack B’s exports”.
  • Show composition with solid diamonds (*--): “Stack contains Construct”.
  • Include cross-stack exports as interface labels or notes.
  1. Left-to-right for data flow: Users/browsers on the left, backend services in the middle, storage on the right.
  2. Top-to-bottom for containment: Account at the top, region, VPC, subnets, resources at the bottom.
  3. Separate infrastructure-level from partition-level when both are shown: use distinct rectangles or a together block.
  4. One diagram per concern: Do not mix runtime resources with deployment artifacts in the same diagram.
  5. Keep diagrams focused: If a diagram exceeds ~25 resources, split it into multiple diagrams by concern area (networking, storage, compute, security).
  • Resource labels: Use the logical name, not the CDK construct ID. E.g., “Image Asset Bucket” not “ImageAssetBucket”.
  • Arrow labels: Protocol or API operation. E.g., “HTTPS”, “SigV4 presigned POST”, “OAC (SigV4)”.
  • Boundary labels: Include the key identifier. E.g., “VPC 10.0.0.0/16”, “us-east-1”.
  • Notes: Use note right of or note over for security policies, IAM conditions, or configuration details that cannot be expressed as labels.

All AWS resource diagrams must be validated via the PlantUML MCP tool (generate_plantuml_diagram) before finalizing. Render to SVG in a scratch/ subdirectory. Verify that:

  1. All icons render (no broken image placeholders).
  2. Grouping boundaries are visually distinct.
  3. Arrow labels are legible and do not overlap.
  4. The diagram communicates the intended architecture at a glance.
  • AWS Architecture Icons — official icon set, usage guidelines, and color palette. Defines the standard visual vocabulary for AWS architecture diagrams. Includes guidance on grouping (accounts, regions, VPCs, AZs), icon sizing, and when to use service icons vs. resource icons.
  • AWS Architecture Center — reference architectures and diagram examples showing AWS-recommended diagramming patterns for common workloads (web applications, serverless, container-based).
  • AWS Well-Architected Framework — architecture best practices across six pillars (Operational Excellence, Security, Reliability, Performance Efficiency, Cost Optimization, Sustainability). Informs what to emphasize in diagrams.
  • AWS Prescriptive Guidance — Architecture diagrams — AWS guide on creating effective architecture diagrams, including audience considerations, abstraction levels, and recommended tooling.
  • PlantUML Guide — Arda-specific PlantUML conventions: embedding syntax, sequence diagram style, class diagram style, C4 model usage, validation requirements.
  • Authoring Guide — general document formatting, front matter, and link conventions.

AWS Service Documentation (Referenced in Diagrams)

Section titled “AWS Service Documentation (Referenced in Diagrams)”

The following service documentation pages were consulted for accurate representation of resource relationships and data flows:


Copyright: (c) Arda Systems 2025-2026, All rights reserved