Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Hashicorp Terraform adalah alat Infrastructure as code (IaC) yang memungkinkan Anda menyediakan dan mengelola infrastruktur cloud. Terraform menyediakan plugin yang disebut
penyedia yang memungkinkan Anda berinteraksi dengan penyedia cloud dan API
lainnya. Anda dapat menggunakan Penyedia Terraform untuk Google Cloud
(PenyediaGoogle Cloud ) untuk menyediakan dan mengelola infrastruktur Google Cloud.
Manfaat menggunakan Terraform
Bagian ini menjelaskan beberapa manfaat penggunaan Terraform untuk menyediakan dan
mengelola infrastruktur Google Cloud :
Terraform adalah alat yang paling umum digunakan untuk menyediakan dan mengotomatiskan
infrastrukturGoogle Cloud . Anda dapat menggunakan penyedia
Google Cloud
untuk mengonfigurasi dan mengelola semua resource Google Cloud menggunakan
alat dan sintaksis deklaratif yang sama.
Terraform memungkinkan Anda menentukan status akhir yang diinginkan untuk infrastruktur Anda.
Selanjutnya, Anda dapat men-deploy konfigurasi yang sama beberapa kali untuk membuat
lingkungan pengembangan, pengujian, dan produksi yang dapat direproduksi.
Terraform memungkinkan Anda membuat rencana eksekusi yang menunjukkan tindakan yang akan dilakukan Terraform saat Anda menerapkan konfigurasi. Dengan begitu, Anda tidak akan terkejut saat
mengubah infrastruktur melalui Terraform.
Terraform memungkinkan Anda memaketkan dan menggunakan kembali kode umum dalam bentuk
modul.
Modul menampilkan antarmuka standar untuk membuat resource cloud. Hal ini
menyederhanakan project dengan meningkatkan keterbacaan dan memungkinkan tim mengatur
infrastruktur dalam blok yang dapat dibaca. Selain itu, Google Cloud
memublikasikan sejumlah modul yang dapat di-deploy dengan opini sebagai
blueprint dan
contoh memulai sebagai Solusi
Praktis.
Terraform mencatat status infrastruktur Anda saat ini dan memungkinkan Anda mengelola status secara efektif. File status Terraform melacak semua
resource dalam deployment.
Menggunakan Terraform
Terraform memiliki sintaksis deklaratif dan berorientasi konfigurasi, yang dapat Anda gunakan untuk menulis infrastruktur yang ingin Anda sediakan. Dengan sintaksis ini, Anda akan menentukan status akhir
yang diinginkan untuk infrastruktur dalam file konfigurasi Terraform. Kemudian, Anda akan menggunakan Terraform CLI untuk menyediakan infrastruktur berdasarkan file konfigurasi.
Langkah-langkah berikut menjelaskan cara kerja Terraform:
Anda mendeskripsikan Google Cloud infrastruktur yang ingin disediakan dalam file konfigurasi Terraform. Anda tidak perlu membuat kode
yang menjelaskan cara menyediakan konfigurasi ini.
Anda menjalankan perintah terraform plan, yang mengevaluasi konfigurasi dan membuat rencana eksekusi. Anda dapat meninjau rencana dan melakukan perubahan
sesuai kebutuhan.
Kemudian, Anda menjalankan perintah terraform apply, yang melakukan tindakan
berikut:
Layanan ini menyediakan infrastruktur Anda berdasarkan rencana eksekusi dengan memanggil
API Google Cloud yang sesuai di latar belakang.
Tindakan ini akan membuat file status Terraform, yang merupakan pemetaan resource dalam file konfigurasi Anda ke resource dalam infrastruktur dunia nyata dalam format JSON. Terraform menggunakan file ini untuk mengetahui status terbaru infrastruktur Anda, dan untuk menentukan kapan harus membuat, memperbarui, dan menghancurkan resource.
Selanjutnya, saat Anda menjalankan terraform apply, Terraform akan menggunakan pemetaan dalam file status untuk membandingkan infrastruktur yang ada dengan kode, dan melakukan update sesuai kebutuhan:
Jika objek resource yang ditentukan dalam file konfigurasi tidak ada dalam file status, Terraform akan membuatnya.
Jika objek resource ada dalam file status, tetapi memiliki konfigurasi yang berbeda dari file konfigurasi Anda, Terraform akan memperbarui resource agar cocok dengan file konfigurasi Anda.
Jika objek resource dalam file status cocok dengan file konfigurasi Anda, Terraform tidak akan mengubah resource.
Google Cloud penyedia
Ada dua penyedia yang memungkinkan Anda menyediakan dan mengelola infrastruktur Google Cloud:
google: Gunakan penyedia ini untuk menyediakan dan mengelola Google Cloud API.
google-beta: Gunakan penyedia ini untuk menyediakan dan mengelola Google Cloud
API beta.
Penyedia google dan google-beta dikembangkan menggunakan alat yang disebut
Magic Modules. Modul Ajaib memungkinkan kontributor membuat perubahan pada
satu codebase dan mengembangkan penyedia google dan google-beta
secara bersamaan.
Anda dapat berkontribusi pada penyedia Google Cloud menggunakan Magic Modules dengan mengikuti petunjuk dalam panduan kontribusi Magic Modules.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-02 UTC."],[[["\u003cp\u003eTerraform is an Infrastructure as Code (IaC) tool for provisioning and managing cloud infrastructure, particularly effective for Google Cloud through its dedicated providers.\u003c/p\u003e\n"],["\u003cp\u003eUsing Terraform on Google Cloud offers benefits such as creating reproducible environments, generating execution plans, reusing code through modules, and effectively managing the state of your infrastructure.\u003c/p\u003e\n"],["\u003cp\u003eTerraform utilizes a declarative syntax where you define your desired infrastructure end-state, and it uses its CLI to provision and manage your configuration accordingly.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eterraform apply\u003c/code\u003e command provisions infrastructure based on an execution plan, interfacing with Google Cloud APIs and maintaining a state file to track resource changes.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egoogle\u003c/code\u003e and \u003ccode\u003egoogle-beta\u003c/code\u003e providers are used to provision and manage both general and beta Google Cloud APIs, respectively, and are developed using the Magic Modules tool.\u003c/p\u003e\n"]]],[],null,["# Overview of Terraform on Google Cloud\n\nHashicorp Terraform is an Infrastructure as code (IaC) tool that lets you\nprovision and manage cloud infrastructure. Terraform provides plugins called\n*providers* that lets you interact with cloud providers and other\nAPIs. You can use the *Terraform provider for Google Cloud*\n(*Google Cloud provider*) to provision and manage Google Cloud\ninfrastructure.\n\nBenefits of using Terraform\n---------------------------\n\nThis section explains some of the benefits of using Terraform to provision and\nmanage Google Cloud infrastructure:\n\n- Terraform is the most commonly used tool to provision and automate Google Cloud infrastructure. You can use the [Google Cloud\n provider](https://registry.terraform.io/providers/hashicorp/google/latest/docs) to configure and manage all Google Cloud resources using the same declarative syntax and tooling.\n- Terraform lets you specify your preferred end state for your infrastructure. You can then deploy the same configuration multiple times to create reproducible development, test, and production environments.\n- Terraform lets you generate an execution plan that shows what Terraform will do when you apply your configuration. This lets you avoid any surprises when you modify your infrastructure through Terraform.\n- Terraform lets you package and reuse common code in the form of [modules](https://registry.terraform.io/namespaces/terraform-google-modules). Modules present standard interfaces for creating cloud resources. They simplify projects by increasing readability and allow teams to organize infrastructure in readable blocks. Additionally, Google Cloud publishes a number of opinionated deployable modules as [blueprints](/docs/terraform/blueprints/terraform-blueprints) and getting-started examples as [Jump Start\n Solutions](/solutions?jump-start-solutions#section-3).\n- Terraform records the current state of your infrastructure and lets you manage state effectively. The Terraform state file keeps track of all resources in a deployment.\n\nUsing Terraform\n---------------\n\nTerraform has a declarative and configuration-oriented syntax, which you can use\nto [author the infrastructure](https://developer.hashicorp.com/terraform/language)\nthat you want to provision. Using this syntax, you'll define your preferred\nend-state for your infrastructure in a *Terraform configuration file* . You'll then\nuse the [Terraform CLI](/docs/terraform/basic-commands) to provision\ninfrastructure based on the configuration file.\n\nThe following steps explain how Terraform works:\n\n1. You describe the Google Cloud infrastructure you want to provision in a Terraform configuration file. You don't need to author code describing *how* to provision this configuration.\n2. You run the `terraform plan` command, which evaluates your configuration and generates an execution plan. You can review the plan and make changes as needed.\n3. Then, you run the `terraform apply` command, which performs the following actions:\n - It provisions your infrastructure based on your execution plan by invoking the corresponding Google Cloud APIs in the background.\n - It creates a *Terraform state file*, which is a JSON formatted mapping of resources in your configuration file to the resources in the real world infrastructure. Terraform uses this file to know the latest state of your infrastructure, and to determine when to create, update, and destroy resources.\n4. Subsequently, when you run `terraform apply`, Terraform uses the mapping in the state file to compare the existing infrastructure to the code, and make updates as necessary:\n - If a resource object defined in the configuration file does not exist in the state file, Terraform creates it.\n - If a resource object exists in the state file, but has a different configuration from your configuration file, Terraform updates the resource to match your configuration file.\n - If a resource object in the state file matches your configuration file, Terraform leaves the resource unchanged.\n\nGoogle Cloud providers\n----------------------\n\nThere are two providers that let you provision and manage Google Cloud\ninfrastructure:\n\n- `google`: Use this provider to provision and manage Google Cloud APIs.\n- `google-beta`: Use this provider to provision and manage Google Cloud beta APIs.\n\nFor instructions on using these providers, see the\n[Google Cloud provider configuration reference](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference).\n\n`google` and `google-beta` providers are developed using a tool called\n*Magic Modules* . Magic Modules allows contributors to make changes against a\nsingle codebase and develop both `google` and `google-beta` providers\nsimultaneously.\n\nYou can contribute to the Google Cloud providers using Magic Modules\nby following the instructions in the\n[Magic Modules contribution guide](https://googlecloudplatform.github.io/magic-modules/get-started/generate-providers/).\n\nWhat's next\n-----------\n\n- Learn how to [create a basic web server on Compute Engine using Terraform](/docs/terraform/get-started-with-terraform)\n- Learn how to [store Terraform state in a Cloud Storage bucket](/docs/terraform/resource-management/store-state)\n- Look through the various [Terraform for Google Cloud samples](/docs/samples?language=terraform)\n- Look through the [Terraform modules and blueprints for Google Cloud](/docs/terraform/blueprints/terraform-blueprints)"]]