Copyright (c) 2026 MindMesh Academy. All rights reserved. This content is proprietary and may not be reproduced or distributed without permission.

2.1.1. How Terraform Uses Providers

💡 First Principle: A provider is an API client wrapped in a Terraform-friendly schema — it exposes resource types (things Terraform can manage) and data sources (things Terraform can read), and translates Terraform's generic CRUD operations into that platform's actual API calls.

When you write resource "aws_instance" "web", the aws_ prefix tells Terraform which provider owns that resource type. During an operation, Terraform core builds a plan and hands each resource's create/read/update/delete work to the relevant provider, which makes the real API calls and reports results back. Core handles the graph, the diffing, and the state; the provider handles the platform.

⚠️ Exam Trap: Know the difference between a resource (provider can create and manage it) and a data source (provider only reads it). Both come from providers, but a data source never causes Terraform to create or destroy anything — it just fetches information to use elsewhere in your configuration.

Reflection Question: Why can Terraform add support for an entirely new cloud platform without any change to Terraform core itself?

Alvin Varughese
Written byAlvin Varughese
Founder18 professional certifications