| 58 | |
| 59 | |
| 60 | class ModelRouterStack(Stack): |
| 61 | |
| 62 | def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: |
| 63 | super().__init__(scope, construct_id, **kwargs) |
| 64 | |
| 65 | if stage in ["alpha"]: |
| 66 | vpc_id = alpha_vpc_id |
| 67 | cpu = alpha_cpu |
| 68 | memory = alpha_memory |
| 69 | min_capacity = alpha_min_capacity |
| 70 | max_capacity = alpha_max_capacity |
| 71 | security_group = alpha_security_group_id |
| 72 | rds_db_instance_class = alpha_rds_db_instance_class |
| 73 | rds_db_instance_count = alpha_rds_db_instance_count |
| 74 | desired_count = alpha_desired_count |
| 75 | |
| 76 | elif stage in ["staging"]: |
| 77 | vpc_id = staging_vpc_id |
| 78 | cpu = staging_cpu |
| 79 | memory = staging_memory |
| 80 | min_capacity = staging_min_capacity |
| 81 | max_capacity = staging_max_capacity |
| 82 | security_group = staging_security_group_id |
| 83 | rds_db_instance_class = staging_rds_db_instance_class |
| 84 | rds_db_instance_count = staging_rds_db_instance_count |
| 85 | desired_count = staging_desired_count |
| 86 | |
| 87 | elif stage in ["prod"]: |
| 88 | vpc_id = prod_vpc_id |
| 89 | cpu = prod_cpu |
| 90 | memory = prod_memory |
| 91 | min_capacity = prod_min_capacity |
| 92 | max_capacity = prod_max_capacity |
| 93 | security_group = prod_security_group_id |
| 94 | rds_db_instance_class = prod_rds_db_instance_class |
| 95 | rds_db_instance_count = prod_rds_db_instance_count |
| 96 | desired_count = prod_desired_count |
| 97 | |
| 98 | # fetches vpc using the id |
| 99 | vpc = ec2.Vpc.from_lookup(self, "VPC", vpc_id=vpc_id) |
| 100 | rds_vpc = ec2.Vpc.from_lookup(self, "RDS-VPC", vpc_id=rds_vpc_id) |
| 101 | |
| 102 | subnet_a = self.get_one_private_subnet_from_az(vpc, "us-east-1a") |
| 103 | subnet_b = self.get_one_private_subnet_from_az(vpc, "us-east-1b") |
| 104 | subnet_c = self.get_one_private_subnet_from_az(vpc, "us-east-1c") |
| 105 | subnets = [subnet_a, subnet_b, subnet_c] |
| 106 | |
| 107 | subnet_a_public = self.get_one_public_subnet_from_az(vpc, "us-east-1a") |
| 108 | subnet_b_public = self.get_one_public_subnet_from_az(vpc, "us-east-1b") |
| 109 | subnet_c_public = self.get_one_public_subnet_from_az(vpc, "us-east-1c") |
| 110 | subnets_public = [subnet_a_public, subnet_b_public, subnet_c_public] |
| 111 | |
| 112 | |
| 113 | security_group = ec2.SecurityGroup.from_security_group_id( |
| 114 | self, |
| 115 | f"{stage.capitalize()}ModelRouterSecurityGroup", |
| 116 | security_group_id=security_group, |
| 117 | ) |