DEA-C01 Question 127
Single answerYou are a data engineer tasked with deploying an Amazon Redshift cluster for your organization. The deployment must be repeatable across different environments (e.g., development, staging, production) and should allow parameterization for environment-specific configurations like node type and number of nodes. Which approach should you take to achieve these requirements?
- A
Manually create the Amazon Redshift cluster using the AWS Management Console for each environment.
- B
Write a Python script with the AWS SDK (Boto3) to programmatically create the Amazon Redshift cluster.
- C
Use AWS CloudFormation templates to define the Amazon Redshift cluster and parameterize environment-specific settings.
- D
Use the AWS Command Line Interface (CLI) to create the Amazon Redshift cluster and manually specify parameters for each environment.
Show answer and explanation
Correct answer: C
Explanation
AWS CloudFormation is a native IaC service that allows you to define infrastructure in templates. By parameterizing these templates, you can reuse them across multiple environments, ensuring consistency and reducing manual effort. This makes AWS CloudFormation the most suitable choice for repeatable deployments with environment-specific configurations.
- A. Incorrect.
Manually creating resources using the AWS Management Console is not repeatable or scalable. It also increases the risk of configuration errors across environments.
- B. Incorrect.
While using the AWS SDK (Boto3) allows programmatic control, it requires custom scripting and lacks the native declarative approach offered by infrastructure as code (IaC) tools like AWS CloudFormation.
- C. Correct.
AWS CloudFormation enables repeatable and consistent deployments by defining resources in templates. It also allows parameterization, making it ideal for managing environment-specific configurations.
- D. Incorrect.
Using the AWS CLI is manual and requires specifying parameters for each deployment, which does not align with the principles of repeatable and automated infrastructure as code.