Extending ECS Auto-scaling for under $2/month with Lambda
A Lambda function to ensure an ECS Service is set to the correct Desired Count for a One-Task-Per-Host placement value for any cluster that runs the Service.
boto3
(included in AWS Lambda functions, no need for packaged deployment)ECS_SERVICE_ARN
environment variableThe function is meant to be deployed as a non-VPC Lambda function. It will probably work in a VPC environment, given an Internet Gateway and proper permissions, but it simply does not need access to any in-VPC resources, only AWS API calls.
ecs:Describe*
and ecs:UpdateService
{"source": ["aws.ecs"], "detail-type": ["ECS Container Instance State Change"]}
lambda_function.py
pip install -r requirements.txt
pytest
See py.test docs and botocore Stubber reference for more.
git checkout -b my-new-feature
)pytest --cov
- the tests currently cover the code 100% - don't lower that number!git commit -am 'Add some feature'
)git push origin my-new-feature
)