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?

個人的備忘録:Terraform における aws_db_instance.rds_instance.address の活用方法メモ

Last updated at Posted at 2025-02-20

はじめに

AWS の RDS インスタンスを Terraform で管理 する際、aws_db_instance.rds_instance.address を環境変数として利用することで、アプリケーションが正しくデータベースに接続 できるようになります。

本記事では、この値の 役割と具体的な活用方法 について解説します。

※内容は個人の備忘録レベルのため、参考程度にご覧ください。

書こうと思ったきっかけ

この記事を書こうと思ったきっかけは、現在受講している IT スクールのハッカソン において、インフラ担当として活動 していることです。

実際のAWS構成図

Screenshot 2025-02-21 at 7.29.34.png

ハッカソンでは、Terraform を用いて AWS のインフラを管理 する機会があり、その中で RDS のエンドポイントをどのように活用するか が重要な課題となりました。

実際の運用に役立つ知識として整理 しておくため、ここにまとめます。

AWS の RDS インスタンスを Terraform で管理する際、aws_db_instance.rds_instance.address を環境変数として利用することで、アプリケーションが正しくデータベースに接続できるようになります。

本記事では、この値の役割と具体的な活用方法について解説します。

aws_db_instance.rds_instance.address とは?

aws_db_instance.rds_instance.address は、Terraform で管理している RDS インスタンスのエンドポイントを取得するための属性です。この値は、RDS インスタンスが作成された後に割り当てられるホスト名であり、アプリケーションがデータベースに接続する際に使用されます。

具体的な活用方法

Terraform を使って AWS ECS や EC2 インスタンスなどのアプリケーションに RDS インスタンスのエンドポイントを渡す場合、以下のように environment ブロックで MYSQL_HOST などの変数として設定することができます。

例: ECS のタスク定義で RDS のエンドポイントを環境変数に設定

例: EC2 インスタンスの環境変数として RDS のアドレスを設定
resource "aws_instance" "app_server" {
  ami           = "ami-12345678"
  instance_type = "t3.micro"

  user_data = <<-EOF
              #!/bin/bash
              echo "MYSQL_HOST=${aws_db_instance.rds_instance.address}" >> /etc/environment
              echo "MYSQL_USER=myuser" >> /etc/environment
              echo "MYSQL_PASSWORD=$(aws secretsmanager get-secret-value --secret-id rds_password --query SecretString --output text | jq -r .password)" >> /etc/environment
              echo "MYSQL_DB=mydatabase" >> /etc/environment
              EOF
}

適用方法

Terraform の設定を適用するには、以下の手順を実行します。

terraform init
terraform apply -auto-approve

また、ECS の場合は以下のコマンドでタスクを再デプロイし、環境変数の更新を反映させます。

aws ecs update-service --cluster my-ecs-cluster --service my-ecs-service --force-new-deployment

まとめ

  • aws_db_instance.rds_instance.address は、Terraform で作成された RDS インスタンスのエンドポイントを取得するための属性。
  • ECS のタスク定義や EC2 インスタンスの環境変数に設定することで、アプリケーションがデータベースに適切に接続できるようになる。
  • Terraform の適用後、ECS や EC2 の設定を更新することで、環境変数の変更を反映できる。

この設定を活用することで、AWS のインフラをコードベースで効率的に管理し、アプリケーションとデータベースの接続設定を自動化できます。

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?