{"repo":"egidijus/scalable-app","free":true,"listed":false,"github":"https://github.com/egidijus/scalable-app","clone":"git clone https://github.com/egidijus/scalable-app.git","description":"modern ansible, AWS, ECS fargate \"serverless\" scalable app","language":"Python","stars":19,"topics":["python","docker","aws","serverless","cloud","automation","ecs","ansiblle","docker-compose"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"modern ansible, AWS, ECS fargate \"serverless\" scalable app What is this? This solution will: 1. Build a docker image locally with a basic python app. 1. Create a VPC with public routes and security groups. 1. Creates relevant IAM Roles for ECS/FARGATE. 1. Push docker image to AWS ECR. 1. Create an AWS ECS cluster and service and task. 1. Start ECS cluster task based on your container. 1. Attach the ECS FARGATE cluster to an AWS ELB for dynamic scaling. 1. You can scale number of nodes you want to run by changing size of cluster: 2 in ./vars/all.yml 1. This also puts logs in to AWS Cloudwatch. Find conatiners accessible behing the ELB ( PLEASE NOTE, TOMATO.CAT is now a static HTML page on S3, because that is cheaper than running this infrastructure for a demo) Access ELB entrance is via http://tomato.cat Health endpoint : http://tomato.cat/ health You will need Considerations assumptions and caveats This solution does not cover: Discovery: We could use AWS R53 DNS with a \"local\" zone setup and registering all the resources in to that zone. Or we could use something like HashiCorp Consul which we would ship with the container. Complex container: This is a very basic docker application container. We could have a service supervisor in the container like s6-overlay and have the app run nginx, uwsgi python and varnish with consul-template or consul env for dynamically loading and reloading configuration changes. CI: This does not include test or test runner, but it should be easy t","default_branch":null,"files":null,"tree":[],"storefront":"/r/egidijus","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/egidijus/scalable-app/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}