エラーログ
Failed to connect to database: (1045, "Access denied for user 'dev_admin'@'172.31.1.129' (using password: YES)")
原因
このエラーは、データベースユーザー名またはパスワードが正しくない場合に発生します。
対処方法
- AWS Secrets Managerの確認
- Secrets Managerに保存されているユーザー名とパスワードが正しいか確認
- 必要に応じて、以下のようにTerraformコードを修正:
resource "aws_secretsmanager_secret_version" "db_credential" {
secret_id = aws_secretsmanager_secret.db_credential.id
secret_string = jsonencode({
username = "${var.environment}_${var.DB_USERNAME}"
password = var.DB_PASSWORD
})
}
- RDSインスタンスでのユーザー確認
- RDSインスタンスに直接接続し、ユーザーが正しく作成されているか確認
- 必要に応じて、以下のSQLコマンドでユーザーを作成または権限を付与:
CREATE USER 'dev_admin'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'dev_admin'@'%';
FLUSH PRIVILEGES;
- Lambda関数の環境変数確認
- Lambda関数の環境変数が正しく設定されているか確認
- Terraformコードで以下のように設定されていることを確認:
resource "aws_lambda_function" "db_dump" {
# 他の設定...
environment {
variables = {
RDS_USER = "${var.environment}_${var.DB_USERNAME}"
RDS_PASSWORD = var.DB_PASSWORD
# 他の環境変数...
}
}
}
コメント