{"id":32467,"date":"2026-05-03T08:27:06","date_gmt":"2026-05-03T08:27:06","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=32467"},"modified":"2026-05-03T08:27:08","modified_gmt":"2026-05-03T08:27:08","slug":"terraform-backend-tutorial","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/terraform-backend-tutorial\/","title":{"rendered":"Terraform Backend Tutorial"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"484\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-27-1024x484.png\" alt=\"\" class=\"wp-image-40899\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-27-1024x484.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-27-300x142.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-27-768x363.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-27.png 1228w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Terraform is a popular open-source infrastructure as code tool used to create and manage infrastructure resources. The state of the infrastructure resources managed by Terraform is stored in a backend, which can be a remote storage location such as Amazon S3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To configure Terraform to use an S3 backend, you will need to perform the following steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create an S3 bucket &#8211; create a new S3 bucket or use an existing one for storing the Terraform state file.<\/li>\n\n\n\n<li>Create an S3 access key &#8211; generate an access key and secret key with the appropriate permissions for accessing the S3 bucket.<\/li>\n\n\n\n<li>Configure Terraform backend &#8211; add the following code block to your Terraform configuration file, replacing the values with your specific S3 bucket and access key information:<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">List of Terraform Backends Options (May 2026)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>#<\/th><th>Terraform Backend<\/th><th>Supported in latest Terraform v1.15.x May 2026<\/th><th>Used For \/ Cloud<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td><code>local<\/code><\/td><td>Yes<\/td><td>Local machine state file<\/td><\/tr><tr><td>2<\/td><td><code>remote<\/code><\/td><td>Yes<\/td><td>HCP Terraform \/ Terraform Enterprise<\/td><\/tr><tr><td>3<\/td><td><code>s3<\/code><\/td><td>Yes<\/td><td>AWS S3 remote state<\/td><\/tr><tr><td>4<\/td><td><code>azurerm<\/code><\/td><td>Yes<\/td><td>Azure Storage Account backend<\/td><\/tr><tr><td>5<\/td><td><code>gcs<\/code><\/td><td>Yes<\/td><td>Google Cloud Storage backend<\/td><\/tr><tr><td>6<\/td><td><code>consul<\/code><\/td><td>Yes<\/td><td>HashiCorp Consul state backend<\/td><\/tr><tr><td>7<\/td><td><code>cos<\/code><\/td><td>Yes<\/td><td>Tencent Cloud Object Storage<\/td><\/tr><tr><td>8<\/td><td><code>http<\/code><\/td><td>Yes<\/td><td>Generic HTTP remote backend<\/td><\/tr><tr><td>9<\/td><td><code>kubernetes<\/code><\/td><td>Yes<\/td><td>Kubernetes Secret-based state<\/td><\/tr><tr><td>10<\/td><td><code>oci<\/code><\/td><td>Yes<\/td><td>Oracle Cloud Infrastructure Object Storage<\/td><\/tr><tr><td>11<\/td><td><code>oss<\/code><\/td><td>Yes<\/td><td>Alibaba Cloud Object Storage Service<\/td><\/tr><tr><td>12<\/td><td><code>pg<\/code><\/td><td>Yes<\/td><td>PostgreSQL backend<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Terraform uses backends to determine how the state is loaded and how an operation such as <code>apply<\/code> is executed. The backend configuration can control where the state is stored and how the operations are executed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s a list of commonly used Terraform backends:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Local<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Stores state on the local filesystem.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Remote<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Uses the Terraform Cloud to store state and optionally execute operations.<\/li>\n\n\n\n<li>It&#8217;s the default backend for Terraform Cloud workspaces.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Consul<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Stores the state in Consul&#8217;s key\/value store.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AzureRM<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Stores the state in an Azure Storage Blob.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>S3<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Stores state in an Amazon S3 bucket.<\/li>\n\n\n\n<li>It can use DynamoDB for state locking and consistency.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Google Cloud Storage (GCS)<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Stores state in a Google Cloud Storage bucket.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Swift<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Stores state in OpenStack Swift.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Artifactory<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Stores state in JFrog Artifactory.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Etcd V2 &amp; V3<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Store the state in Etcd&#8217;s key\/value store.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Manta<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stores the state in Joyent&#8217;s Manta service.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n\n\n\n<ol start=\"11\" class=\"wp-block-list\">\n<li><strong>OSS<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stores state in Alibaba Cloud Object Storage Service.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n\n\n\n<ol start=\"12\" class=\"wp-block-list\">\n<li><strong>Pg<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stores state within a configured PostgreSQL database.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n\n\n\n<ol start=\"13\" class=\"wp-block-list\">\n<li><strong>Kubernetes<\/strong>:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stores state within a Kubernetes Secret.<\/li>\n\n\n\n<li>Executes operations locally.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">terraform {\n  backend <span class=\"hljs-string\">\"s3\"<\/span> {\n    bucket = <span class=\"hljs-string\">\"your-bucket-name\"<\/span>\n    key    = <span class=\"hljs-string\">\"path\/to\/terraform.tfstate\"<\/span>\n    region = <span class=\"hljs-string\">\"your-aws-region\"<\/span>\n    access_key = <span class=\"hljs-string\">\"your-access-key\"<\/span>\n    secret_key = <span class=\"hljs-string\">\"your-secret-key\"<\/span>\n  }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Initialize the backend &#8211; run the <code>terraform init<\/code> command to initialize the backend configuration and create the state file in the S3 bucket.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">terraform {\n  required_providers {\n    aws = {\n      source  = <span class=\"hljs-string\">\"hashicorp\/aws\"<\/span>\n      version = <span class=\"hljs-string\">\"~&gt; 4.0\"<\/span>\n    }\n  }\n  backend <span class=\"hljs-string\">\"s3\"<\/span> {\n    bucket = <span class=\"hljs-string\">\"art54654654546546456\"<\/span>\n    key    = <span class=\"hljs-string\">\"aug\"<\/span>\n    region = <span class=\"hljs-string\">\"ap-south-1\"<\/span>\n\taccess_key = <span class=\"hljs-string\">\"\"<\/span>\n    secret_key = <span class=\"hljs-string\">\"\"<\/span>\n  }\n}\n\n\n<span class=\"hljs-comment\"># Configure the AWS Provider<\/span>\nprovider <span class=\"hljs-string\">\"aws\"<\/span> {\n  region = <span class=\"hljs-string\">\"ap-south-1\"<\/span>\n  access_key = <span class=\"hljs-string\">\"\"<\/span>\n  secret_key = <span class=\"hljs-string\">\"\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Terraform Backend Credentail Pass Through Command line<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">$ terraform init -backend-config=&#8221;access_key=ASSSSSSSSSSSSSY&#8221; -backend-config=&#8221;secret_key=VddddddddddddddG&#8221; -reconfigure<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Setup Terraform Backend with Azure Blob Container?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"567\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-26-1024x567.png\" alt=\"\" class=\"wp-image-40896\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-26-1024x567.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-26-300x166.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-26-768x425.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/10\/image-26.png 1438w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">terraform {\n  required_providers {\n    azurerm = {\n      source = <span class=\"hljs-string\">\"hashicorp\/azurerm\"<\/span>\n      version = <span class=\"hljs-string\">\"3.75.0\"<\/span>\n    }\n\taws = {\n      source = <span class=\"hljs-string\">\"hashicorp\/aws\"<\/span>\n      version = <span class=\"hljs-string\">\"5.20.0\"<\/span>\n    }\n\tgithub = {\n      source = <span class=\"hljs-string\">\"integrations\/github\"<\/span>\n      version = <span class=\"hljs-string\">\"5.39.0\"<\/span>\n    }\n  }\n  backend <span class=\"hljs-string\">\"azurerm\"<\/span> {\n    resource_group_name  = <span class=\"hljs-string\">\"eksuw01-rg\"<\/span>\n    storage_account_name = <span class=\"hljs-string\">\"eksuw01sa\"<\/span>\n    container_name       = <span class=\"hljs-string\">\"rajesh\"<\/span>\n    key                  = <span class=\"hljs-string\">\"prod.terraform.tfstate\"<\/span>\n\tsubscription_id = <span class=\"hljs-string\">\"b3dbe884-c3dc\"<\/span>\n    client_id       = <span class=\"hljs-string\">\"6046fe74-dfd2-4\"<\/span>\n    client_secret   = <span class=\"hljs-string\">\"3XJ8Q~uvlwVL\"<\/span>\n    tenant_id       = <span class=\"hljs-string\">\"f34c8fc4-16b\"<\/span>\n  }\n}\nprovider <span class=\"hljs-string\">\"azurerm\"<\/span> {\n  features {}\n  subscription_id = <span class=\"hljs-string\">\"b3dbe884c\"<\/span>\n  client_id       = <span class=\"hljs-string\">\"6046fe74-d\"<\/span>\n  client_secret   = <span class=\"hljs-string\">\"3XJ8Q~uvlwV\"<\/span>\n  tenant_id       = <span class=\"hljs-string\">\"f34c8fc4-1\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># aws-main.tf<\/span>\n\nterraform {\n  required_providers {\n    aws = {\n      source  = <span class=\"hljs-string\">\"hashicorp\/aws\"<\/span>\n      version = <span class=\"hljs-string\">\"~&gt; 5.0\"<\/span>\n    }\n  }\n\n  backend <span class=\"hljs-string\">\"s3\"<\/span> {\n    bucket         = <span class=\"hljs-string\">\"my-terraform-state-bucket\"<\/span>\n    key            = <span class=\"hljs-string\">\"aws\/lab\/terraform.tfstate\"<\/span>\n    region         = <span class=\"hljs-string\">\"ap-south-1\"<\/span>\n    dynamodb_table = <span class=\"hljs-string\">\"terraform-locks\"<\/span>\n    encrypt        = <span class=\"hljs-keyword\">true<\/span>\n  }\n}\n\nprovider <span class=\"hljs-string\">\"aws\"<\/span> {\n  region = <span class=\"hljs-string\">\"ap-south-1\"<\/span>\n}\n\nresource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"demo_vm\"<\/span> {\n  ami           = <span class=\"hljs-string\">\"ami-0f58b397bc5c1f2e8\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n\n  tags = {\n    Name = <span class=\"hljs-string\">\"aws-demo-vm\"<\/span>\n  }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># gcp-main.tf<\/span>\n\nterraform {\n  required_providers {\n    google = {\n      source  = <span class=\"hljs-string\">\"hashicorp\/google\"<\/span>\n      version = <span class=\"hljs-string\">\"~&gt; 5.0\"<\/span>\n    }\n  }\n\n  backend <span class=\"hljs-string\">\"gcs\"<\/span> {\n    bucket = <span class=\"hljs-string\">\"my-gcp-terraform-state-bucket\"<\/span>\n    prefix = <span class=\"hljs-string\">\"gcp\/lab\"<\/span>\n  }\n}\n\nprovider <span class=\"hljs-string\">\"google\"<\/span> {\n  project = <span class=\"hljs-string\">\"my-gcp-project-id\"<\/span>\n  region  = <span class=\"hljs-string\">\"asia-south1\"<\/span>\n  zone    = <span class=\"hljs-string\">\"asia-south1-a\"<\/span>\n}\n\nresource <span class=\"hljs-string\">\"google_compute_instance\"<\/span> <span class=\"hljs-string\">\"demo_vm\"<\/span> {\n  name         = <span class=\"hljs-string\">\"gcp-demo-vm\"<\/span>\n  machine_type = <span class=\"hljs-string\">\"e2-micro\"<\/span>\n  zone         = <span class=\"hljs-string\">\"asia-south1-a\"<\/span>\n\n  boot_disk {\n    initialize_params {\n      image = <span class=\"hljs-string\">\"debian-cloud\/debian-12\"<\/span>\n    }\n  }\n\n  network_interface {\n    network = <span class=\"hljs-string\">\"default\"<\/span>\n  }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># azure-main.tf<\/span>\n\nterraform {\n  required_providers {\n    azurerm = {\n      source  = <span class=\"hljs-string\">\"hashicorp\/azurerm\"<\/span>\n      version = <span class=\"hljs-string\">\"~&gt; 4.0\"<\/span>\n    }\n  }\n\n  backend <span class=\"hljs-string\">\"azurerm\"<\/span> {\n    resource_group_name  = <span class=\"hljs-string\">\"rg-terraform-state\"<\/span>\n    storage_account_name = <span class=\"hljs-string\">\"mystatestorageacct\"<\/span>\n    container_name       = <span class=\"hljs-string\">\"tfstate\"<\/span>\n    key                  = <span class=\"hljs-string\">\"azure\/lab\/terraform.tfstate\"<\/span>\n  }\n}\n\nprovider <span class=\"hljs-string\">\"azurerm\"<\/span> {\n  features {}\n}\n\nresource <span class=\"hljs-string\">\"azurerm_resource_group\"<\/span> <span class=\"hljs-string\">\"demo_rg\"<\/span> {\n  name     = <span class=\"hljs-string\">\"rg-demo-vm\"<\/span>\n  location = <span class=\"hljs-string\">\"East US\"<\/span>\n}\n\nresource <span class=\"hljs-string\">\"azurerm_virtual_network\"<\/span> <span class=\"hljs-string\">\"demo_vnet\"<\/span> {\n  name                = <span class=\"hljs-string\">\"demo-vnet\"<\/span>\n  address_space       = &#91;<span class=\"hljs-string\">\"10.0.0.0\/16\"<\/span>]\n  location            = azurerm_resource_group.demo_rg.location\n  resource_group_name = azurerm_resource_group.demo_rg.name\n}\n\nresource <span class=\"hljs-string\">\"azurerm_subnet\"<\/span> <span class=\"hljs-string\">\"demo_subnet\"<\/span> {\n  name                 = <span class=\"hljs-string\">\"demo-subnet\"<\/span>\n  resource_group_name  = azurerm_resource_group.demo_rg.name\n  virtual_network_name = azurerm_virtual_network.demo_vnet.name\n  address_prefixes     = &#91;<span class=\"hljs-string\">\"10.0.1.0\/24\"<\/span>]\n}\n\nresource <span class=\"hljs-string\">\"azurerm_network_interface\"<\/span> <span class=\"hljs-string\">\"demo_nic\"<\/span> {\n  name                = <span class=\"hljs-string\">\"demo-nic\"<\/span>\n  location            = azurerm_resource_group.demo_rg.location\n  resource_group_name = azurerm_resource_group.demo_rg.name\n\n  ip_configuration {\n    name                          = <span class=\"hljs-string\">\"internal\"<\/span>\n    subnet_id                     = azurerm_subnet.demo_subnet.id\n    private_ip_address_allocation = <span class=\"hljs-string\">\"Dynamic\"<\/span>\n  }\n}\n\nresource <span class=\"hljs-string\">\"azurerm_linux_virtual_machine\"<\/span> <span class=\"hljs-string\">\"demo_vm\"<\/span> {\n  name                = <span class=\"hljs-string\">\"azure-demo-vm\"<\/span>\n  resource_group_name = azurerm_resource_group.demo_rg.name\n  location            = azurerm_resource_group.demo_rg.location\n  size                = <span class=\"hljs-string\">\"Standard_B1s\"<\/span>\n  admin_username      = <span class=\"hljs-string\">\"azureuser\"<\/span>\n\n  network_interface_ids = &#91;\n    azurerm_network_interface.demo_nic.id\n  ]\n\n  admin_ssh_key {\n    username   = <span class=\"hljs-string\">\"azureuser\"<\/span>\n    public_key = file(<span class=\"hljs-string\">\"~\/.ssh\/id_rsa.pub\"<\/span>)\n  }\n\n  os_disk {\n    caching              = <span class=\"hljs-string\">\"ReadWrite\"<\/span>\n    storage_account_type = <span class=\"hljs-string\">\"Standard_LRS\"<\/span>\n  }\n\n  source_image_reference {\n    publisher = <span class=\"hljs-string\">\"Canonical\"<\/span>\n    offer     = <span class=\"hljs-string\">\"ubuntu-24_04-lts\"<\/span>\n    sku       = <span class=\"hljs-string\">\"server\"<\/span>\n    version   = <span class=\"hljs-string\">\"latest\"<\/span>\n  }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>","protected":false},"excerpt":{"rendered":"<p>Terraform is a popular open-source infrastructure as code tool used to create and manage infrastructure resources. The state of the infrastructure resources managed by Terraform is stored&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-32467","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/32467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=32467"}],"version-history":[{"count":7,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/32467\/revisions"}],"predecessor-version":[{"id":75338,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/32467\/revisions\/75338"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=32467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=32467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=32467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}