A small production environment for a Kandula web application on AWS (Kandula App)
In the terraform folder you can find 3 modules;
- VPC module
- A VPC with 4 subnetes; 2 private and 2 public spreaded between 2 Avaliability zones.
- Routing Tables
- An internet gateway
- 2 NAT gatways for the private subnets
- servers module
- ec2 instances with specific security groups and IAM roles(according to the applications needs)
- ALB for the UI of the services
- A private DNS hosted zone to serve the instances
- EKS module(v17.24 from terraform registry) which includes 4 nodes
Except for the Ansible server itself all other installation and configurations are made by Ansible Roles:
- Consul Server and Agents
- Postgresql Server with Tables for kandula
- Elastic and Kibana server
- Grafana server
- Prometheus Server
- Filebeat agent
- Jenkins agents (Java, AWS CLI, Kubectl, helm, Trivy, updating IP address on the Jenkins server)
- Node Exporter
A basic CLI script that allows managment of the EC2 instaces in this project