LoginSignup
3
1

More than 1 year has passed since last update.

【Terraform】AWSにてRDSを作成する際の名前指定(aws_db_instance)

Posted at

はじめに

TerraformでRDSを作成する際にaws_db_instanceを指定する際にDB名指定で引っかかったので、備忘録として記事にしたいと思います。

環境

項目 バージョン
Terraform 1.1.8
provider registry.terraform.io/hashicorp/aws 4.9.0
provider registry.terraform.io/hashicorp/random 3.1.2
バージョン
satsuton:Test ma-sato$ terraform -v
Terraform v1.1.8
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v4.9.0
+ provider registry.terraform.io/hashicorp/random v3.1.2
satsuton:Test ma-sato$ 

経緯

Terraformにて以下のようにコードを作成し、terraform planを実行。(リソース作成前の確認)
※実際のコードから一部抜粋しております。

RDS作成コード
resource "aws_db_instance" "mysql_standalone" {
  engine         = "mysql"
  engine_version = "8.0.20"

~~省略~~

  name              = "tastylog"
  parameter_group_name = aws_db_parameter_group.mysql_standalone_parametergroup.name
  option_group_name    = aws_db_option_group.mysql_standalone_optiongroup.name

~~省略~~

  tags = {
    Name    = "${var.project}-${var.environment}-mysql-standalone"
    Project = var.project
    Env     = var.environment
  }
}

以下のWarningが表示される。

Warning
│ Warning: Argument is deprecated
│ 
│   with aws_db_instance.mysql_standalone,
│   on rds.tf line 76, in resource "aws_db_instance" "mysql_standalone":
│   76:   name                 =   "tastylog"
│ 
│ Use db_name instead
│ 
│ (and one more similar warning elsewhere)

対処方法

namedb_nameに変更してterraform planを再実行。

RDS作成コード
resource "aws_db_instance" "mysql_standalone" {
  engine         = "mysql"
  engine_version = "8.0.20"

~~省略~~

  db_name              = "tastylog"
  parameter_group_name = aws_db_parameter_group.mysql_standalone_parametergroup.name
  option_group_name    = aws_db_option_group.mysql_standalone_optiongroup.name

~~省略~~

  tags = {
    Name    = "${var.project}-${var.environment}-mysql-standalone"
    Project = var.project
    Env     = var.environment
  }
}

Warningが表示されないことを確認。

解説

aws_db_instanceにてnameでDB名を指定することは非推奨でdb_nameでDB名を指定することを推奨しています。(2022/04/20現在)
そのため、db_nameでDB名を指定したところ、Warning分が消えたということになります。

Terraformの公式ドキュメントにもdb_nameで指定する旨記載されております。

db_name - (Optional) The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the AWS documentation for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica.

参考記事にも参考にしたZennの記事と公式ドキュメントのリンクを載せてあります。
そちらも併せてご覧下さい。

参考記事

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1