0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

パラメータストアに登録されている値をTerraform内で取得し活用する

Posted at

はじめに

あらかじめパラメータストアに登録されている秘匿情報を用いてTerraformでAWS環境を構築する、という事は多々あると思います。
公式ドキュメントに記載があるのですが、具体的な例を交えた端的な活用方法が余り見当たらないので、残しときます。

RDSのユーザー名、パスワードを登録する

以下の様なパラメータがパラメータストアに登録されています。

  • /dev/rds/username: データベースユーザー名
  • /dev/rds/password: データベースパスワード

Twelve-Factor Appの3.設定に従がって環境毎にパラメータを分けたい為、階層パラメータを用いて先頭に環境名(/dev)を付けています。

パラメータを取得しRDSを構築する

いきなりTerraformのコードです。

main.tf
# 環境はvar.envで切り替える。今回は var.env=dev
# parameter store
data "aws_ssm_parameter" "db_username" {
  name = "/${var.env}/rds/username"
}
data "aws_ssm_parameter" "db_password" {
  name = "/${var.env}/rds/password"
}

# RDS Setting
resource "aws_db_instance" "db" {
  db_name           = "sample_db"
  identifier        = "sample-${var.env}-db"
  allocated_storage = 20
  storage_type      = "standard"
  engine            = "mysql"
  engine_version    = "5.7"
  instance_class    = "db.t3.small"
  username          = data.aws_ssm_parameter.db_username.value # ココで呼ぶ!
  password          = data.aws_ssm_parameter.db_password.value # ココで呼ぶ!
...
}

パッとみて分かるものがないな、と思ったので記事にしました。

0
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?