
Darwin Martin
Principal Software Engineer

Terraform Import Tariffs: Bringing Existing Cloud Resources Under Terraform Management
Why Infrastructure Might Exist Prior to Terraform
- Legacy Infrastructure: Resources created manually before infrastructure-as-code tools were prevalent.
- Ad-hoc Provisioning: Resources provisioned quickly for testing or urgent needs without automation.
- Migration and Consolidation: Infrastructure created through various methods that now need unification under Terraform.
- Lack of Automation Strategy: Organizations initially lacked the expertise or priority to automate.
Why Terraform or Similar Tools Are Needed
- Consistency and Repeatability: Eliminates configuration drift.
- Automation: Reduces manual errors and accelerates deployments.
- Version Control: Enhances collaboration, auditing, and rollback capabilities.
- Scalability: Efficiently scales infrastructure.
- Cost Management: Clear definition and auditability of resources.
Tools for Automating Terraform Imports
- Terraformer: Generates Terraform configurations from existing resources for various cloud providers.
- Az2tf: Automates Terraform configuration generation specifically for Azure resources.
- Pulumi Import: Offers similar import capabilities for Pulumi users.
Step-by-Step Guide to Importing Resources
1. Identify the Resource
Example: AWS EC2 Instance (Instance ID), Azure Resource Group (name).
2. Write Terraform Configuration
resource "aws_instance" "example" {
# Initial configuration
}
resource "azurerm_resource_group" "example" {
name = "existing-resource-group"
location = "East US"
}
3. Import the Resource
terraform import aws_instance.example i-0123456789abcdef0
terraform import azurerm_resource_group.example /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
4. Verify Terraform State
terraform state list
5. Update Configuration
terraform plan
Best Practices for Importing Resources
- Backup your Terraform state file regularly.
- Use
terraform plan
frequently. - Document configurations clearly.
Conclusion
Importing existing resources into Terraform significantly improves infrastructure management efficiency and reliability. Embrace infrastructure-as-code methodologies to maximize benefits.