View a markdown version of this page

Resource management - Development and Test on Amazon Web Services

This whitepaper is for historical reference only. Some content might be outdated and some links might not be available.

Resource management

With AWS, your development and test teams can have their own resources, scaled according to their own needs. Provisioning complex environments or platforms composed of multiple resources can be done using AWS CloudFormation stacks, or some of the other automation techniques described in this whitepaper. In large organizations comprising multiple teams, it is a good practice to create an internal role or service responsible for centralizing and managing IT resources running on AWS. This role typically consists of:

  • Promoting the internal development and test practices described here

  • Developing and maintaining template AMIs and template AWS CloudFormation stacks with the different tools and platforms used in your organization

  • Collecting resource requests from project teams, and provisioning resources on AWS according to your organization’s policies, including network configuration (such as Amazon VPC) and security configurations (such as Security Groups and IAM credentials)

  • Monitoring resource usage and charges using AWS Cost Explorer, and allocating these to team budgets

You can use the Service Catalog to achieve the tasks above or you might want to develop your own internal provisioning and management portal for a tighter integration with internal processes. You can do this by using one of the AWS SDKs, which allow programmatic access to resources running on AWS.

Cost allocation and multiple AWS accounts

Some customers have found it helpful to create specific accounts for development and test activities. This can be important when your production environment also runs on AWS and you need to separate teams and responsibilities. Separate accounts are isolated from each other by default, so that, for example, development and test users do not interfere with production resources. To enable collaboration, AWS offers a number of features that enable sharing of resources across accounts, such as Amazon S3 objects, AMIs, and Amazon EBS snapshots.

To separate out and allocate the cost for the various activities and phases of the development and test cycle, AWS offers various options. One option is to use separate accounts (for example, for development, testing, staging, and production), and each account will have its own bill. You can also consolidate multiple accounts using consolidated billing for AWS Organizations to simplify costs and take advantage of quantity discounts with a single bill.

Another option is to make use of the monthly cost allocation report, which enables you to organize and track your AWS costs by using resource tagging. In the context of development and test, tags can represent the various stages or teams of the development cycle, though you are free to choose the dimensions you find most helpful.