{Terraform} ランダム文字列

 

参考文献: 実践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