全部产品
Search
文档中心

Elasticsearch:Gunakan Terraform untuk mengelola cluster Elasticsearch Alibaba Cloud

更新时间:Jul 02, 2025

Alibaba Cloud Elasticsearch terhubung dengan Terraform. Anda dapat menggunakan Terraform untuk mengelola cluster Elasticsearch Alibaba Cloud. Topik ini menjelaskan cara menggunakan Terraform untuk membuat cluster Elasticsearch Alibaba Cloud.

Catatan

Anda dapat menjalankan kode contoh dalam topik ini hanya dengan beberapa klik. Untuk informasi lebih lanjut, kunjungi Terraform Explorer.

Prasyarat

  • Kami merekomendasikan penggunaan pengguna RAM dengan izin minimum yang diperlukan untuk melakukan operasi dalam topik ini. Ini meminimalkan risiko kebocoran pasangan AccessKey akun Alibaba Cloud Anda. Untuk informasi tentang cara melampirkan kebijakan dengan izin minimum yang diperlukan ke pengguna RAM, lihat Buat Pengguna RAM dan Berikan Izin kepada Pengguna RAM. Kebijakan berikut digunakan dalam contoh ini:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "vpc:CreateVpc",
            "vpc:DeleteVpc",
            "vpc:CreateVSwitch",
            "vpc:DeleteVSwitch",
            "ecs:CreateSecurityGroup",
            "ecs:ModifySecurityGroupPolicy",
            "ecs:DescribeSecurityGroups",
            "ecs:ListTagResources",
            "ecs:DeleteSecurityGroup",
            "ecs:DescribeSecurityGroupAttribute"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "vpc:DescribeVpcAttribute",
            "vpc:DescribeRouteTableList",
            "vpc:DescribeVSwitchAttributes"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "elasticsearch:CreateInstance",
            "elasticsearch:DescribeInstance",
            "elasticsearch:ListAckClusters",
            "elasticsearch:UpdateDescription",
            "elasticsearch:ListInstance",
            "elasticsearch:ListAvailableEsInstanceIds"
          ],
          "Resource": "*"
        }
      ]
    }
  • Lingkungan runtime untuk Terraform disiapkan dengan salah satu metode berikut:

    • Terraform Explorer: Alibaba Cloud menyediakan Terraform Explorer, lingkungan runtime online untuk Terraform. Anda dapat menggunakan Terraform setelah masuk ke Terraform Explorer tanpa perlu menginstal Terraform. Metode ini cocok untuk skenario di mana Anda ingin menggunakan dan men-debug Terraform dengan cepat dan mudah tanpa biaya tambahan.

    • Cloud Shell: Terraform sudah diinstal sebelumnya di Cloud Shell dan kredensial identitas telah dikonfigurasi. Anda dapat langsung menjalankan perintah Terraform di Cloud Shell. Metode ini cocok untuk skenario di mana Anda ingin menggunakan dan men-debug Terraform dengan cepat dan mudah dengan biaya rendah.

    • Instal dan Konfigurasikan Terraform di Mesin Lokal Anda: Metode ini cocok untuk skenario di mana kondisi jaringan buruk atau lingkungan pengembangan kustom diperlukan.

Catatan

Dalam contoh ini, biaya mungkin timbul untuk sumber daya tertentu. Lepaskan atau berhenti berlangganan dari sumber daya tersebut ketika Anda tidak lagi memerlukannya.

Sumber daya yang diperlukan

