Provision dịch vụ RDS với Terraform

Cập nhật lần cuối: 2024/08/30 08:48:57

ĐIỀU KIỆN

  • Cài đặt phiên bản Terraform từ v1.8 trở lên.
  • Cài đặt Go phiên bản từ 1.22 trở lên ( để xây dựng plugin )
  • Có thông tin về API key của tài khoản trên CMC Cloud ( cần báo admin của CMC Cloud active API key)

 

 

CÁC BƯỚC THỰC HIỆN

CMC cung cấp dịch vụ Relational Database Service (RDS),là dịch vụ cơ sở dữ liệu cấu trúc và có quan hệ, cho phép người dùng sử dụng và truy cập cơ sở dữ liệu mà không cần cài đặt, vận hành, bảo trì phần mềm.

 

Hiện tại dịch vụ CMC RDS đang hỗ trợ cho 3 Database Engine : MySQL, PostgreSQL và MariaDB.

Dưới đây là hướng dẫn khởi tạo dẫn khởi tạo Database Instances với 2 database engine : MySQL và PostgreSQL bằng Terraform

 


--MySQL--

Hướng dẫn khởi tạo dẫn khởi tạo Database Instances với database engine MySQL bằng Terraform

 

Bước 1 : Tạo file mysql.tf với các thông tin sau

data "cmccloudv2_flavor_dbaas" "flavor_dbaas" {

     # flavor_id = "d92cc916-a4cb-4ebf-ae81-801e963465ea"

     name = "c6.large.2.db"  # chọn flavor muốn khởi tạo 

     #cpu = 2 

     #ram = 4

     #disk = 100 # dung lượng system disk được đặt cố định là 100GB

}

 

data "cmccloudv2_vpc" "vpc1" {

    name = "vpc_terraform" # lựa chọn VPC để triển khai Database Instance

}

 

data "cmccloudv2_subnet" "subnet1" {

    vpc_id = "${data.cmccloudv2_vpc.vpc1.id}" 

    cidr = "192.168.1.0/24" #lựa chọn Subnet để triển khai Database Instance

}

 

