Deploy AWS Resources Locally with OpenTofu & LocalStack ??
Ambati Bhargavi
Devops?? Enthusiast?? || Passionate about Automation and ?? Cloud || AWS?? || Skilled in CI/CD Pipeline || ??Docker || ??Linux || ??GIT || ??Kubernetes?? Seeking opportunity to Innovate and Optimize
Introduction
Infrastructure as Code (IaC) is a game-changer for managing cloud resources, but testing AWS deployments can be costly and time-consuming. OpenTofu, an open-source Terraform alternative, combined with LocalStack, lets you create and test AWS resources without real AWS accounts—saving time and money!
This guide walks you through deploying an S3 bucket and an EC2 instance using OpenTofu and LocalStack.
?? Why OpenTofu + LocalStack?
? No AWS Costs – Run AWS services locally. ? Faster Testing & Development – Instant deployment, no waiting. ? Terraform-Compatible – Seamless migration. ? Full AWS API Emulation – Supports S3, EC2, IAM, and more. ? Open Source & Vendor-Neutral – No licensing restrictions!
?? Step-by-Step Setup
1?? Install LocalStack & OpenTofu
pip install localstack awscli-local
brew install opentofu
localstack start
2?? Configure AWS Credentials for LocalStack
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_SESSION_TOKEN=test
export AWS_DEFAULT_REGION=us-east-1
alias aws="aws --endpoint-url=https://localhost:4566"
3?? Define AWS Resources in OpenTofu (main.tf)
provider "aws" {
access_key = "test"
secret_key = "test"
region = "us-east-1"
skip_credentials_validation = true
skip_metadata_api_check = true
skip_requesting_account_id = true
endpoints {
s3 = "https://localhost:4566"
ec2 = "https://localhost:4566"
}
}
resource "aws_s3_bucket" "tofu_bucket" {
bucket = "tofu-bucket"
force_destroy = true
}
resource "aws_instance" "tofu_instance" {
ami = "ami-12345678" # Dummy AMI for LocalStack
instance_type = "t2.micro"
}
领英推荐
4?? Deploy with OpenTofu
tofu init
tofu plan
tofu apply -auto-approve
5?? Verify Resources
To check the S3 bucket:
aws s3 ls --endpoint-url=https://localhost:4566
To check the EC2 instance:
aws ec2 describe-instances --endpoint-url=https://localhost:4566
?? Conclusion
By using OpenTofu with LocalStack, you can deploy, test, and automate AWS infrastructure locally, without AWS costs or cloud dependencies. This setup is perfect for CI/CD pipelines, infrastructure testing, and DevOps automation.
?? Are you using OpenTofu? Let’s discuss your experience in the comments!
?? Full guide here: https://github.com/ambatibhargavi/tofu.git
#OpenTofu #LocalStack #Terraform #DevOps #AWS #CloudComputing #InfrastructureAsCode