This repository defines the infrastructure for the Populare app. Running
terraform apply
provisions compute, load balancers, databases, logging, and
other services in AWS, then deploys all Populare microservices into Kubernetes
(EKS). Once deployed, users can access the web app from the load balancer URL;
administrators can access internal services through the VPN. Running
terraform destroy
cleans up all infrastructure. Below is the infrastructure
diagram.
We deploy the following microservices.
- Populare web app
- Populare database proxy
- Populare reverse proxy
- Populare SNS notifier
- Prometheus
- Wireguard
The figure below shows how the microservices interact.
- Standalone Kubernetes. In your Kubernetes cluster (we tested with Minikube),
run
kubectl apply -f kubernetes-standalone/populare-kubernetes.yaml
. For additional documentation, see the Kubernetes notes page. - Terraform with AWS. Follow the instructions on the Terraform notes page. You will have to apply the EKS plan first, then the Kubernetes plan; this is consistent with Terraform guides, as described in #14.
Please see the docs directory for notes on specific microservices, AWS-managed Cloud services like EKS and IAM, Terraform, and more.