参考文献: 実践Terraform (野村友規著)
cat <<-'EOF' > main.tf
terraform {
required_version = "= 1.6.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "= 4.17.0"
}
random = {
source = "hashicorp/random"
version = "= 3.5.1"
}
}
}
provider "aws" {
region = "ap-northeast-1"
}
provider "random" {}
resource "random_string" "password" {
length = 32
special = false
}
resource "aws_db_instance" "mysql01" {
identifier = "mysql01"
allocated_storage = 20
storage_type = "gp2"
engine = "mysql"
engine_version = "8.0.33"
instance_class = "db.t3.micro"
username = "root"
password = random_string.password.result
skip_final_snapshot = true
allow_major_version_upgrade = false
auto_minor_version_upgrade = false
delete_automated_backups = true
deletion_protection = false
multi_az = false
performance_insights_enabled = false
publicly_accessible = true
}
EOF
cat <<-'EOF' > outputs.tf
output "password" {
value = random_string.password.result
}
EOF
terraform init
terraform fmt
terraform -version
terraform apply -auto-approve
mysql -uroot -h mysql01.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p
terraform destroy -auto-approve