【发布时间】:2023-07-04 13:02:01
【问题描述】:
我对 teraform 脚本非常陌生。 我们的系统在 AWS 中运行,我们有一个由多个微服务访问的数据库服务器实例。
每个需要持久化一些数据的微服务都需要指向同一数据库服务器上的不同数据库(模式)。我们希望每个服务都有自己的架构,以使服务彼此完全解耦。然而,创建一个单独的数据库实例来实现这一点有点过分,因为某些服务只能持续几乎没有,所以这将是一种浪费,
我在所有微服务通用的 services.tf 脚本中创建了 PostgreSQL 资源:
resource "aws_db_instance" "my-system" {
identifier_prefix = "${var.resource_name_prefix}-tlm-"
engine = "postgres"
allocated_storage = "${var.database_storage_size}"
storage_type = "${var.database_storage_type}"
storage_encrypted = true
skip_final_snapshot = true
instance_class = "${var.database_instance_type}"
availability_zone = "${data.aws_availability_zones.all.names[0]}"
db_subnet_group_name = "${aws_db_subnet_group.default.name}"
vpc_security_group_ids = "${var.security_group_ids}"
backup_retention_period = "${var.database_retention_period}"
backup_window = "15:00-18:00" // UTC
maintenance_window = "sat:19:00-sat:20:00" // UTC
tags = "${var.tags}"
}
现在,对于我的 service-1 和 service-2,我希望能够创建 corespondent 数据库名称。我认为以下内容不正确,我只是添加它以让您了解我想要实现的目标。
所以 service-1.tf 将包含:
resource "aws_db_instance" "my-system" {
name = "service_1"
}
而 service-2.tf 将包含:
resource "aws_db_instance" "my-system" {
name = "service_2"
}
我的问题是我应该在 service-1.tf 和 service-2.tf 中添加什么来实现这一点。
提前感谢您的意见。
【问题讨论】:
-
你是说你想在同一个实例上有多个 postgres 模式和用户由应用程序分隔?您目前如何在 RDS 实例上创建用户和架构?
-
这是我想通过我的问题找到的。如何使用 terraform 在同一数据库实例上自动创建多个模式/用户
标签: amazon-web-services microservices terraform