PowerDown Complete AWS Environments

Michael O'Brien
SenseDeep
Published in
4 min readMar 9, 2018

Most web applications are comprised of many cloud resources: servers, containers, load balancers, databases and caches. A complete site may have dozens of interdependent resources that combine to provide the service.

Sites are typically organized into environments that are replicated for different purposes. The “production” environment is for the live site, “staging” for the almost-live product, “testing” and “dev” environments for code that is still being cooked.

Infrastructure as code

Prod, stage, test and dev share common infrastructure

It is best if these environments are as similar as possible so that production issues are caught in dev, test or staging before going live to production. Using a tool like Terraform, you can define these environments as “code” and easily replicate them. This is called “Infrastructure as Code” and has other benefits such as “Immutable Infrastructure Can be More Secure”.

Terraform is ideal for creating and destroying environments and you can be confident that a “test” environment will faithfully simulate the “production” environment. With Terraform you can easily scale up or down configurations for different environments. For example: “test” does not need to have as many instances as “production”. However, Terraform is not the best at starting and stopping environments.

Idle resources are costly

AWS and other cloud providers charge by the second for any resources that are active in your account. So those “test” and “staging” environments can be quite wasteful when they are not being used.

These environments are typically not required 24x7 and some may be only required during certain business hours. By simply powering down these resources, you can realize savings of up to 70% of their cloud bill. So, how to stop such environments and quickly restart?

Use Terraform to stop the environment?

Terraform is good at creating and destroying environments, but doing a full destroy and re-create is slow and not the best approach, especially if the resources can be simply stopped and then restarted as needed. Creating and destroying is also much more complex and error prone than simply starting and stopping resources.

AWS fast start, quick stop

Many AWS resources can be started and stopped very quickly. AWS on-demand and spot instances, AutoScale groups, RDS databases and ECS Fargate containers can be stopped and started in under a minute — often within seconds. You can use the AWS console, CLI or API to start and stop resources.

However, Amazon does not provide a simple way to organize a group of resources into an environment and to power up as a group. Nor does it provide a way to manage inter-resource dependencies. For this we need a different tool.

PowerDown Cloud Optimizer

The PowerDown cloud optimizer is designed to manage the availability of resource environments. While it can easily turn on and off individual resources, it can also group collections of resources into a complete environment and then power them up and down with a single click. Resource groups can also be scheduled to meet any users availability needs via a dynamic schedule.

PowerDown Resource Groups

Using PowerDown, you represent your environments as PowerDown resource groups. PowerDown resource groups are an ordered collection of cloud resources and other resource groups that can be managed as a unit. You can create a resource group to represent each of your environments.

Resource groups form a tree of resources of any depth. If the top group, in this case “Testing”, is powered up or down, PowerDown will orchestrate the powering of all sub-resources in sequence.

Nested Resource Groups

Shared Resources

Resources may be shared by multiple resource groups and users may have overlapping (or contradictory) requests for resources to be available. PowerDown resolves these competing demands and ensures that any resource that is required by any user, will be available as required. It optimizes the requests to ensure the maximum savings by powering down all eligible resources.

PowerDown Grouped Cloud Resources

Learn More

Setup PowerDown’s transparent spot management in just five clicks.

You are welcome to register for a free trial of PowerDown or go to the www.sensedeep.com/powerdown to learn more.

--

--