Question

Difficulty: HardIdentify design principles of the AWS Cloud

A software development company is designing a new continuous integration and continuous deployment (CI/CD) pipeline on AWS. The pipeline must run multiple automated tests on isolated, clean environments for every code commit, and then clean up all resources immediately after the tests complete. Which two of the following design decisions demonstrate the application of the 'disposable resources' design principle?

  1. Using AWS CloudFormation templates to programmatically provision identical testing environments for each commit and deleting the stacks automatically after test execution.Answer
  2. Configuring the test runner to launch temporary Amazon EC2 Spot Instances that boot up, execute the tests, and are terminated immediately upon completion.Answer
  3. C
    Maintaining a single, highly scaled Amazon EC2 instance that remains active 24/7 to host all test environments sequentially.
  4. D
    Deploying a stateful database on a dedicated Amazon EC2 instance with permanent block storage that cannot be deleted or re-provisioned.
  5. E
    Manually configuring network routing and subnet configurations through the AWS Management Console for every test execution to avoid automation overhead.

Answer

The correct decisions are: using AWS CloudFormation templates to programmatically provision and delete testing environments, and using temporary Amazon EC2 Spot Instances that are terminated immediately after test execution.
The correct design decisions involve using AWS CloudFormation to automatically provision and delete testing environments, and utilizing temporary Amazon EC2 Spot Instances that are terminated immediately after use. Both decisions treat infrastructure as temporary and disposable, allowing environments to be created and destroyed programmatically to optimize costs and maintain consistency.

Step-by-Step Solution

1
Analyze the business and technical requirements of the scenario.
The scenario requires isolated, clean environments for automated testing that are terminated immediately after execution to minimize costs.
Understanding the lifecycle of the required resources is necessary to match them with the appropriate AWS design principle.
2
Evaluate the design decisions against the definition of 'disposable resources'.
The principle of disposable resources states that servers and other components should be treated as temporary assets that can be easily replaced, typically enabled through automation and Infrastructure as Code (IaC).
Applying the core definition of the AWS design principle helps filter out static or manual architectures.
3
Identify options that utilize automated provisioning and teardown of temporary components.
Using AWS CloudFormation to automatically spin up and destroy identical stacks, and using EC2 Spot Instances that are terminated post-execution, are both practices that align with disposable resources.
These actions programmatically manage the resource lifecycle dynamically based on demand rather than maintaining fixed assets.

Key Concept

Disposable resources instead of fixed servers is a core AWS Cloud design principle. It states that infrastructure components should be treated as temporary assets that can be programmatically launched, configured, and terminated on demand, rather than being treated as permanent, static servers.
Estimated Time:2m 30s
Rate this question