This topic describes how to create an ApsaraDB for RDS instance by using Terraform.
Prerequisites
Before you begin, ensure that you have completed the following operations:
Procedure
- Define resources such as the VPC, VSwitch, ApsaraDB for RDS instances, databases,
and accounts in the terraform.tf file as follows:
Note You must create an independent working directory for each Terraform project.
resource "alicloud_vpc" "main" {
name = "alicloud"
cidr_block = "10.1.0.0/21"
}
resource "alicloud_vswitch" "main" {
vpc_id = alicloud_vpc.main.id
cidr_block = "10.1.0.0/24"
availability_zone = "cn-hangzhou-b"
depends_on = [alicloud_vpc.main]
}
resource "alicloud_db_instance" "instance" {
engine = "MySQL"
engine_version = "5.6"
instance_type = "rds.mysql.t1.small"
instance_storage = "10"
vswitch_id = alicloud_vswitch.main.id
}
resource "alicloud_db_account" "account" {
instance_id = alicloud_db_instance.instance.id
name = "tf_account"
password = "! Test@123456"
}
resource "alicloud_db_database" "db" {
instance_id = alicloud_db_instance.instance.id
name = "tf_database"
}
resource "alicloud_db_account_privilege" "privilege" {
instance_id = alicloud_db_instance.instance.id
account_name = alicloud_db_account.account.name
db_names = [alicloud_db_database.db.name]
}
resource "alicloud_db_connection" "connection" {
instance_id = alicloud_db_instance.instance.id
connection_prefix = "tf-example"
}
- Run the terraform apply command to create resources. If log entries similar to the following ones are displayed,
the resources are created.
alicloud_vpc.main: Creating...
alicloud_vpc.main: Creation complete after 6s [id=vpc-bp1qdtiaztg1f9g5cqv3n]
alicloud_vswitch.main: Creating...
alicloud_vswitch.main: Creation complete after 5s [id=vsw-bp1i5dkhraoplr0pga7oy]
alicloud_db_instance.instance: Creating...
alicloud_db_instance.instance: Still creating... [10s elapsed]
alicloud_db_instance.instance: Still creating... [20s elapsed]
alicloud_db_instance.instance: Still creating... [30s elapsed]
alicloud_db_instance.instance: Still creating... [40s elapsed]
alicloud_db_instance.instance: Still creating... [50s elapsed]
...
alicloud_db_instance.instance: Still creating... [5m0s elapsed]
alicloud_db_instance.instance: Creation complete after 5m9s [id=rm-bp1mwp0hs49bgoizk]
alicloud_db_connection.connection: Creating...
alicloud_db_database.db: Creating...
alicloud_db_account.account: Creating...
alicloud_db_database.db: Creation complete after 0s [id=rm-bp1mwp0hs49bgoizk:tf_database]
alicloud_db_account.account: Creation complete after 2s [id=rm-bp1mwp0hs49bgoizk:tf_account]
alicloud_db_account_privilege.privilege: Creating...
alicloud_db_connection.connection: Still creating... [10s elapsed]
alicloud_db_account_privilege.privilege: Still creating... [10s elapsed]
alicloud_db_connection.connection: Still creating... [20s elapsed]
alicloud_db_account_privilege.privilege: Still creating... [20s elapsed]
alicloud_db_account_privilege.privilege: Creation complete after 22s [id=rm-bp1mwp0hs49bgoizk:tf_account:ReadOnly]
alicloud_db_connection.connection: Creation complete after 28s [id=rm-bp1mwp0hs49bgoizk:tf-example]
Apply complete! Resources: 7 added, 0 changed, 0 destroyed.