S3 buckets are Amazon’s cloud storage service. It’s not unusual for a large enterprise to deploy numerous S3 buckets for development, testing, and other services.
Instead of manually provisioning several S3 buckets, you can use Terraform to deploy them within seconds. After creating a Terraform file, you can continue to deploy S3 buckets within seconds without having to configure each one of them.
When Would You Use S3 with Terraform?
If you need to deploy several S3 buckets for an application, you can manually configure them, but this takes several minutes, and you would need to repeat the same process next time you need AWS cloud storage.
Instead, you can use a Terraform template to streamline the process. A Terraform template contains settings for the S3 bucket and can be used to send commands to the API to deploy multiple S3 buckets simultaneously within seconds so you don’t have to repeat the same steps manually. The only step you need to take is creating the Terraform files so they deploy the S3 buckets.
How to Create an S3 Bucket Using Terraform: An Example
In this example, two Terraform template files are created. They’re named bucket.tf and variables.tf. Both of these files will contain the S3 bucket name, configurations, access keys to user profiles so that the bucket can be accessible, and a region to store the bucket.
Step 1: Create the bucket.tf File
The bucket.tf file stores the name, region, and access keys for the S3 bucket. Use the following code in the bucket.tf file:
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "${var.region}"
}
module "s3" {
source = "<path-to-S3-folder>"
bucket_name = "your_bucket_name"
}
resource "aws_s3_bucket" "temps3" {
bucket = "${var.bucket_name}"
acl = "${var.acl_value}"
}
Step 2: Create the variables.tf File
The variables.tf file contains the variable references you see in the bucket.tf file. Create a Terraform file with the following code:
variable "bucket_name" {}
variable "acl_value" {
default = "private"
}
variable "aws_access_key" {
default = “<your_access_key>”
}
variable "aws_secret_key" {
default = “<your_secret_key>”
}
variable "region" {
default = "region"
}
Step 3: Execute the Commands in Terraform
To execute commands in Terraform, you first must initialize it. You can then apply the changes to your environment to create the S3 bucket. Type the following commands in Terraform:
terraform init
terraform apply
How to Create S3 Bucket Instances in Terraform
You use the same steps as above to create bucket instances. Follow these steps to create the bucket.tf file and variables.tf file and deploy S3 bucket instances.
Step 1: Create the bucket.tf File
The bucket.tf file stores the basic configurations for the S3 bucket instance. Use the following code in the bucket.tf file:
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "${var.region}"
}
module "s3" {
source = "<path-to-S3-folder>"
bucket_name = "your_bucket_name"
}
resource "aws_s3_bucket" "temps3" {
bucket = "${var.bucket_name}"
acl = "${var.acl_value}"
}
Step 2: Create the variables.tf File
The variables.tf file contains the variable references you see in the bucket.tf file. Create a Terraform file with the following code:
variable "bucket_name" {}
variable "acl_value" {
default = "private"
}
variable "aws_access_key" {
default = “<your_access_key>”
}
variable "aws_secret_key" {
default = “<your_secret_key>”
}
variable "region" {
default = "region"
}
Step 3: Execute the Commands in Terraform
If you already have Terraform initialized from the previous section, then you do not need to execute it again. If not, you must initialize Terraform before applying environment changes. Type the following commands in Terraform, but exclude the first command if you already have Terraform initialized:
terraform init
terraform apply
Conclusion
Terraform template files can be used to repeat the same process numerous times instead of manually configuring AWS cloud services every time you need them. You can cut down provisioning time from several hours to a few seconds.
BUYER’S GUIDE, 14 PAGES
A Buyer’s Guide to Modern Virtualization
Written By:
The Cloud Experience, Everywhere
Learn how to accelerate innovation and agility with a modern, unified cloud.