- Faster operations
- Improved scalability
- Enhanced automation

- Automation
- Scalability
- High availability
- Security
When provisioning cloud resources, consider the following best practices:
- Use Infrastructure as Code (IaC): Create and version templates similarly to tracking changes in documents.
- Proper Naming and Tagging: Ensure templates include specific project details such as billing codes, department info, ownership, and support contacts.
- Automation: Extend automation beyond resource provisioning to include code deployment, monitoring tools, and CI/CD pipelines.
- Principle of Least Privilege: Grant the minimum necessary permissions (e.g., EC2 instance access limited to a specified S3 bucket or DynamoDB table).
- Regular Audits: Perform continuous audits and optimizations to ensure resource security and efficiency.

- Pure Provisioning Tools: Tools like Terraform are widely used.
- Native AWS Tools: AWS CloudFormation and the AWS Cloud Development Kit (CDK) are commonly used in AWS-centric environments.
- Configuration Management Tools: Tools such as Ansible, Chef, and Puppet support provisioning activities.
- GitOps & CI/CD Tools: Enhance deployment consistency with tools like Jenkins and GitLab CI/CD: Architecting, Deploying, and Optimizing Pipelines.
For the AWS certification exam, AWS emphasizes their native tools. While third-party tools like Pulumi or Terraform are useful for broader contexts, exam scenarios typically focus on CloudFormation and CDK. Similarly, configuration management tools such as Ansible, Chef, and Puppet are generally not the correct choices on AWS certification exams.