This project is the infrastructure as code management for Market data notification using AWS.
images/
: Packer files for building AMIimage.pkr.hcl
: Main packer scriptscripts/
: Scripts to be run when provisioning AMI
instances/
: Terraform files to provision EC2 in VPCmain.tf
: Main terraform scriptansible/
: Ansible scripts to run post-provisioning tasks such as mounting EBS volume, set up file system, copy postgres data, setup SSL for nginxscripts/
: Scripts to automate(everything after step 2 of the workflow) start and stop of EC2, DNS, and deployment of Market data notification. Calls ansible scripts
Provisions a EBS-backed EC2 AMI, and install the necessary softwares for Market data notification:
- redis
- docker
- nginx
cd into images/
Define variables that are declared in image.pkr.hcl
in a new file variables.auto.pkrvars.hcl
Build image: packer build -machine-readable -var-file variables.auto.pkrvars.hcl image.pkr.hcl | tee build.log
cd into instances/
Copy the AMI ID from packer build, update it in variables.tf
Provision infra: terraform apply
Everything from here onwards is handled in instances/scripts/start.sh
Run post-provisioning configurations such as setting up DNS, configuring nginx SSL
Rerun the latest deploy job in github action