![](/img/trans.png)
[英]502 bad gateway when I deploy SpringBoot application to AWS Elastic Beanstalk and cannot connect to RDS from local SpringBoot
[英]How do I connect rds with elastic beanstalk in terraform
我有使用 terraform 创建弹性 beantalk 的代码,这是我在 terraform 文档中找到的用于创建 rds 实例的代码
resource "aws_db_instance" "default" {
allocated_storage = 10
db_name = "mydb"
engine = "mysql"
engine_version = "5.7"
instance_class = "db.t3.micro"
username = "foo"
password = "foobarbaz"
parameter_group_name = "default.mysql5.7"
skip_final_snapshot = true
}
问题是我找不到如何将此数据库连接到弹性 beanstalk 的示例
我认为setting
选项应该是 go 的方式,即,您可能不需要单独的资源来创建数据库。 基于 AWS 文档 [1],并使用 terraform 示例 [2],它应该类似于:
resource "aws_elastic_beanstalk_application" "tftest" {
name = "tf-test-name"
description = "tf-test-desc"
}
resource "aws_elastic_beanstalk_environment" "tfenvtest" {
name = "tf-test-name"
application = aws_elastic_beanstalk_application.tftest.name
solution_stack_name = "64bit Amazon Linux 2015.03 v2.0.3 running Go 1.4"
setting {
namespace = "aws:rds:dbinstance"
name = "DBAllocatedStorage"
value = "10"
}
setting {
namespace = "aws:rds:dbinstance"
name = "DBDeletionPolicy"
value = "Delete"
}
setting {
namespace = "aws:rds:dbinstance"
name = "HasCoupledDatabase"
value = "true"
}
setting {
namespace = "aws:rds:dbinstance"
name = "DBEngine"
value = "mysql"
}
setting {
namespace = "aws:rds:dbinstance"
name = "DBEngineVersion"
value = "5.7"
}
setting {
namespace = "aws:rds:dbinstance"
name = "DBInstanceClass"
value = "db.t3.micro"
}
setting {
namespace = "aws:rds:dbinstance"
name = "DBPassword"
value = "foobarbaz"
}
setting {
namespace = "aws:rds:dbinstance"
name = "DBUser"
value = "foo"
}
}
但是,我不确定这里是否可以设置parameter_group_name
。
编辑:更新答案以使用 ElasticBeanstalk 环境创建数据库实例。 但是,请确保从文档中了解有关HasCoupledDatabase
设置的这一部分:
注意:如果在分离之前的数据库后将此值切换回
true
,Elastic Beanstalk 会使用之前的数据库选项设置创建一个新数据库。 但是,为了维护环境的安全,它不会保留现有的 DBUser 和 DBPassword 设置。 您需要再次指定 DBUser 和 DBPassword 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.