使用Terraform创建MySQL RDS数据库实例,并与MySQL Workbench连接
#database #mysql #rds #terraform

什么是Terraform?

  • 这是一种开源IAAC(基础架构作为代码)软件工具,您可以使用声明性配置语言示例中的提供商来定义和创建资源。
  • 使用Terraform,您可以以模块的形式包装并重复使用代码。
  • 它支持许多云基础架构提供商,例如AWS,Azure,GCP,IBM Cloud,OCI等。

请访问我的 GitHub Repository for Terraform projects 有关各种主题的不断更新。

请访问我的 GitHub Repository for RDS_projects 关于不断更新的各种主题。

让我们开始!

目标:

1。为此项目创建基础架构

2。更改目录 - terraform-project 和运行 terraform init < /p>

3。生成动作计划

4。创建在 main.tf 配置文件中声明的所有资源。

5。

6。使用MySQL Workbench测试RDS连接

7。删除AWS资源

先决条件:

  • AWS用户帐户带有管理员访问,而不是根帐户。
  • 云9带有AWS CLI和Terraform。
  • Download the MySql GUI Tool。基于您的操作系统,在一般可用(GA)发行,下载和安装下选择相应的选项。

使用的资源:

该项目实施的步骤:

1.为该项目创建基础架构

  • 让我们创建以下组织结构,如下所示。

  • 创建一个目录 - terraform-project

  • 创建4个文件 - variables.tf terraform.tfvars main.tf < /em> outputs.tf

Image description

  • 创建 variables.tf 文件。
#variables.tf
variable "access_key" {
    description = "Access key to AWS console"
}
variable "secret_key" {
    description = "Secret key to AWS console"
}
variable "region" {
    description = "AWS region"
}
  • 创建 terraform.tfvars 文件。

  • 您正在定义变量中声明的变量的动态值。

#terraform.tfvars
region = "us-east-1"
access_key = "<YOUR AWS CONSOLE ACCESS ID>"
secret_key = "<YOUR AWS CONSOLE SECRET KEY>"
  • 创建 main.tf 文件。
#main.tf
#defining the provider as aws
provider "aws" {
    region     = "${var.region}"
    access_key = "${var.access_key}"
    secret_key = "${var.secret_key}"
}

#create a security group for RDS Database Instance
resource "aws_security_group" "rds_sg" {
  name = "rds_sg"
  ingress {
    from_port       = 3306
    to_port         = 3306
    protocol        = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

#create a RDS Database Instance
resource "aws_db_instance" "myinstance" {
  engine               = "mysql"
  identifier           = "myrdsinstance"
  allocated_storage    =  20
  engine_version       = "5.7"
  instance_class       = "db.t2.micro"
  username             = "myrdsuser"
  password             = "myrdspassword"
  parameter_group_name = "default.mysql5.7"
  vpc_security_group_ids = ["${aws_security_group.rds_sg.id}"]
  skip_final_snapshot  = true
  publicly_accessible =  true
}
  • 创建 outputs.tf 文件。
  • 输出安全组ID和RDS数据库实例端点,以确认它们是创建的。
#outputs.tf
output "security_group_id" {
  value       = aws_security_group.rds_sg.id
}
output "db_instance_endpoint" {
  value       = aws_db_instance.myinstance.endpoint
}

2.更改为 terraform-project ,然后运行 terraform init 以初始化Terraform。

cd ../terraform-project

terraform init

Image description

3.生成行动计划

terraform plan

Image description

4.创建在 main.tf 配置文件中声明的所有资源。

terraform apply
  • 等待5-6分钟才能创建所有资源。

Image description

5.从AWS控制台检查产生的基因结构

  • 转到RDS控制台,单击左导航面板上的数据库,您可以看到成功创建的RDS数据库实例

Image description

6.使用MySQL Workbench测试RDS连接

1。使用MySQL监视器连接到DB实例上的数据库,找到DB实例的端点(DNS名称)和端口号。

  • 转到数据库,然后单击 myrdsinstance

  • 在“连接与安全”部分下,复制并记录端点和端口。

  • 端点: myrdsinstance.cgizjtuyxkda.us-east-1.rds.amazonaws.com

  • 端口: 3306

2。打开MySQL Workbench。单击加号图标。

  • 连接名称: MyDatabseConnection

  • 端口: 3306

  • 用户名: myrdsuser

  • 密码:单击存储中的存储库,然后输入密码 myrdspassword 。单击确定。

Image description

  • 单击测试连接以确保您能够正确连接到数据库。

Image description

  • 单击确定,然后再次保存连接。

Image description

3。单击它以打开数据库。如果提示,输入数据库密码。

  • 成功连接和打开数据库后,您可以在连接的数据库上创建表并执行各种查询。

  • 导航到schemas选项卡以查看可用于开始数据库操作的数据库。有关数据库操作的更多详细信息,请访问here

Image description

7.删除AWS资源

terraform destroy

Image description

到目前为止我们所做的

  • 我们已经成功地创建了一个使用Terraform的MySQL RDS数据库实例,并以后将其销毁以不产生费用。