Skip to content

Instantly share code, notes, and snippets.

@cdecl
Last active June 21, 2022 00:40
Show Gist options
  • Save cdecl/4572e11879e5e32578058842479fcdc9 to your computer and use it in GitHub Desktop.
Save cdecl/4572e11879e5e32578058842479fcdc9 to your computer and use it in GitHub Desktop.
from diagrams import Diagram, Cluster, Dict
from diagrams.onprem.database import MSSQL
from diagrams.onprem.monitoring import Grafana
from diagrams.onprem.ci import Jenkins
from diagrams.onprem.vcs import Gitlab
from diagrams.onprem.compute import Server
from diagrams.ibm.security import Firewall
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS, DB
from diagrams.aws.network import ELB, Route53, DirectConnect, VPC, VPCPeering, InternetGateway, VpnGateway, SiteToSiteVpn, NATGateway, VPCCustomerGateway
from diagrams.aws.security import WAF
from diagrams.aws.analytics import ElasticsearchService
with Diagram("Web Service", show=True, direction="LR"):
dns = Route53('DNS')
with Cluster("interpark-ent"):
with Cluster("VPC"):
# vpc = VPC("VPC Ent")
elk = ElasticsearchService("Log")
ig_ent = InternetGateway('Internet')
da = Grafana("Dashboard")
ci = Jenkins("CI/CD")
nat = NATGateway("NAT")
vpc_gw = VPCCustomerGateway("Gateway")
waf = WAF("WAF")
with Cluster("Movie"):
m = [ EC2("movie1"), EC2("movie2") ]
m >> elk >> da
m - ci
with Cluster("Playdb"):
p = [ EC2("playdb1"), EC2("playdb2") ]
p >> elk >> da
p - ci
ig_ent >> waf >> ELB("movie.interpark.com") >> m
ig_ent >> waf >> ELB("playdb.interpark.com") >> p
with Cluster("interpark-ent-dev"):
with Cluster("VPC"):
# vpc_dev = VPC("VPC Ent-Dev")
vpc_gw_dev = VPCCustomerGateway("Gateway")
ci = Jenkins("CI/CD")
nat_dev = NATGateway("NAT")
ec2dev_m = EC2('movie-dev')
ec2dev_p = EC2('play-dev')
vpc_gw_dev >> ec2dev_m
vpc_gw_dev >> ec2dev_p
ec2dev_m - ci
ec2dev_p - ci
with Cluster("interpark-kms"):
with Cluster("VPC"):
# vpcdamo = VPC("VPC Damo")
vpc_gw_kms = VPCCustomerGateway("Gateway")
vpc_gw_kms >> EC2("KMS")
with Cluster("VPC-Dev"):
# vpcdamo_dev = VPC("VPC Damo Dev")
vpc_gw_kms_dev = VPCCustomerGateway("Gateway")
vpc_gw_kms_dev >> EC2("KMS-Dev")
with Cluster("IDC"):
dbfw = Firewall("F/W")
with Cluster("Prod"):
db = MSSQL("Ticket2000")
dbfw << db << Server("Other")
with Cluster("Dev/Stage"):
db_dev = MSSQL("Ticket2000-Dev")
gitlab = Gitlab("Gitlab")
dbfw << db_dev << Server("Other")
dx = DirectConnect("DirectConnect AWS-IDC")
vpn_gw = SiteToSiteVpn('VPN AWS-IDC')
vpcpeer = VPCPeering('peering')
dns >> ig_ent
vpc_gw_kms << vpcpeer >> vpc_gw >> dx >> dbfw
vpc_gw_kms_dev << vpcpeer >> vpc_gw_dev >> vpn_gw >> dbfw
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment