From b141f1d569a0069a06e8fe5adfc48bc97b9bd99c Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 12:14:03 -0900 Subject: [PATCH 1/9] First chunk of adding a domain base stack. Broke out base_stack.py into two separate chunks --- ContainerManager/base_stack/__init__.py | 6 ++++ ContainerManager/base_stack/domain.py | 0 .../{base_stack.py => base_stack/main.py} | 28 +++++++++++++++++-- .../leaf_stack/NestedStacks/README.md | 4 ++- ContainerManager/leaf_stack/domain_stack.py | 9 +++--- ContainerManager/leaf_stack/main.py | 18 ++++++------ app.py | 8 +++--- 7 files changed, 53 insertions(+), 20 deletions(-) create mode 100644 ContainerManager/base_stack/__init__.py create mode 100644 ContainerManager/base_stack/domain.py rename ContainerManager/{base_stack.py => base_stack/main.py} (85%) diff --git a/ContainerManager/base_stack/__init__.py b/ContainerManager/base_stack/__init__.py new file mode 100644 index 0000000..b9325fc --- /dev/null +++ b/ContainerManager/base_stack/__init__.py @@ -0,0 +1,6 @@ +""" +The different components of the base stack, broken +apart since they're in different regions. +""" + +from .main import BaseStackMain diff --git a/ContainerManager/base_stack/domain.py b/ContainerManager/base_stack/domain.py new file mode 100644 index 0000000..e69de29 diff --git a/ContainerManager/base_stack.py b/ContainerManager/base_stack/main.py similarity index 85% rename from ContainerManager/base_stack.py rename to ContainerManager/base_stack/main.py index 51e8a67..64608c6 100644 --- a/ContainerManager/base_stack.py +++ b/ContainerManager/base_stack/main.py @@ -16,9 +16,9 @@ from cdk_nag import NagSuppressions # from .utils.get_param import get_param -from .utils.sns_subscriptions import add_sns_subscriptions +from ContainerManager.utils.sns_subscriptions import add_sns_subscriptions -class ContainerManagerBaseStack(Stack): +class BaseStackMain(Stack): """ Contains shared resources for all leaf stacks. Most importantly, the VPC and SNS. @@ -162,3 +162,27 @@ def __init__( }, ], ) + + + # ### TESTING + # ## Add a record set that uses the base hosted zone + # # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.RecordSet.html + # from aws_cdk import Duration + # self.unavailable_ip = "0.0.0.0" + # self.dns_ttl = 1 + # self.record_type = route53.RecordType.A + # self.sub_domain_name = f"testing.{self.root_hosted_zone.zone_name}".lower() + # self.dns_record = route53.RecordSet( + # self, + # "DnsRecord", + # zone=self.root_hosted_zone, + # record_name=self.sub_domain_name, + # record_type=self.record_type, + # target=route53.RecordTarget.from_values(self.unavailable_ip), + # ttl=Duration.seconds(self.dns_ttl), + # ) + self.sub_hosted_zone = route53.PublicHostedZone( + self, + "SubHostedZone", + zone_name=self.root_hosted_zone.zone_name, + ) \ No newline at end of file diff --git a/ContainerManager/leaf_stack/NestedStacks/README.md b/ContainerManager/leaf_stack/NestedStacks/README.md index 275c8f2..116b136 100644 --- a/ContainerManager/leaf_stack/NestedStacks/README.md +++ b/ContainerManager/leaf_stack/NestedStacks/README.md @@ -30,7 +30,7 @@ This creates the Ecs Cluster/Service, AutoScaling Group, and EC2 Launch Template ### Watchdog -This monitors the container, and will spin down the ASG if any of it's alarms goes off. There are three alarms that trigger the scaling down of the ASG: +This monitors the container, and will spin down the ASG if any of it's alarms goes off. There are three alarms that trigger the scaling down of the ASG: @@ -50,6 +50,8 @@ This alarm will detect if the container unexpectedly stops for whatever reason, The reason why we trigger sns off alarm, instead of the event rule directly, is because the rule can be triggered ~4 times before the lambda call finally spins down the ASG. That'd be ~4 emails at once. Also by having an alarm, we can add it to the dashboard for easy monitoring. +**NOTE:** The Mermaid graph shows this triggering by using the `Scale Down ASG Action`. I couldn't figure out how to make the lambda call an existing action, so instead it just spins down the ASG directly with a [boto3 set_desired_capacity](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/autoscaling/client/set_desired_capacity.html) call. It's easier to follow the graph if all three "scale down" actions are the same, and it's basically the same logic anyways. (I'm open to a PR if the logic ends up being simple. I think you might have to use a [put_scaling_policy](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/autoscaling/client/put_scaling_policy.html)? But idk how to actually trigger an existing one. What would be REALLY nice is if [Events Rule Target](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.IRuleTarget.html) added support for ASG desired count, and we could remove the lambda function all together.) + ### AsgStateChangeHook This component will trigger whenever the ASG instance state changes (i.e the one instance either spins up or down). This is used to keep the architecture simple, plus if you update the instance count in the console, everything will naturally update around it. diff --git a/ContainerManager/leaf_stack/domain_stack.py b/ContainerManager/leaf_stack/domain_stack.py index f053f98..71f27e8 100644 --- a/ContainerManager/leaf_stack/domain_stack.py +++ b/ContainerManager/leaf_stack/domain_stack.py @@ -13,7 +13,7 @@ ) from constructs import Construct -from ContainerManager.base_stack import ContainerManagerBaseStack +from ContainerManager.base_stack import BaseStackMain class DomainStack(Stack): """ @@ -24,7 +24,7 @@ def __init__( scope: Construct, construct_id: str, container_id: str, - base_stack: ContainerManagerBaseStack, + base_stack_main: BaseStackMain, **kwargs ) -> None: super().__init__(scope, construct_id, **kwargs) @@ -36,12 +36,13 @@ def __init__( # (Since the container is constantly changing, update DNS asap) self.dns_ttl = 1 self.record_type = route53.RecordType.A - self.sub_domain_name = f"{container_id}.{base_stack.root_hosted_zone.zone_name}".lower() + self.sub_domain_name = f"{container_id}.{base_stack_main.root_hosted_zone.zone_name}".lower() # Spaces on the ends to not match sub-domains like "_tcp.*" that shows up in logs. # The record_type is because BOTH A and AAAA appear, even if my ISP only supports one. self.log_dns_filter = f" {self.sub_domain_name} {self.record_type.value} " ## Log group for the Route53 DNS logs: + # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroup.html self.route53_query_log_group = logs.LogGroup( self, "QueryLogGroup", @@ -72,7 +73,7 @@ def __init__( self.ns_record = route53.NsRecord( self, "NsRecord", - zone=base_stack.root_hosted_zone, + zone=base_stack_main.root_hosted_zone, values=self.sub_hosted_zone.hosted_zone_name_servers, record_name=self.sub_domain_name, ) diff --git a/ContainerManager/leaf_stack/main.py b/ContainerManager/leaf_stack/main.py index 9934740..0a124a7 100644 --- a/ContainerManager/leaf_stack/main.py +++ b/ContainerManager/leaf_stack/main.py @@ -12,7 +12,7 @@ from constructs import Construct from cdk_nag import NagSuppressions -from ContainerManager.base_stack import ContainerManagerBaseStack +from ContainerManager.base_stack import BaseStackMain from ContainerManager.leaf_stack.domain_stack import DomainStack # from ContainerManager.utils.get_param import get_param from ContainerManager.utils.sns_subscriptions import add_sns_subscriptions @@ -42,7 +42,7 @@ def __init__( self, scope: Construct, construct_id: str, - base_stack: ContainerManagerBaseStack, + base_stack_main: BaseStackMain, domain_stack: DomainStack, application_id: str, container_id: str, @@ -78,7 +78,7 @@ def __init__( self, description=f"Security Group Logic for {construct_id}", leaf_construct_id=construct_id, - vpc=base_stack.vpc, + vpc=base_stack_main.vpc, container_id=container_id, container_ports_config=config["Container"]["Ports"], ) @@ -96,7 +96,7 @@ def __init__( self.volumes_nested_stack = NestedStacks.Volumes( self, description=f"Volume Logic for {construct_id}", - vpc=base_stack.vpc, + vpc=base_stack_main.vpc, task_definition=self.container_nested_stack.task_definition, container=self.container_nested_stack.container, volumes_config=config["Volumes"], @@ -108,9 +108,9 @@ def __init__( self, description=f"Ec2Service Logic for {construct_id}", leaf_construct_id=construct_id, - vpc=base_stack.vpc, - ssh_key_pair=base_stack.ssh_key_pair, - base_stack_sns_topic=base_stack.sns_notify_topic, + vpc=base_stack_main.vpc, + ssh_key_pair=base_stack_main.ssh_key_pair, + base_stack_sns_topic=base_stack_main.sns_notify_topic, leaf_stack_sns_topic=self.sns_notify_topic, task_definition=self.container_nested_stack.task_definition, ec2_config=config["Ec2"], @@ -127,7 +127,7 @@ def __init__( container_id=container_id, watchdog_config=config["Watchdog"], auto_scaling_group=self.ecs_asg_nested_stack.auto_scaling_group, - base_stack_sns_topic=base_stack.sns_notify_topic, + base_stack_sns_topic=base_stack_main.sns_notify_topic, leaf_stack_sns_topic=self.sns_notify_topic, ecs_cluster=self.ecs_asg_nested_stack.ecs_cluster, ecs_capacity_provider=self.ecs_asg_nested_stack.capacity_provider, @@ -142,7 +142,7 @@ def __init__( ecs_cluster=self.ecs_asg_nested_stack.ecs_cluster, ec2_service=self.ecs_asg_nested_stack.ec2_service, auto_scaling_group=self.ecs_asg_nested_stack.auto_scaling_group, - base_stack_sns_topic=base_stack.sns_notify_topic, + base_stack_sns_topic=base_stack_main.sns_notify_topic, leaf_stack_sns_topic=self.sns_notify_topic, ) diff --git a/app.py b/app.py index 7601027..71c8db3 100644 --- a/app.py +++ b/app.py @@ -14,7 +14,7 @@ ) import cdk_nag -from ContainerManager.base_stack import ContainerManagerBaseStack +from ContainerManager.base_stack import BaseStackMain from ContainerManager.leaf_stack.main import ContainerManagerStack from ContainerManager.leaf_stack.domain_stack import DomainStack from ContainerManager.leaf_stack.link_together_stack import LinkTogetherStack @@ -40,11 +40,11 @@ region="us-east-1", ) -### Create the Base Stack for ALL applications: +### Create the Base Stack VPC for ALL leaf stacks: base_config = load_base_config("./base-stack-config.yaml") -base_stack = ContainerManagerBaseStack( +base_stack = BaseStackMain( app, - app.node.get_context("_base_stack_name"), + f"{app.node.get_context('_base_stack_name')}-Vpc", description="The base VPC for all other ContainerManage stacks to use.", cross_region_references=True, env=main_env, From 77188adf8f02eed4f55ea95899e7dac20a1f9851 Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 19:28:50 -0900 Subject: [PATCH 2/9] The refactor worked! Committing before i somehow loose it all. Need to update docs still, but th e heavy lifting is over --- ContainerManager/base_stack/__init__.py | 1 + ContainerManager/base_stack/domain.py | 97 +++++++++++++++++++ ContainerManager/base_stack/main.py | 61 +----------- .../NestedStacks/AsgStateChangeHook.py | 21 ++-- .../leaf_stack/NestedStacks/Dashboard.py | 13 +-- ContainerManager/leaf_stack/domain_stack.py | 95 ------------------ ContainerManager/leaf_stack/main.py | 17 +++- ...link_together_stack.py => start_system.py} | 66 +++++++++---- ContainerManager/utils/config_loader.py | 1 + Makefile | 18 ++-- app.py | 70 +++++++------ 11 files changed, 225 insertions(+), 235 deletions(-) delete mode 100644 ContainerManager/leaf_stack/domain_stack.py rename ContainerManager/leaf_stack/{link_together_stack.py => start_system.py} (64%) diff --git a/ContainerManager/base_stack/__init__.py b/ContainerManager/base_stack/__init__.py index b9325fc..6fc1813 100644 --- a/ContainerManager/base_stack/__init__.py +++ b/ContainerManager/base_stack/__init__.py @@ -4,3 +4,4 @@ """ from .main import BaseStackMain +from .domain import BaseStackDomain diff --git a/ContainerManager/base_stack/domain.py b/ContainerManager/base_stack/domain.py index e69de29..b6fe381 100644 --- a/ContainerManager/base_stack/domain.py +++ b/ContainerManager/base_stack/domain.py @@ -0,0 +1,97 @@ + +""" +This module contains the BaseStackDomain class. +""" + +from constructs import Construct +from aws_cdk import ( + Stack, + RemovalPolicy, + aws_route53 as route53, + aws_logs as logs, + aws_iam as iam, +) + +# from cdk_nag import NagSuppressions + + +class BaseStackDomain(Stack): + """ + Contains shared resources for all leaf stacks. + Most importantly, the hosted zone. + """ + def __init__( + self, + scope: Construct, + construct_id: str, + config: dict, + **kwargs, + ) -> None: + super().__init__(scope, construct_id, **kwargs) + + + ##################### + ### Route53 STUFF ### + ##################### + ### These are also imported to other stacks, so save them here: + self.domain_name = config["Domain"]["Name"] + ## The instance isn't up, use the "unknown" ip address: + # https://www.lifewire.com/four-zero-ip-address-818384 + self.unavailable_ip = "0.0.0.0" + ## Never set TTL to 0, it's not defined in the standard + # (Since the container is constantly changing, update DNS asap) + self.dns_ttl = 1 + self.record_type = route53.RecordType.A + + + ## Log group for the Route53 DNS logs: + # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroup.html + self.route53_query_log_group = logs.LogGroup( + self, + "QueryLogGroup", + log_group_name=f"/aws/route53/{construct_id}-query-logs", + # Only need logs to trigger the lambda, don't need long-term: + retention=logs.RetentionDays.ONE_DAY, + removal_policy=RemovalPolicy.DESTROY, + ) + ## You can't grant direct access after creating the sub_hosted_zone, since it needs to + # write to the log group when you create the zone. AND you can't do a wildcard arn, since the + # account number isn't in the arn. + self.route53_query_log_group.grant_write(iam.ServicePrincipal("route53.amazonaws.com")) + + ## The subdomain for the Hosted Zone: + # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.PublicHostedZone.html + self.hosted_zone = route53.PublicHostedZone( + self, + "HostedZone", + zone_name=self.domain_name, + query_logs_log_group_arn=self.route53_query_log_group.log_group_arn, + comment=f"{construct_id}: DNS query for all containers.", + ) + + ## If you bought a domain through AWS, and have an existing Hosted Zone. We can't + # modify it, so we import it and tie ours to the existing one: + if config["Domain"]["HostedZoneId"]: + ## Import the existing Route53 Hosted Zone: + # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.PublicHostedZoneAttributes.html + self.imported_hosted_zone = route53.PublicHostedZone.from_hosted_zone_attributes( + self, + "RootHostedZone", + hosted_zone_id=config["Domain"]["HostedZoneId"], + zone_name=self.domain_name, + ) + else: + # This is checked in the leaf stack, to see if it needs to add + # a NS record to this hosted zone. + self.imported_hosted_zone = None + + ##################### + ### Export Values ### + ##################### + ## To stop cdk from trying to delete the exports when cdk is deployed by + ## itself, but still has leaf stacks attached to it. + # https://blogs.thedevs.co/aws-cdk-export-cannot-be-deleted-as-it-is-in-use-by-stack-5c205b8004b4 + self.export_value(self.hosted_zone.hosted_zone_name_servers) + self.export_value(self.route53_query_log_group.log_group_arn) + self.export_value(self.hosted_zone.hosted_zone_id) + self.export_value(self.route53_query_log_group.log_group_name) \ No newline at end of file diff --git a/ContainerManager/base_stack/main.py b/ContainerManager/base_stack/main.py index 64608c6..80402cd 100644 --- a/ContainerManager/base_stack/main.py +++ b/ContainerManager/base_stack/main.py @@ -1,6 +1,6 @@ """ -This module contains the ContainerManagerBaseStack class. +This module contains the BaseStackMain class. """ from constructs import Construct @@ -34,13 +34,6 @@ def __init__( ) -> None: super().__init__(scope, construct_id, **kwargs) - ### Fact-check the maturity, and save it for leaf stacks: - # (Makefile defaults to prod if not set. We want to fail-fast - # here, so throw if it doesn't exist) - self.maturity = self.node.get_context("maturity") - supported_maturities = ["devel", "prod"] - assert self.maturity in supported_maturities, f"ERROR: Unknown maturity. Must be in {supported_maturities}" - ################# ### VPC STUFF ### ################# @@ -102,34 +95,6 @@ def __init__( ) add_sns_subscriptions(self, self.sns_notify_topic, config["AlertSubscription"]) - - ##################### - ### Route53 STUFF ### - ##################### - # domain_name is imported to other stacks, so save it to this one: - self.domain_name = config["Domain"]["Name"] - self.root_hosted_zone_id = config["Domain"].get("HostedZoneId") - - if config["Domain"]["HostedZoneId"]: - ## Import the existing Route53 Hosted Zone: - # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.PublicHostedZoneAttributes.html - self.root_hosted_zone = route53.PublicHostedZone.from_hosted_zone_attributes( - self, - "RootHostedZone", - hosted_zone_id=config["Domain"]["HostedZoneId"], - zone_name=self.domain_name, - ) - else: - ## Create a Route53 Hosted Zone: - # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.PublicHostedZone.html - self.root_hosted_zone = route53.PublicHostedZone( - self, - "RootHostedZone", - zone_name=self.domain_name, - comment=f"Hosted zone for {construct_id}: {self.domain_name}", - ) - self.root_hosted_zone.apply_removal_policy(RemovalPolicy.DESTROY) - ##################### ### Export Values ### ##################### @@ -162,27 +127,3 @@ def __init__( }, ], ) - - - # ### TESTING - # ## Add a record set that uses the base hosted zone - # # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.RecordSet.html - # from aws_cdk import Duration - # self.unavailable_ip = "0.0.0.0" - # self.dns_ttl = 1 - # self.record_type = route53.RecordType.A - # self.sub_domain_name = f"testing.{self.root_hosted_zone.zone_name}".lower() - # self.dns_record = route53.RecordSet( - # self, - # "DnsRecord", - # zone=self.root_hosted_zone, - # record_name=self.sub_domain_name, - # record_type=self.record_type, - # target=route53.RecordTarget.from_values(self.unavailable_ip), - # ttl=Duration.seconds(self.dns_ttl), - # ) - self.sub_hosted_zone = route53.PublicHostedZone( - self, - "SubHostedZone", - zone_name=self.root_hosted_zone.zone_name, - ) \ No newline at end of file diff --git a/ContainerManager/leaf_stack/NestedStacks/AsgStateChangeHook.py b/ContainerManager/leaf_stack/NestedStacks/AsgStateChangeHook.py index f826262..e63c5cb 100644 --- a/ContainerManager/leaf_stack/NestedStacks/AsgStateChangeHook.py +++ b/ContainerManager/leaf_stack/NestedStacks/AsgStateChangeHook.py @@ -20,7 +20,7 @@ from cdk_nag import NagSuppressions -from ContainerManager.leaf_stack.domain_stack import DomainStack +from ContainerManager.base_stack import BaseStackDomain class AsgStateChangeHook(NestedStack): """ @@ -31,7 +31,8 @@ def __init__( self, scope: Construct, container_id: str, - domain_stack: DomainStack, + container_url: str, + base_stack_domain: BaseStackDomain, ecs_cluster: ecs.Cluster, ec2_service: ecs.Ec2Service, auto_scaling_group: autoscaling.AutoScalingGroup, @@ -82,11 +83,11 @@ def __init__( log_group=self.log_group_asg_statechange_hook, role=self.asg_state_change_role, environment={ - "HOSTED_ZONE_ID": domain_stack.sub_hosted_zone.hosted_zone_id, - "DOMAIN_NAME": domain_stack.sub_domain_name, - "UNAVAILABLE_IP": domain_stack.unavailable_ip, - "DNS_TTL": str(domain_stack.dns_ttl), - "RECORD_TYPE": domain_stack.record_type.value, + "HOSTED_ZONE_ID": base_stack_domain.hosted_zone.hosted_zone_id, + "DOMAIN_NAME": container_url, + "UNAVAILABLE_IP": base_stack_domain.unavailable_ip, + "DNS_TTL": str(base_stack_domain.dns_ttl), + "RECORD_TYPE": base_stack_domain.record_type.value, "ECS_CLUSTER_NAME": ecs_cluster.cluster_name, "ECS_SERVICE_NAME": ec2_service.service_name, }, @@ -120,12 +121,12 @@ def __init__( resources=[ec2_service.service_arn], ) ) - ## Let it update the DNS record of this stack: + ## Let it update the DNS record of the base stack: self.asg_state_change_policy.add_statements( iam.PolicyStatement( effect=iam.Effect.ALLOW, actions=["route53:ChangeResourceRecordSets"], - resources=[domain_stack.sub_hosted_zone.hosted_zone_arn], + resources=[base_stack_domain.hosted_zone.hosted_zone_arn], ) ) @@ -133,7 +134,7 @@ def __init__( # Needed to keep the management in sync with if a container is running. # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Rule.html message_up = events.RuleTargetInput.from_text( - f"Container for '{container_id}' is starting up! Connect to it at: '{domain_stack.sub_domain_name}'.", + f"Container for '{container_id}' is starting up! Connect to it at: '{container_url}'.", ) self.rule_asg_state_change_trigger_up = events.Rule( self, diff --git a/ContainerManager/leaf_stack/NestedStacks/Dashboard.py b/ContainerManager/leaf_stack/NestedStacks/Dashboard.py index 735f806..185126b 100644 --- a/ContainerManager/leaf_stack/NestedStacks/Dashboard.py +++ b/ContainerManager/leaf_stack/NestedStacks/Dashboard.py @@ -10,7 +10,7 @@ ) from constructs import Construct -from ContainerManager.leaf_stack.domain_stack import DomainStack +from ContainerManager.base_stack import BaseStackDomain ## Import the other Nested Stacks: from . import Container, EcsAsg, Watchdog, AsgStateChangeHook @@ -31,7 +31,8 @@ def __init__( container_id: str, main_config: dict, - domain_stack: DomainStack, + base_stack_domain: BaseStackDomain, + dns_log_query_filter: str, container_nested_stack: Container, ecs_asg_nested_stack: EcsAsg, watchdog_nested_stack: Watchdog, @@ -71,9 +72,9 @@ def __init__( ## Route53 DNS logs for spinning up the system: # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.LogQueryWidget.html cloudwatch.LogQueryWidget( - title=f"(DNS Traffic) Start's Up System - [{domain_stack.region}: {domain_stack.route53_query_log_group.log_group_name}]", - log_group_names=[domain_stack.route53_query_log_group.log_group_name], - region=domain_stack.region, + title=f"(DNS Traffic) Start's Up System - [{base_stack_domain.region}: {base_stack_domain.route53_query_log_group.log_group_name}]", + log_group_names=[base_stack_domain.route53_query_log_group.log_group_name], + region=base_stack_domain.region, width=12, height=4, query_lines=[ @@ -81,7 +82,7 @@ def __init__( "fields @timestamp, substr(@message, 25) as message", # Spaces on either side, just like SubscriptionFilter, to not # trigger on the "_tcp" query that pairs with the normal one: - f"filter @message like /{domain_stack.log_dns_filter}/", + f"filter @message like /{dns_log_query_filter}/", ], ), diff --git a/ContainerManager/leaf_stack/domain_stack.py b/ContainerManager/leaf_stack/domain_stack.py deleted file mode 100644 index 71f27e8..0000000 --- a/ContainerManager/leaf_stack/domain_stack.py +++ /dev/null @@ -1,95 +0,0 @@ - -""" -This configures the Domain Stack for the ContainerManager. -""" - -from aws_cdk import ( - Stack, - Duration, - RemovalPolicy, - aws_route53 as route53, - aws_iam as iam, - aws_logs as logs, -) -from constructs import Construct - -from ContainerManager.base_stack import BaseStackMain - -class DomainStack(Stack): - """ - This stack creates a subdomain for the container, and ties it to the root domain. - """ - def __init__( - self, - scope: Construct, - construct_id: str, - container_id: str, - base_stack_main: BaseStackMain, - **kwargs - ) -> None: - super().__init__(scope, construct_id, **kwargs) - - ## The instance isn't up, use the "unknown" ip address: - # https://www.lifewire.com/four-zero-ip-address-818384 - self.unavailable_ip = "0.0.0.0" - ## Never set TTL to 0, it's not defined in the standard - # (Since the container is constantly changing, update DNS asap) - self.dns_ttl = 1 - self.record_type = route53.RecordType.A - self.sub_domain_name = f"{container_id}.{base_stack_main.root_hosted_zone.zone_name}".lower() - # Spaces on the ends to not match sub-domains like "_tcp.*" that shows up in logs. - # The record_type is because BOTH A and AAAA appear, even if my ISP only supports one. - self.log_dns_filter = f" {self.sub_domain_name} {self.record_type.value} " - - ## Log group for the Route53 DNS logs: - # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroup.html - self.route53_query_log_group = logs.LogGroup( - self, - "QueryLogGroup", - log_group_name=f"/aws/route53/{construct_id}-query-logs", - # Only need logs to trigger the lambda, don't need long-term: - retention=logs.RetentionDays.ONE_DAY, - removal_policy=RemovalPolicy.DESTROY, - ) - ## You can't grant direct access after creating the sub_hosted_zone, since it needs to - # write to the log group on creation. AND you can't do a wildcard arn, since the - # account number isn't in the arn. - self.route53_query_log_group.grant_write(iam.ServicePrincipal("route53.amazonaws.com")) - - ## The subdomain for the Hosted Zone: - # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.PublicHostedZone.html - self.sub_hosted_zone = route53.PublicHostedZone( - self, - "SubHostedZone", - zone_name=self.sub_domain_name, - query_logs_log_group_arn=self.route53_query_log_group.log_group_arn, - comment=f"Hosted zone for {construct_id}: {self.sub_domain_name}", - ) - self.sub_hosted_zone.apply_removal_policy(RemovalPolicy.DESTROY) - # self.route53_query_log_group.grant_write(iam.ArnPrincipal(self.sub_hosted_zone.hosted_zone_arn)) - - ## Tie the two hosted zones together: - # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.NsRecord.html - self.ns_record = route53.NsRecord( - self, - "NsRecord", - zone=base_stack_main.root_hosted_zone, - values=self.sub_hosted_zone.hosted_zone_name_servers, - record_name=self.sub_domain_name, - ) - self.ns_record.apply_removal_policy(RemovalPolicy.DESTROY) - ## Add a record set that uses the base hosted zone - # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.RecordSet.html - self.dns_record = route53.RecordSet( - self, - "DnsRecord", - zone=self.sub_hosted_zone, - record_name=self.sub_domain_name, - record_type=self.record_type, - target=route53.RecordTarget.from_values(self.unavailable_ip), - ttl=Duration.seconds(self.dns_ttl), - ) - self.dns_record.apply_removal_policy(RemovalPolicy.DESTROY) - # Make sure the record is removed BEFORE you try to remove the zone - # idk why this isn't the default.... - self.dns_record.node.add_dependency(self.sub_hosted_zone) diff --git a/ContainerManager/leaf_stack/main.py b/ContainerManager/leaf_stack/main.py index 0a124a7..7b3b3e7 100644 --- a/ContainerManager/leaf_stack/main.py +++ b/ContainerManager/leaf_stack/main.py @@ -12,8 +12,7 @@ from constructs import Construct from cdk_nag import NagSuppressions -from ContainerManager.base_stack import BaseStackMain -from ContainerManager.leaf_stack.domain_stack import DomainStack +from ContainerManager.base_stack import BaseStackMain, BaseStackDomain # from ContainerManager.utils.get_param import get_param from ContainerManager.utils.sns_subscriptions import add_sns_subscriptions @@ -43,13 +42,19 @@ def __init__( scope: Construct, construct_id: str, base_stack_main: BaseStackMain, - domain_stack: DomainStack, + base_stack_domain: BaseStackDomain, application_id: str, container_id: str, config: dict, **kwargs ) -> None: super().__init__(scope, construct_id, **kwargs) + ### Container-Specific Domain Variables: + self.container_url = f"{container_id}.{base_stack_domain.hosted_zone.zone_name}".lower() + # Spaces on the ends to not match sub-domains like "_tcp.*" that shows up in logs. + # The record_type is because BOTH A and AAAA appear, even if my ISP only supports one. + # (And to not trigger on 'java.minecraft.' vs 'minecraft.') + self.dns_log_query_filter = f" {self.container_url} {base_stack_domain.record_type.value} " ############################### ## Container-specific Notify ## @@ -138,7 +143,8 @@ def __init__( self, description=f"AsgStateChangeHook Logic for {construct_id}", container_id=container_id, - domain_stack=domain_stack, + container_url=self.container_url, + base_stack_domain=base_stack_domain, ecs_cluster=self.ecs_asg_nested_stack.ecs_cluster, ec2_service=self.ecs_asg_nested_stack.ec2_service, auto_scaling_group=self.ecs_asg_nested_stack.auto_scaling_group, @@ -157,7 +163,8 @@ def __init__( container_id=container_id, main_config=config, - domain_stack=domain_stack, + base_stack_domain=base_stack_domain, + dns_log_query_filter=self.dns_log_query_filter, container_nested_stack=self.container_nested_stack, ecs_asg_nested_stack=self.ecs_asg_nested_stack, watchdog_nested_stack=self.watchdog_nested_stack, diff --git a/ContainerManager/leaf_stack/link_together_stack.py b/ContainerManager/leaf_stack/start_system.py similarity index 64% rename from ContainerManager/leaf_stack/link_together_stack.py rename to ContainerManager/leaf_stack/start_system.py index 9af29c3..3c38596 100644 --- a/ContainerManager/leaf_stack/link_together_stack.py +++ b/ContainerManager/leaf_stack/start_system.py @@ -1,9 +1,9 @@ """ -This Links together the Main Stack, and Domain Stack. +This adds the container info to BaseStackDomain's hosted zone, +and starts the ASG when someone connects. -Needed since they're in different regions, and we need - to know about objects from both. +Needs to be in us-east-1, since it uses Route53 logs. """ import json @@ -12,6 +12,7 @@ Stack, Duration, RemovalPolicy, + aws_route53 as route53, aws_iam as iam, aws_logs as logs, aws_logs_destinations as logs_destinations, @@ -22,25 +23,50 @@ from cdk_nag import NagSuppressions from ContainerManager.leaf_stack.main import ContainerManagerStack -from ContainerManager.leaf_stack.domain_stack import DomainStack +from ContainerManager.base_stack import BaseStackDomain - -class LinkTogetherStack(Stack): +class LeafStackStartSystem(Stack): """ - This stacks sets up the lambda to turn the system on. + This stacks sets up the lambda to turn the system on, + and adds the DNS records to trigger it. """ def __init__( self, scope: Construct, construct_id: str, - domain_stack: DomainStack, - manager_stack: ContainerManagerStack, + base_stack_domain: BaseStackDomain, + leaf_stack_manager: ContainerManagerStack, container_id: str, **kwargs ) -> None: super().__init__(scope, construct_id, **kwargs) container_id_alpha = "".join(e for e in container_id.title() if e.isalpha()) + ### Create the DNS record to trigger the lambda: + # (Nothing actually referenced it directly) + # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.RecordSet.html + self.dns_record = route53.RecordSet( + self, + "DnsRecord", + zone=base_stack_domain.hosted_zone, + record_name=leaf_stack_manager.container_url, + record_type=base_stack_domain.record_type, + target=route53.RecordTarget.from_values(base_stack_domain.unavailable_ip), + ttl=Duration.seconds(base_stack_domain.dns_ttl), + ) + + ## And if you have a imported hosted zone, add NS to link the two zones: + ## Tie the two hosted zones together: + if base_stack_domain.imported_hosted_zone: + # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_route53.NsRecord.html + self.ns_record = route53.NsRecord( + self, + "NsRecord", + zone=base_stack_domain.imported_hosted_zone, + values=base_stack_domain.hosted_zone.hosted_zone_name_servers, + record_name=leaf_stack_manager.container_url, + ) + ## Log group for the lambda function: # https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroup.html self.log_group_start_system = logs.LogGroup( @@ -81,16 +107,16 @@ def __init__( log_group=self.log_group_start_system, role=self.start_system_role, environment={ - "ASG_NAME": manager_stack.ecs_asg_nested_stack.auto_scaling_group.auto_scaling_group_name, - "MANAGER_STACK_REGION": manager_stack.region, + "ASG_NAME": leaf_stack_manager.ecs_asg_nested_stack.auto_scaling_group.auto_scaling_group_name, + "MANAGER_STACK_REGION": leaf_stack_manager.region, ## Metric info to let the system know someone is trying to connect, and don't spin down: - "METRIC_NAMESPACE": manager_stack.watchdog_nested_stack.metric_namespace, - "METRIC_NAME": manager_stack.watchdog_nested_stack.traffic_dns_metric.metric_name, - "METRIC_THRESHOLD": str(manager_stack.watchdog_nested_stack.threshold), + "METRIC_NAMESPACE": leaf_stack_manager.watchdog_nested_stack.metric_namespace, + "METRIC_NAME": leaf_stack_manager.watchdog_nested_stack.traffic_dns_metric.metric_name, + "METRIC_THRESHOLD": str(leaf_stack_manager.watchdog_nested_stack.threshold), ## Convert METRIC_UNIT from an Enum, to a string that boto3 expects. (Words must have first # letter capitalized too, which is what `.title()` does. Otherwise they'd be all caps). - "METRIC_UNIT": manager_stack.watchdog_nested_stack.metric_unit.value.title(), - "METRIC_DIMENSIONS": json.dumps(manager_stack.watchdog_nested_stack.metric_dimension_map), + "METRIC_UNIT": leaf_stack_manager.watchdog_nested_stack.metric_unit.value.title(), + "METRIC_DIMENSIONS": json.dumps(leaf_stack_manager.watchdog_nested_stack.metric_dimension_map), }, ) @@ -101,10 +127,10 @@ def __init__( self.subscription_filter = logs.SubscriptionFilter( self, "SubscriptionFilter", - log_group=domain_stack.route53_query_log_group, + log_group=base_stack_domain.route53_query_log_group, destination=logs_destinations.LambdaDestination(self.lambda_start_system), # Spaces on either side, so it doesn't match the "_tcp" query that pairs with it: - filter_pattern=logs.FilterPattern.any_term(domain_stack.log_dns_filter), + filter_pattern=logs.FilterPattern.any_term(leaf_stack_manager.dns_log_query_filter), filter_name="TriggerLambdaOnConnect", ) @@ -120,7 +146,7 @@ def __init__( resources=["*"], conditions={ "StringEquals": { - "cloudwatch:namespace": manager_stack.watchdog_nested_stack.metric_namespace, + "cloudwatch:namespace": leaf_stack_manager.watchdog_nested_stack.metric_namespace, } } ) @@ -132,7 +158,7 @@ def __init__( actions=[ "autoscaling:UpdateAutoScalingGroup", ], - resources=[manager_stack.ecs_asg_nested_stack.auto_scaling_group.auto_scaling_group_arn], + resources=[leaf_stack_manager.ecs_asg_nested_stack.auto_scaling_group.auto_scaling_group_arn], ) ) diff --git a/ContainerManager/utils/config_loader.py b/ContainerManager/utils/config_loader.py index a4c999e..718ac5c 100644 --- a/ContainerManager/utils/config_loader.py +++ b/ContainerManager/utils/config_loader.py @@ -66,6 +66,7 @@ def _parse_domain(config: dict) -> None: # Check Domain.HostedZoneId: config["Domain"]["HostedZoneId"] = config["Domain"].get("HostedZoneId") + assert isinstance(config["Domain"]["HostedZoneId"], str) or config["Domain"]["HostedZoneId"] is None def load_base_config(path: str) -> dict: " Parser/Loader for the base stack " diff --git a/Makefile b/Makefile index af4bac4..c4a8e1f 100644 --- a/Makefile +++ b/Makefile @@ -8,14 +8,14 @@ MAKEFLAGS += --no-print-directory # Do here instead of the cdk app, so they're not duplicated in both and # avoid getting out of sync. Just pass them in maturity ?= prod -# The _application_id and _base_stack_name are only here to have in one place, +# The _application_id and _base_stack_prefix are only here to have in one place, # THEY'RE NOT MEANT TO BE MODIFIED: ifeq ($(maturity),prod) _application_id := "ContainerManager" else _application_id := "ContainerManager-$(maturity)" endif -_base_stack_name := "$(_application_id)-BaseStack" +_base_stack_prefix := "$(_application_id)-BaseStack" ## Make sure any required env-var's are set (i.e with guard-STACK_NAME) guard-%: @@ -40,7 +40,7 @@ _cdk-deploy-helper: guard-stack-regix # empty config-file is okay here --require-approval never \ --no-previous-parameters \ --context _application_id="$(_application_id)" \ - --context _base_stack_name="$(_base_stack_name)" \ + --context _base_stack_prefix="$(_base_stack_prefix)" \ --context config-file="$(config-file)" \ --context maturity="$(maturity)" \ --context container-id="$(container-id)" @@ -49,14 +49,14 @@ _cdk-deploy-helper: guard-stack-regix # empty config-file is okay here # Edit the base stack: .PHONY := cdk-deploy-base cdk-deploy-base: - $(MAKE) _cdk-deploy-helper stack-regix="$(_base_stack_name)" + $(MAKE) _cdk-deploy-helper stack-regix="$(_base_stack_prefix)-*" # Edit everything BUT the base stack, within the config-file scope: # (The base stack will still be updated as a 'Dependancy Stack') .PHONY := cdk-deploy-leaf cdk-deploy-leaf: guard-config-file echo "Config File: $(config-file)" - $(MAKE) _cdk-deploy-helper stack-regix="!$(_base_stack_name)" + $(MAKE) _cdk-deploy-helper stack-regix="!$(_base_stack_prefix)-*" @@ -70,7 +70,7 @@ _cdk-destroy-helper: guard-stack-regix # empty config-file is okay here cdk destroy "$(stack-regix)" \ --force \ --context _application_id="$(_application_id)" \ - --context _base_stack_name="$(_base_stack_name)" \ + --context _base_stack_prefix="$(_base_stack_prefix)" \ --context config-file="$(config-file)" \ --context maturity="$(maturity)" \ --context container-id="$(container-id)" @@ -79,14 +79,14 @@ _cdk-destroy-helper: guard-stack-regix # empty config-file is okay here # Destroy the base stack .PHONY := cdk-destroy-base cdk-destroy-base: - $(MAKE) _cdk-destroy-helper stack-regix="$(_base_stack_name)" + $(MAKE) _cdk-destroy-helper stack-regix="$(_base_stack_prefix)-*" # Destroy everything BUT the base stack, within the config-file scope: # (The base stack will still be updated as a 'Dependancy Stack') .PHONY := cdk-destroy-leaf cdk-destroy-leaf: guard-config-file echo "Config File: $(config-file)" - $(MAKE) _cdk-destroy-helper stack-regix="!$(_base_stack_name)" + $(MAKE) _cdk-destroy-helper stack-regix="!$(_base_stack_prefix)-*" ######################## @@ -112,7 +112,7 @@ cdk-synth: echo "" cdk synth \ --context _application_id="$(_application_id)" \ - --context _base_stack_name="$(_base_stack_name)" \ + --context _base_stack_prefix="$(_base_stack_prefix)" \ --context config-file="$(config-file)" \ --context maturity="$(maturity)" \ --context container-id="$(container-id)" \ diff --git a/app.py b/app.py index 71c8db3..2cf43af 100644 --- a/app.py +++ b/app.py @@ -7,17 +7,16 @@ import os from aws_cdk import ( - Aspects, + # Aspects, App, Environment, Tags, ) -import cdk_nag +# import cdk_nag -from ContainerManager.base_stack import BaseStackMain +from ContainerManager.base_stack import BaseStackMain, BaseStackDomain from ContainerManager.leaf_stack.main import ContainerManagerStack -from ContainerManager.leaf_stack.domain_stack import DomainStack -from ContainerManager.leaf_stack.link_together_stack import LinkTogetherStack +from ContainerManager.leaf_stack.start_system import LeafStackStartSystem from ContainerManager.utils.config_loader import load_base_config, load_leaf_config @@ -29,6 +28,14 @@ # Aspects.of(app).add(cdk_nag.AwsSolutionsChecks(verbose=True)) Tags.of(app).add(APPLICATION_ID_TAG_NAME, application_id) +### Fact-check the maturity, and save it for leaf stacks: +# (Makefile defaults to prod if not set. We want to fail-fast +# here, so throw if it doesn't exist) +maturity = app.node.get_context("maturity") +supported_maturities = ["devel", "prod"] +assert maturity in supported_maturities, f"ERROR: Unknown maturity. Must be in {supported_maturities}" + + # Lets you reference self.account and self.region in your CDK code # if you need to: main_env = Environment( @@ -40,11 +47,14 @@ region="us-east-1", ) -### Create the Base Stack VPC for ALL leaf stacks: +################## +### Base Stack ### +################## base_config = load_base_config("./base-stack-config.yaml") -base_stack = BaseStackMain( +### Create the Base Stack VPC for ALL leaf stacks: +base_stack_main = BaseStackMain( app, - f"{app.node.get_context('_base_stack_name')}-Vpc", + f"{app.node.get_context('_base_stack_prefix')}-Vpc", description="The base VPC for all other ContainerManage stacks to use.", cross_region_references=True, env=main_env, @@ -52,11 +62,23 @@ application_id_tag_name=APPLICATION_ID_TAG_NAME, application_id_tag_value=application_id, ) +### Create the Base Stack Domain for ALL leaf stacks: +base_stack_domain = BaseStackDomain( + app, + f"{app.node.get_context('_base_stack_prefix')}-Domain", + description="The base Domain for all other ContainerManage stacks to use.", + cross_region_references=True, + env=us_east_1_env, + config=base_config, +) +################## +### Leaf Stack ### +################## ### Create the application for ONE Container: file_path = app.node.try_get_context("config-file") if file_path: - leaf_config = load_leaf_config(file_path, maturity=base_stack.maturity) + leaf_config = load_leaf_config(file_path, maturity=maturity) # You can override container_id if you need to: container_id = app.node.try_get_context("container-id") if not container_id: @@ -70,19 +92,7 @@ "StackId": f"{application_id}-{container_id_alpha}", } - domain_stack = DomainStack( - app, - f"{application_id}-{container_id_alpha}-DomainStack", - description=f"Route53 for '{container_id}', since it MUST be in us-east-1", - cross_region_references=True, - env=us_east_1_env, - container_id=container_id, - base_stack=base_stack, - ) - for key, val in stack_tags.items(): - Tags.of(domain_stack).add(key, val) - - manager_stack = ContainerManagerStack( + leaf_stack_manager = ContainerManagerStack( app, f"{application_id}-{container_id_alpha}-Stack", description="For automatically managing a single container.", @@ -90,26 +100,26 @@ # variables, since that one is ONLY in us-east-1 cross_region_references=True, env=main_env, - base_stack=base_stack, - domain_stack=domain_stack, + base_stack_main=base_stack_main, + base_stack_domain=base_stack_domain, application_id=application_id, container_id=container_id, config=leaf_config, ) for key, val in stack_tags.items(): - Tags.of(manager_stack).add(key, val) + Tags.of(leaf_stack_manager).add(key, val) - link_together_stack = LinkTogetherStack( + leaf_stack_start_system = LeafStackStartSystem( app, f"{application_id}-{container_id_alpha}-LinkTogetherStack", - description=f"To avoid a circular dependency, and connect '{manager_stack.stack_name}' and '{domain_stack.stack_name}' together.", + description="Everything for starting the system UP when someone connects.", cross_region_references=True, env=us_east_1_env, - domain_stack=domain_stack, - manager_stack=manager_stack, + base_stack_domain=base_stack_domain, + leaf_stack_manager=leaf_stack_manager, container_id=container_id, ) for key, val in stack_tags.items(): - Tags.of(link_together_stack).add(key, val) + Tags.of(leaf_stack_start_system).add(key, val) app.synth() From 1fecd0c10c83e17466a71efbd5ba8d80ea31ff4b Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 19:45:52 -0900 Subject: [PATCH 3/9] Spell check comments --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index c4a8e1f..717ab38 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,7 @@ cdk-deploy-base: $(MAKE) _cdk-deploy-helper stack-regix="$(_base_stack_prefix)-*" # Edit everything BUT the base stack, within the config-file scope: -# (The base stack will still be updated as a 'Dependancy Stack') +# (The base stack will still be updated as a 'Dependency Stack') .PHONY := cdk-deploy-leaf cdk-deploy-leaf: guard-config-file echo "Config File: $(config-file)" @@ -82,7 +82,7 @@ cdk-destroy-base: $(MAKE) _cdk-destroy-helper stack-regix="$(_base_stack_prefix)-*" # Destroy everything BUT the base stack, within the config-file scope: -# (The base stack will still be updated as a 'Dependancy Stack') +# (The base stack will still be updated as a 'Dependency Stack') .PHONY := cdk-destroy-leaf cdk-destroy-leaf: guard-config-file echo "Config File: $(config-file)" From 2ec6ff6f0baf814bbc4a5de5e4d500947d5ed7e7 Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 19:46:37 -0900 Subject: [PATCH 4/9] Updated definitions of stacks --- app.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index 2cf43af..7f81997 100644 --- a/app.py +++ b/app.py @@ -66,7 +66,7 @@ base_stack_domain = BaseStackDomain( app, f"{app.node.get_context('_base_stack_prefix')}-Domain", - description="The base Domain for all other ContainerManage stacks to use.", + description="The base HostedZone for all other ContainerManage stacks to use.", cross_region_references=True, env=us_east_1_env, config=base_config, @@ -95,7 +95,7 @@ leaf_stack_manager = ContainerManagerStack( app, f"{application_id}-{container_id_alpha}-Stack", - description="For automatically managing a single container.", + description="For automatically managing and spinning down the container.", # cross_region_references lets this stack reference the domain_stacks # variables, since that one is ONLY in us-east-1 cross_region_references=True, @@ -112,7 +112,7 @@ leaf_stack_start_system = LeafStackStartSystem( app, f"{application_id}-{container_id_alpha}-LinkTogetherStack", - description="Everything for starting the system UP when someone connects.", + description="Everything for spinning up the container when someone connects.", cross_region_references=True, env=us_east_1_env, base_stack_domain=base_stack_domain, From f064d38ad9c5068f7a0c426bc38a74719061f029 Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 20:49:41 -0900 Subject: [PATCH 5/9] First round of readme-updates, done! --- README.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 51f1e4c..f683dee 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ This CDK project spins up the container when someone connects, then spins it bac ### Deploying the App (Manually) -There's two stacks, the 'base' stack and the 'leaf' stack. Multiple leaf stacks can/***should*** use the *same* base stack to save costs. Deploy the base stack first, but you shouldn't have to again unless you change something in it. +There's two commands: one for the 'base' stacks, and the 'leaf' stacks. You should only have to deploy the 'base' once. Multiple leaf's can/***should*** use the *same* base to save costs. Deploy the base stack first, but you shouldn't have to again unless you change something in it. First setup your Environment Variables used for deploying, and just delete any sections you're not using: @@ -43,7 +43,7 @@ nano vars.env # Use the text editor that's better than vim :) source vars.env # Do this after every edit you make too! ``` -**For more Advanced Customization while Deploying**, see [(cdk) Synth / Deploy / Destroy](#cdk-synth--deploy--destroy) below. +- **For more Advanced Customization while Deploying**: see [(cdk) Synth / Deploy / Destroy](#cdk-synth--deploy--destroy) below. #### Base Stack @@ -69,6 +69,8 @@ nano ./Minecraft.yaml make cdk-deploy-leaf config-file=./Minecraft.yaml ``` +- **Info on how it Works behind the scenes**: see the `./ContainerManager`'s [README.md](/ContainerManager/README.md#leaf-stack-summary). + ### Connecting to the Container Now your game should be live at `.`! (So `minecraft.` in this case. No ".yaml"). This means one file per stack. If you want to override this, see the [container-id](#container-id) section below. @@ -80,7 +82,7 @@ If it's installing updates, keep spamming refresh. It sees those connection atte ### Cleanup / Destroying the Stacks -You have to clean up all the leaf stacks first, then the base stack. +You have to clean up all the 'leaf stacks' first, *then* the 'base stack'. If your config has [Volume.KeepOnDelete](/Examples/README.md#volumeskeepondelete) set to `True` (the default), it'll keep the server files inside AWS but still remove the stack. @@ -177,8 +179,21 @@ There's a few alarms inside the app that are supposed to shut down the system wh ## Cost of Everything - TODO: [Create Cost Estimate](https://calculator.aws/#/) (It's not much). + +### Base Stack Costs + +The point of the base stack, is exactly to combine resources to save costs. You only have to count the following **once**: + - Buying a domain from AWS is an extra `$3/year` for the cheapest I could find (`Register domains` -> `Standard pricing` -> `Price` to sort by price). +- The Hosted Zone that holds that domain is `$0.50/month` (or `$6/year`). + +### Leaf Stack Costs + - The [EC2 Costs](https://aws.amazon.com/ec2/pricing/on-demand/) aren't included because they're the highest factor. You're only charged while people are actively online, but the bigger instances are also more pricey. +- The [EFS Costs](https://aws.amazon.com/efs/pricing/) are `$0.30/GB/month`. +- The [Backup](https://aws.amazon.com/backup/pricing/) costs are `$0.05/GB/month`. + +Those are the only charges I've seen of note in my account. ## Makefile Commands @@ -263,6 +278,10 @@ make update For setting up cdk into your AWS Account. See the [AWS QuickStart](#first-time-setup---configure-aws) section at the top for more details. +```bash +make cdk-bootstrap +``` + ## Automatic Deployments with GitHub Actions To automatically deploy your stack with the latest cdk changes as they come out, see the [workflows docs](/.github/workflows/README.md). From a69d189dff4dd1b6c8b3fedf819decf48971f2f1 Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 20:50:10 -0900 Subject: [PATCH 6/9] First round of readme-updates, and minor tweaks, done! --- ContainerManager/README.md | 13 ++++---- ContainerManager/base_stack/README.md | 17 +++++++++++ ContainerManager/base_stack/main.py | 2 -- ContainerManager/leaf_stack/README.md | 28 +++++++++--------- .../AWS-ContainerManager_Basic_Diagram.png | Bin 136177 -> 138293 bytes app.py | 2 +- 6 files changed, 38 insertions(+), 24 deletions(-) create mode 100644 ContainerManager/base_stack/README.md diff --git a/ContainerManager/README.md b/ContainerManager/README.md index 9fe1193..ecf9755 100644 --- a/ContainerManager/README.md +++ b/ContainerManager/README.md @@ -2,8 +2,10 @@ This is designed so you only need one base stack that you deploy first, then you can deploy any number of leaf stacks on it. This lets you modify one leaf/container stack, without affecting the rest, and still have shared resources to reduce cost/complexity where appropriate. +**Note**: The word `Stack` is overloaded here. Both the "base" and "leaf" stacks each contain two stacks inside them (in different regions). There's just no better word, "app" is the entire project. + - The [./leaf_stack](./leaf_stack/README.md) is what runs a single container. One `leaf_stack` for one container. -- The [base_stack.py](./base_stack.py) is common architecture that different containers can share (i.e VPC). Multiple "Leaf Stacks" can point to the same "Base Stack". +- The [./base_stack](./base_stack/README.md) is common architecture that different containers can share (i.e VPC, HostedZone). Multiple "Leaf Stacks" can point to the same "Base Stack". - The [./utils](./utils/README.md) are functions that don't fit in the other two. Mainly config readers/parsers. Click here to jump to '[Base Stack Config Options](#base-stack-config-options)'. It's the last section, since it's the longest. @@ -17,16 +19,13 @@ Click here to jump to '[Base Stack Config Options](#base-stack-config-options)'. The system is designed all around the Auto Scaling Group (ASG). This way, if the ASG spins up in any way (DNS query comes in, or you change the desired_count in the console), everything spins up around it. If a alarm triggers, it just has to spin the ASG back down and everything will naturally follow suit. -See the [leaf_stack README.md](./leaf_stack/README.md) for more info. +See the [leaf_stack'S README.md](./leaf_stack/README.md) for more info. ## Base Stack Summary -The [base stack](./base_stack.py) is the common architecture that different containers can share. Most notably: +The [base stack](./base_stack/README.md) is broken into two components (or "stacks"). One *must* be in us-east-1 for Route53, and the other has to be in the same region as you want to run the containers from. -- **VPC**: The overall network for all the containers and EFS. We used a public VPC, because private cost ~$32/month per subnet (because of the NAT). WITH ec2 costs, I want to shoot for about than $100/year with solid usage. -- **SSH Key Pair**: The key pair to SSH into the EC2 instances. Keeping it here lets you get into all the leaf_stacks without having to log into AWS each time you deploy a new leaf. If you destroy and re-build the leaf, this keeps the key consistent too. -- **SNS Notify Logic**: Designed for things admin would care about. This tells you whenever the instance spins up or down, if it runs into errors, etc. -- **Route53**: The base domain name for all stacks to build from. +Anything that can be here instead of the leaf stacks, should be. ## Base Stack Config Options diff --git a/ContainerManager/base_stack/README.md b/ContainerManager/base_stack/README.md new file mode 100644 index 0000000..4139bac --- /dev/null +++ b/ContainerManager/base_stack/README.md @@ -0,0 +1,17 @@ +# Base Stack Summary + +This is common architecture between leaf-stacks, combined to reduce costs and complexity. + +## Base Stack Main ([main.py](./main.py)) + +Deployed to the same region as you want to run the containers from. + +- **VPC**: The overall network for all the containers and EFS. We used a public VPC, because private cost ~$32/month per subnet (because of the NAT). WITH ec2 costs, I want to shoot for less than $100/year with solid usage. +- **SSH Key Pair**: The key pair to SSH into the EC2 instances. Keeping it here lets you get into all the leaf_stacks without having to log into AWS each time you deploy a new leaf. If you destroy and re-build the leaf, this keeps the key consistent too. +- **SNS Notify Logic**: Designed for things admin would care about. This tells you whenever the instance spins up or down, if it runs into errors, etc. + +## Base Stack Domain ([domain.py](./domain.py)) + +Deployed to `us-east-1`, since Route53 logs can only go there. + +- **Route53 HostedZone**: The base domain for all the leaf stacks. This is where the DNS records will be created for each leaf stack. The leaf stacks add their DNS record to this, and watch this log group for when their specific DNS record gets a query. diff --git a/ContainerManager/base_stack/main.py b/ContainerManager/base_stack/main.py index 80402cd..12c478e 100644 --- a/ContainerManager/base_stack/main.py +++ b/ContainerManager/base_stack/main.py @@ -6,9 +6,7 @@ from constructs import Construct from aws_cdk import ( Stack, - RemovalPolicy, aws_ec2 as ec2, - aws_route53 as route53, aws_sns as sns, aws_iam as iam, ) diff --git a/ContainerManager/leaf_stack/README.md b/ContainerManager/leaf_stack/README.md index d420827..03300f8 100644 --- a/ContainerManager/leaf_stack/README.md +++ b/ContainerManager/leaf_stack/README.md @@ -24,30 +24,30 @@ flowchart TD user-connects["🧑‍🤝‍🧑 User Connects 🧑‍🤝‍🧑"] - %% DOMAIN STACK SUBGRAPH - subgraph domain_stack["**domain_stack.py**"] - subgraph domain_stack_inner["(us-east-1)"] + %% BASE STACK DOMAIN SUBGRAPH + subgraph base_stack_domain["**BaseStack-Domain**"] + subgraph base_stack_domain_inner["(us-east-1)"] sub-hosted-zone[Sub Hosted Zone] query-log-group[Query Log Group] sub-hosted-zone --" Writes Log "--> query-log-group end end - class domain_stack blue_outer - class domain_stack_inner blue_inner + class base_stack_domain blue_outer + class base_stack_domain_inner blue_inner user-connects --" DNS Query "--> sub-hosted-zone - %% LINK TOGETHER STACK SUBGRAPH - subgraph link_together_stack["**link_together_stack.py**"] - subgraph link_together_stack_inner["(us-east-1)"] + %% START SYSTEM STACK SUBGRAPH + subgraph start_system["**start_system.py**"] + subgraph start_system_inner["(us-east-1)"] subscription-filter[Subscription Filter] lambda-start-system[Lambda: Start System] subscription-filter --" trigger "--> lambda-start-system end end - class link_together_stack green_outer - class link_together_stack_inner green_inner + class start_system green_outer + class start_system_inner green_inner query-log-group --" if Log matches Filter "--> subscription-filter %% LEAF STACK SUBGRAPH @@ -140,9 +140,9 @@ flowchart TD ## Stack Summaries -### [./domain_stack.py](./domain_stack.py) Stack (Blue) +### [Base Stack Domain](../base_stack/README.md) (Blue) -This sets up the Hosted Zone and DNS for the leaf_stack. This stack MUST be deployed to `us-east-1` since that's where AWS houses Route53. +This is apart of the base stack, but heavily used here. Follow that link to read more. ### [./NestedStacks](./NestedStacks/) Stack (Red) @@ -152,6 +152,6 @@ This stack handles seeing if people are connected to the container, along with h It also sets up a SNS for if you just want to subscribe to events of this specific container, and not any others. This stack can be deployed to any region. -### [./link_together_stack.py](./link_together_stack.py) Stack (Green) +### [./start_system.py](./start_system.py) Stack (Green) -This is what actually spins the ASG up when someone connects. This is it's own stack because it needs Route53 logs from the Domain Stack, so it HAS to be in `us-east-1`. It also needs to know the Main Stacks ASG to spin it up when the query log is hit, so it HAS to be deployed after that stack. We had to make this stack it's own thing then to avoid circular import errors. +This is what actually adds the DNS records to `Base Stack Domain` above, and spins the ASG up when someone connects. This is it's own stack because it needs Route53 logs from `Base Stack Domain`, so it HAS to be in `us-east-1`. It also needs to know the `NestedStacks` ASG to spin it up when the query log is hit, so it HAS to be deployed after that stack. And thus, it's it's own stack. diff --git a/Resources/AWS-ContainerManager_Basic_Diagram.png b/Resources/AWS-ContainerManager_Basic_Diagram.png index b38cbf0dbf655c4a5ee71c5d056248aa45518384..634bd1debfcc2a77eb9808ca2e7f60a775eefc07 100644 GIT binary patch literal 138293 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 literal 136177 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 z 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 blEBn^wC|#DgGXWF#?u-bn2`#Oy4?C7{w;se diff --git a/app.py b/app.py index 7f81997..b584627 100644 --- a/app.py +++ b/app.py @@ -111,7 +111,7 @@ leaf_stack_start_system = LeafStackStartSystem( app, - f"{application_id}-{container_id_alpha}-LinkTogetherStack", + f"{application_id}-{container_id_alpha}-StartSystemStack", description="Everything for spinning up the container when someone connects.", cross_region_references=True, env=us_east_1_env, From ce4163e04042f76c19f470ade2a56b2716f47b0b Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 20:53:07 -0900 Subject: [PATCH 7/9] Minor tweak, made filter matching more accurate in Mermaid graph --- ContainerManager/leaf_stack/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ContainerManager/leaf_stack/README.md b/ContainerManager/leaf_stack/README.md index 03300f8..7cad74a 100644 --- a/ContainerManager/leaf_stack/README.md +++ b/ContainerManager/leaf_stack/README.md @@ -43,12 +43,12 @@ flowchart TD subscription-filter[Subscription Filter] lambda-start-system[Lambda: Start System] - subscription-filter --" trigger "--> lambda-start-system + subscription-filter --" if Log matches Filter "--> lambda-start-system end end class start_system green_outer class start_system_inner green_inner - query-log-group --" if Log matches Filter "--> subscription-filter + query-log-group --" Reads From "--> subscription-filter %% LEAF STACK SUBGRAPH subgraph nested_stacks["**./NestedStacks/**"] From 0836762cf94719f4e8a8307620f2467e3a21b6fa Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 20:55:41 -0900 Subject: [PATCH 8/9] Made headers more clear --- ContainerManager/leaf_stack/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ContainerManager/leaf_stack/README.md b/ContainerManager/leaf_stack/README.md index 7cad74a..4de70b2 100644 --- a/ContainerManager/leaf_stack/README.md +++ b/ContainerManager/leaf_stack/README.md @@ -144,7 +144,7 @@ flowchart TD This is apart of the base stack, but heavily used here. Follow that link to read more. -### [./NestedStacks](./NestedStacks/) Stack (Red) +### [./NestedStacks](./NestedStacks/) Leaf Stack (Red) All of the nested stacks are combined into one stack at [./main.py](./main.py). They're broken into Nested Stack chunks, to keep each chunk easy to read/manage. For more information, see the [NestedStack's README](./NestedStacks/README.md). @@ -152,6 +152,6 @@ This stack handles seeing if people are connected to the container, along with h It also sets up a SNS for if you just want to subscribe to events of this specific container, and not any others. This stack can be deployed to any region. -### [./start_system.py](./start_system.py) Stack (Green) +### [./start_system.py](./start_system.py) Leaf Stack (Green) This is what actually adds the DNS records to `Base Stack Domain` above, and spins the ASG up when someone connects. This is it's own stack because it needs Route53 logs from `Base Stack Domain`, so it HAS to be in `us-east-1`. It also needs to know the `NestedStacks` ASG to spin it up when the query log is hit, so it HAS to be deployed after that stack. And thus, it's it's own stack. From fdc4539cc94d7c1a980064353a627f534696dcc3 Mon Sep 17 00:00:00 2001 From: Cameron Showalter Date: Sat, 7 Dec 2024 20:58:31 -0900 Subject: [PATCH 9/9] Pylint change --- ContainerManager/base_stack/domain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ContainerManager/base_stack/domain.py b/ContainerManager/base_stack/domain.py index b6fe381..e855539 100644 --- a/ContainerManager/base_stack/domain.py +++ b/ContainerManager/base_stack/domain.py @@ -94,4 +94,4 @@ def __init__( self.export_value(self.hosted_zone.hosted_zone_name_servers) self.export_value(self.route53_query_log_group.log_group_arn) self.export_value(self.hosted_zone.hosted_zone_id) - self.export_value(self.route53_query_log_group.log_group_name) \ No newline at end of file + self.export_value(self.route53_query_log_group.log_group_name)