This repository packages applications and deploys them across three separate compute platforms on AWS: Lambda, ECS, and EKS. They are integrated with VPC Lattice to allow clients in other AWS accounts and separate VPCs to communicate with those backend services, simplifying east-west communication between internal applications.
This repository has a number of directories that can be deployed as modules.
The following should be deployed first to set up the core infrastructure.
vpc
: VPC to be used in each associated account, deployed using CDKspring
: Spring Boot application that is deployed in all relevant accounts, deployed using CloudFormation or SAM
The next can be deployed in any order, depending on your requirements.
api
: Frontend API client into VPC Lattice using SAMlambda
: Lambda function using SAMecs
: ECS cluster, task, and service setup using SAMeks
: EKS cluster setup usingeksctl
, IAM role setup using CloudFormation, deployments usingkubectl
Note that the intention of this architecture was to deploy the same Spring Boot application to Lambda, ECS, and EKS. However, due to an outstanding issue, the Lambda backend was implemented as a simple hello world application. The Lambda backend will be updated when that issue is resolved.
See CONTRIBUTING for more information.
This library is licensed under the MIT-0 License. See the LICENSE file.