Skip to main content

shutdown and startup AWS CloudFormation EC2 and RDS instances

Project description

AWS CloudFormation power switch

AWS CloudFormation power switch allows you to shutdown and startup all EC2, RDS and AutoScaling instances managed by one or more CloudFormation stacks.

install the power switch

to install the power switch, type:

pip install aws-cloudformation-power-switch

shutdown

to shutdown all instances managed by CloudFormation stacks starting with the name dev, type:

cfn-power-switch --dry-run --stack-name-prefix dev on

This will show you which EC2, RDS and AutoScaling instances will be shutdown. For Auto Scaling groups, the desired number of instances is set to 0. If the minimum is greater than 0, it will change the minimum setting too.

startup`

to startup all instances managed by a CloudFormation stacks starting with the name dev, type:

cfn-power-switch --dry-run --stack-name-prefix dev off

This will show you which EC2, RDS and AutoScaling instances will be started. The AutoScaling desired number of instances will be set the maximum desired instances. Remove the --dry-run and it will be activated.

deploy the power switch

To deploy the power switch as an AWS Lambda, type:

git clone https://github.com/binxio/aws-cloudformation-power-switch.git
cd aws-cloudformation-power-switch.git
aws cloudformation deploy \
	--capabilities CAPABILITY_IAM \
	--stack-name aws-cloudformation-power-switch \
	--template-file ./cloudformation/aws-cloudformation-power-switch.yaml

Demo

install the demonstration, type:

aws cloudformation deploy \
	--capabilities CAPABILITY_IAM \
	--stack-name aws-cloudformation-power-switch-demo \
	--template-file ./cloudformation/demo-stack.yaml

This deploy an ec2 instance, an autoscaling group and a RDS MySQL database instance, It will shutdown down all EC2, RDS and Auto Scaling instances managed by CloudFormation stacks starting with the name dev at 23:30 and start them backup at 7:30 in the morning.

To manual stop all the instance, type:

cfn-power-switch --verbose --stack-name-prefix aws-cloudformation-power-switch off

It will take few minutes before everything is shutdown and you can restart the stack.

to start everything back up, type:

cfn-power-switch --verbose --stack-name-prefix aws-cloudformation-power-switch off

It will take few minutes before everything is running again.

Do not forget to delete the stack:

aws cloudformation delete-stack --stack-name aws-cloudformation-power-switch-demo

Caveats

  • The power switch will only start instances in stopped state, and stop instances in the availableorrunning` state. If it is transitioning between states, no action is taken.
  • As CloudFormation does not place the aws:cloudformation: tags on RDS Aurora Clusters, we need to load all CloudFormation stacks and resources to find out whether we need to start or stop it. And listing all CloudFormation stacks is very, very slow...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws-cloudformation-power-switch-0.1.11.tar.gz (7.6 kB view details)

Uploaded Source

File details

Details for the file aws-cloudformation-power-switch-0.1.11.tar.gz.

File metadata

  • Download URL: aws-cloudformation-power-switch-0.1.11.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.5

File hashes

Hashes for aws-cloudformation-power-switch-0.1.11.tar.gz
Algorithm Hash digest
SHA256 654b332ce560ae15d69a605c9c6f8196d2ae88b7267bb911a04f711bdbb74659
MD5 fe5e8a32f1adcdd248eba8d21c7961e3
BLAKE2b-256 8e21422172e41f35cf58fe98be301c9cbc91f413af841d8d9f799888a437f1c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page