Claude-skill-registry aws-diagram
Generate AWS architecture diagrams from infrastructure JSON. Use when user asks to "generate diagram", "create AWS diagram", "visualize infrastructure", or "draw architecture".
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/aws-diagram" ~/.claude/skills/majiayu000-claude-skill-registry-aws-diagram && rm -rf "$T"
manifest:
skills/data/aws-diagram/SKILL.mdsource content
AWS Diagram Generator
Generate architecture diagrams from
aws_infrastructure.json using the Python diagrams library.
Before Starting
-
Check that
exists in the current directoryaws_infrastructure.json -
Ask user which diagram type they want:
- architecture - Overall infrastructure overview
- security - Security controls and traffic flow
- network - Network topology and connectivity
- data-flow - Data flow between components
- all - Generate all types
-
Ask for output format: png (default), svg, or pdf
Process
- Read
aws_infrastructure.json - Generate Python code using the
librarydiagrams - Write the code to a temporary file
- Execute it with
python <file>.py - Report the generated files to the user
Diagrams Library Reference
Basic Structure
from diagrams import Diagram, Cluster, Edge with Diagram("Title", filename="output_name", outformat="png", show=False): # Create nodes and connections
AWS Icons (import from diagrams.aws.*)
Compute:
from diagrams.aws.compute import ECS, Lambda, Fargate, EC2, EKS, Batch, ECR
Database:
from diagrams.aws.database import RDS, Aurora, ElastiCache, Dynamodb, DocumentDB, Neptune, Redshift
Note: Use
Dynamodb (not DynamoDB)
Network:
from diagrams.aws.network import ALB, NLB, CloudFront, Route53, VPC, InternetGateway, NATGateway, TransitGateway, Endpoint, APIGateway
Storage:
from diagrams.aws.storage import S3, EFS
Security:
from diagrams.aws.security import WAF, Shield, ACM, Cognito, SecretsManager, KMS, IAM
Integration:
from diagrams.aws.integration import SQS, SNS, Eventbridge, StepFunctions
Note: Use
Eventbridge (not EventBridge)
Analytics:
from diagrams.aws.analytics import Kinesis, Athena, Glue, EMR, Quicksight
Management:
from diagrams.aws.management import Cloudwatch, CloudwatchAlarm, Cloudtrail
General (for unknown services):
from diagrams.aws.general import General
External/Users:
from diagrams.onprem.network import Internet from diagrams.onprem.client import Users
Connections
# Left to right flow node1 >> node2 node1 >> Edge(label="HTTPS") >> node2 # Multiple targets node1 >> [node2, node3]
Clusters (for grouping)
with Cluster("VPC"): with Cluster("Public Subnet"): alb = ALB("Load Balancer") with Cluster("Private Subnet"): app = Fargate("App")
Diagram Types
Architecture Diagram
Show overall infrastructure:
- Internet/Users connecting to load balancers
- Load balancers to compute (ECS, Lambda, EC2)
- Compute to databases (RDS, DynamoDB, ElastiCache)
- Storage services (S3)
- Group by VPC and subnet types
Security Diagram
Show security controls:
- WAF protecting load balancers
- Cognito for authentication
- ACM certificates
- Security boundaries (VPC, subnets)
- Traffic flow from external to internal
- KMS, Secrets Manager
Network Diagram
Show network topology:
- VPC with CIDR
- Subnets grouped by availability zone
- Internet Gateway and NAT Gateways
- Transit Gateway connections
- VPC Endpoints
Data Flow Diagram
Show data movement:
- How data enters (API, events)
- Processing pipeline (compute services)
- Data storage destinations
- Caching layers
- Event flows (SQS, SNS, EventBridge)
Output Files
Use these filenames:
aws_architecture.pngaws_security.pngaws_network.pngaws_data_flow.png
Guidelines
- Set
in Diagram constructorshow=False - Create meaningful labels from the JSON data
- Draw connections based on logical relationships
- Use Clusters to group related resources
- Limit displayed items to 3-5 per category for readability
- For services not in the library, use
General - Always use the exact import names (case-sensitive)
Example Generated Code
from diagrams import Diagram, Cluster from diagrams.aws.compute import Fargate from diagrams.aws.database import RDS, ElastiCache from diagrams.aws.network import ALB, InternetGateway from diagrams.aws.storage import S3 from diagrams.onprem.network import Internet with Diagram("AWS Architecture - MyProject (PROD)", filename="aws_architecture", outformat="png", show=False): internet = Internet("Users") with Cluster("VPC: 10.0.0.0/16"): igw = InternetGateway("IGW") with Cluster("Public Subnet"): alb = ALB("Public ALB") with Cluster("Private Subnet"): with Cluster("ECS Cluster"): svc1 = Fargate("api") svc2 = Fargate("worker") db = RDS("Aurora") cache = ElastiCache("Redis") s3 = S3("Assets") internet >> igw >> alb >> [svc1, svc2] svc1 >> [db, cache, s3] svc2 >> [db, s3]
After Generation
Tell the user:
- Which diagram files were created
- They can open PNG/SVG directly or import into documentation