resource "cmccloudv2_database_instance" "mysql_instance_terraform" {

    name = "database_terraform1" # đặt tên cho Database Instance

    flavor_id = "${data.cmccloudv2_flavor_dbaas.flavor_dbaas.id}"

    zone = "AZ1" # lựa chọn AZ triển khai: AZ1, AZ2 hoặc AZ3

    source_type = "new"

    # source_id = ""  

    datastore_type = "mysql"

    datastore_version = "8.0.28" # lựa chọn version của mysql, hiện tại đang hỗ trợ các version : 5.7.29, 5.7.37 và 8.0.28

    volume_type = "database"  # volume type mặc định của database với IOPS là 60000

    volume_size = 20 # chọn dung lượng Database Volume, đơn vị GB

    subnets {

        subnet_id = "${data.cmccloudv2_subnet.subnet1.id}"

    }

    enable_public_ip = false # hiện tại RDS chưa hỗ trợ gắn IP public cho Database Instance

    is_public = false 

    # allowed_cidrs = "" # nếu không được cung cấp, người dùng này sẽ được phép kết nối từ bất cứ đâu.

    # allowed_host = "" # nếu không được cung cấp, người dùng này sẽ được phép kết nối từ bất cứ đâu.

    admin_user = "xxxx" #chọn tên user muốn khởi tạo

    admin_password = "xxxxxxxxx" # Tối thiểu 8 ký tự , có chữ hoa và ký tự đặc biệt

    billing_mode = "monthly" #lựa chọn chế độ thanh toán : monthly hoặc hourly

 

Bước 2 : Kiểm tra lại thông tin file mysql.tfterraform plan ( để kiểm tra lại resource muốn tạo ) . Khởi chạy terraform apply để khởi tạo tài nguyên.

 

Bước 3 : Kiểm tra tài nguyên đã tạo 

  • Kiểm tra với tài nguyên đã tạo với Terraform : 

Sử dụng câu lệnh terraform state show “ tên resource” để hiển thị chi tiết thông tin về Database Instance đã tạo

ex: terraform state show cmccloudv2_database_instance.msql_instance_terraform

 

  • Kiểm tra với tài nguyên đã tạo trên Portal: 

Truy cập Portalv2 , trên thanh công cụ , chọn dịch vụ Database Instances. Tại đây sẽ hiển thị danh sách các Database Instance của bạn. Click vào Database Instances với engine Mysql đã tạo để hiển thị thông tin chi tiết 

 


--PostgreSQL--

Hướng dẫn khởi tạo dẫn khởi tạo Database Instances với database engine PostgreSQL bằng Terraform

 

Bước 1 : Tạo file pssql.tf với các thông tin sau

data "cmccloudv2_flavor_dbaas" "flavor_dbaas" {

     # flavor_id = "d92cc916-a4cb-4ebf-ae81-801e963465ea"

     name = "c6.large.2.db" 

     #cpu = 2

     #ram = 4

     #disk = 100 # dung lượng system disk của database instance được đặt cố định là 100GB

}

 

data "cmccloudv2_vpc" "vpc1" {

    name = "vpc_terraform" # chọn dải VPC sẽ triển khai 

}

 

data "cmccloudv2_subnet" "subnet1" {

    vpc_id = "${data.cmccloudv2_vpc.vpc1.id}"

    cidr = "192.168.1.0/24" # chọn subnet sẽ triển khai 

}

 

resource "cmccloudv2_database_instance" "psql_instance_terraform" {

    name = "psql_terraform" # đặt tên cho database instance

    flavor_id = "${data.cmccloudv2_flavor_dbaas.flavor_dbaas.id}"

    zone = "AZ1" # lựa chọn AZ sẽ triển khai : AZ1, AZ2 hoặc AZ3

    source_type = "new" 

    # source_id = ""

    datastore_type = "postgresql" # chọn database engine

    datastore_version = "14.9" # lựa chọn version của postgresql, hiện tại đang hỗ trợ các version : 13.12, 14.9 và 12.4

    volume_type = "database" # volume type mặc định của database với IOPS là 60000

    volume_size = 100 # lựa chọn dung lượng database volume 

    subnets {

        subnet_id = "${data.cmccloudv2_subnet.subnet1.id}"

    }

    enable_public_ip = false # hiện tại , database instance chưa hỗ trợ tính năng gắn IP Public trựa tiếp

    is_public = false

    # allowed_cidrs = "" #Nếu không được cung cấp, người dùng này sẽ được phép kết nối từ bất cứ đâu.

    # allowed_host = "" #Nếu không được cung cấp, người dùng này sẽ được phép kết nối từ bất cứ đâu.

    admin_user = "xxxx" # nhập tên user

    admin_password = "xxxxxxxxx" # nhập mật khẩu , tối thiểu 8 ký tự , có chữ hoa và ký tự đặc biệt

    billing_mode = "monthly" #chọn chế độ thanh toán : monthly hoặc hourly

    replicate_count = 1

}

 

Bước 2 : Kiểm tra lại thông tin file pssql.tfterraform plan ( để kiểm tra lại resource muốn tạo ) . Khởi chạy terraform apply để khởi tạo tài nguyên.

 

Bước 3 : Kiểm tra tài nguyên đã tạo 

  • Kiểm tra với tài nguyên đã tạo với Terraform : 

Sử dụng câu lệnh terraform state show “ tên resource” để hiển thị chi tiết thông tin về Database Instance đã tạo

ex: terraform state show cmccloudv2_database_instance.pssql_instance_terraform

 

  • Kiểm tra với tài nguyên đã tạo trên Portal: 

Truy cập Portalv2 , trên thanh công cụ , chọn dịch vụ Database Instances. Tại đây sẽ hiển thị danh sách các Database Instance của bạn. Click vào Database Instances với engine PostgreSQL đã tạo để hiển thị thông tin chi tiết 

    back to top

    logo

    © 2023, CMC Cloud. All rights reserved.

    Business Registration Certificate

    Giấy ĐKKD: 0102900049. Nơi cấp: Sở Kế hoạch & Đầu tư Thành phố Hà Nội

    Chịu trách nhiệm nội dung: Đặng Tùng Sơn