Buat cluster Elasticsearch

  1. Buat direktori kerja dan file konfigurasi bernama main.tf di direktori tersebut. Kode berikut membuat cluster Elasticsearch dan VPC, grup keamanan, serta vSwitch terkait. Salin kode berikut ke file konfigurasi main.tf:

    variable "region" {
      default = "cn-qingdao"
    }
    
    data "alicloud_zones" "default" {
      available_resource_creation = "VSwitch"
      available_disk_category     = "cloud_ssd"
    }
    
    variable "vpc_cidr_block" {
      default = "172.16.0.0/16"
    }
    
    variable "vsw_cidr_block" {
      default = "172.16.0.0/24"
    }
    
    variable "node_spec" {
      default = "elasticsearch.sn2ne.large"
    }
    provider "alicloud" {
      region = var.region
    }
    
    resource "random_integer" "default" {
      min = 10000
      max = 99999
    }
    
    resource "alicloud_vpc" "vpc" {
      vpc_name   = "vpc-test_${random_integer.default.result}"
      cidr_block = var.vpc_cidr_block
    }
    
    resource "alicloud_security_group" "group" {
      name   = "test_${random_integer.default.result}"
      vpc_id = alicloud_vpc.vpc.id
    }
    
    resource "alicloud_vswitch" "vswitch" {
      vpc_id       = alicloud_vpc.vpc.id
      cidr_block   = var.vsw_cidr_block
      zone_id      = data.alicloud_zones.default.zones[0].id
      vswitch_name = "vswitch-test-${random_integer.default.result}"
    }
    
    resource "alicloud_elasticsearch_instance" "instance" {
      description           = "test_Instance"
      instance_charge_type  = "PostPaid"
      data_node_amount      = "2"
      data_node_spec        = var.node_spec
      data_node_disk_size   = "20"
      data_node_disk_type   = "cloud_ssd"
      vswitch_id            = alicloud_vswitch.vswitch.id
      password              = "es_password_01"
      version               = "6.7_with_X-Pack"
      master_node_spec      = var.node_spec
      zone_count            = "1"
      master_node_disk_type = "cloud_ssd"
      kibana_node_spec      = var.node_spec
      data_node_disk_performance_level = "PL1"
      tags = {
        Created = "TF",
        For     = "example",
      }
    }
  2. Jalankan perintah berikut untuk menginisialisasi lingkungan runtime Terraform:

    terraform init

    Jika informasi berikut dikembalikan, Terraform telah diinisialisasi:

    Terraform has been successfully initialized!
    
    You may now begin working with Terraform. Try running "terraform plan" to see
    any changes that are required for your infrastructure. All Terraform commands
    should now work.
    
    If you ever set or change modules or backend configuration for Terraform,
    rerun this command to reinitialize your working directory. If you forget, other
    commands will detect it and remind you to do so if necessary.
  3. Jalankan perintah berikut untuk membuat cluster Elasticsearch:

    terraform apply

    Selama eksekusi, masukkan yes saat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai. Jika informasi berikut dikembalikan, cluster telah dibuat.

    You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value: yes
    
    
    Apply complete!  Resources: 5 added, 0 changed, 0 destroyed.
  4. Verifikasi hasilnya.

    Jalankan perintah terraform show

    Jalankan perintah berikut di direktori kerja untuk menanyakan detail cluster yang dibuat menggunakan Terraform:

    terraform show

    image

    Masuk ke konsol Elasticsearch

    Masuk ke konsol Elasticsearch dan lihat cluster yang telah dibuat.

    image

Lepaskan sumber daya

Jika Anda tidak lagi memerlukan sumber daya yang dibuat atau dikelola menggunakan Terraform, jalankan perintah berikut untuk melepaskan sumber daya. Untuk informasi lebih lanjut tentang perintah terraform destroy, lihat Perintah Umum.

terraform destroy

Contoh

Catatan

Anda dapat menjalankan kode contoh hanya dengan beberapa klik. Untuk informasi lebih lanjut, kunjungi Terraform Explorer.

Kode contoh

variable "region" {
  default = "cn-qingdao"
}

data "alicloud_zones" "default" {
  available_resource_creation = "VSwitch"
  available_disk_category     = "cloud_ssd"
}

variable "vpc_cidr_block" {
  default = "172.16.0.0/16"
}

variable "vsw_cidr_block" {
  default = "172.16.0.0/24"
}

variable "node_spec" {
  default = "elasticsearch.sn2ne.large"
}
provider "alicloud" {
  region = var.region
}

resource "random_integer" "default" {
  min = 10000
  max = 99999
}

resource "alicloud_vpc" "vpc" {
  vpc_name   = "vpc-test_${random_integer.default.result}"
  cidr_block = var.vpc_cidr_block
}

resource "alicloud_security_group" "group" {
  name   = "test_${random_integer.default.result}"
  vpc_id = alicloud_vpc.vpc.id
}

resource "alicloud_vswitch" "vswitch" {
  vpc_id       = alicloud_vpc.vpc.id
  cidr_block   = var.vsw_cidr_block
  zone_id      = data.alicloud_zones.default.zones[0].id
  vswitch_name = "vswitch-test-${random_integer.default.result}"
}

resource "alicloud_elasticsearch_instance" "instance" {
  description           = "test_Instance"
  instance_charge_type  = "PostPaid"
  data_node_amount      = "2"
  data_node_spec        = var.node_spec
  data_node_disk_size   = "20"
  data_node_disk_type   = "cloud_ssd"
  vswitch_id            = alicloud_vswitch.vswitch.id
  password              = "es_password_01"
  version               = "6.7_with_X-Pack"
  master_node_spec      = var.node_spec
  zone_count            = "1"
  master_node_disk_type = "cloud_ssd"
  kibana_node_spec      = var.node_spec
  data_node_disk_performance_level = "PL1"
  tags = {
    Created = "TF",
    For     = "example",
  }
}

Jika Anda ingin melihat contoh yang lebih lengkap, kunjungi direktori layanan terkait pada halaman Contoh Lebih Lengkap.