## Description This template creates a VPC with two public and private subnets across two availability zones. The VPC includes an Internet Gateway and a managed NAT Gateway in each public subnet as well as VPC Route Tables that allow for communication between the public and private subnets. The environment supports asynchronous service-to-service communication using a publish/subscribe model through a shared Amazon SNS topic. In contrast to synchronous communication (i.e. HTTP API), with asynchronous communication, we can avoid blocking the sender to wait for a response as well as decoupling producer from consumer. Multiple services can broadcast events to the SNS topic. All components that subscribe to the topic will receive the message, and can each do something different with the message in parallel. The template also creates an Amazon VPC endpoint to publish messages to the SNS topic. With a VPC endpoint, you can publish messages to your topics while keeping the traffic within the network that you manage with the VPC. Since the environment supports App Runner services, we also provision a App Runner VPC connector to associate the service with the VPC. ## Architecture ![vpc-env](../../images/vpc-env.png) ## Parameters 1. vpc_cidr: The CIDR range for your VPC 2. public_subnet_one_cidr: The CIDR range for public subnet one 3. public_subnet_two_cidr: The CIDR range for public subnet two 4. private_subnet_one_cidr: The CIDR range for private subnet one 5. private_subnet_two_cidr: The CIDR range for private subnet two ## Security See [CONTRIBUTING](../../CONTRIBUTING.md#security-issue-notifications) for more information. ## License This library is licensed under the MIT-0 License. See the LICENSE file.