from diagrams import Diagram, Cluster from diagrams.aws.network import CloudFront, Route53, ALB, NATGateway from diagrams.aws.security import CertificateManager from diagrams.aws.storage import S3 from diagrams.aws.compute import EC2 from diagrams.generic.device import Mobile with Diagram("Portfolio - Edge + Labs", show=False, outformat="png", filename="docs/diagrams/out/edge"): user = Mobile("User Browser") r53 = Route53("Route 53") acm = CertificateManager("ACM (CloudFront cert)") cf = CloudFront("CloudFront") with Cluster("S3 (private origins)"): site = S3("Site bucket") artifacts = S3("Artifacts bucket") with Cluster("VPC"): alb = ALB("ALB") with Cluster("Private subnets"): asg = EC2("EC2 ASG") user >> r53 >> cf acm >> cf cf >> site cf >> artifacts cf >> alb >> asg