如何更改AWS Elastic Beanstalk环境的已配置RDS端点? 例如。删除RDS数据库后或应将其替换为新的RDS数据库。
答案 0 :(得分:13)
主题仍然很复杂,AWS Elastic Beanstalk (EB)文档仍然可以更好地澄清可用选项。问题是如何更改RDS端点,这似乎是以两种不同的方式阅读:
DBSnapshotIdentifier
Option Value来实现,这表示数据库快照的标识符从恢复。 EB文档再一次并不完全具有决定性意义,但是,EB正在使用AWS CloudFormation。 AWS::RDS::DBInstance - DBSnapshotIdentifier的条目提供了更多详细信息:
通过指定此属性,您可以从中创建数据库实例 指定数据库快照。如果DBSnapshotIdentifier属性是 空字符串或AWS :: RDS :: DBInstance声明没有 DBSnapshotIdentifier属性,数据库创建为新的 数据库。如果属性包含值(空字符串除外), AWS CloudFormation从指定的快照创建数据库。如果 数据库中不存在具有指定名称的快照 创建失败,堆栈回滚。
aws:rds:dbinstance
中的任何General Option Values的典型结果是创建由EB管理的相应调整的RDS实例,从而创建新的RDS端点。 p>
DBSnapshotIdentifier
,它根据引用的快照生成由EB管理的新RDS实例,因此可用于迁移(而不是附加)现有外部管理的RDS实例,尽管基于快照大小的停机时间相当长。虽然遗憾的是Configuring Databases with AWS Elastic Beanstalk未明确解决,但可选AWS Elastic Beanstalk数据库的Amazon RDS设置是通过Option Values处理的,请参阅aws:rds:dbinstance
内的--option-settings
3}}
虽然General Options隐藏了其UI背后的许多选项值,但您可以通过其他方式明确指定它们,无论是在创建环境时还是在更新环境时(这都是您要做的)更改RDS数据库实例的任何设置) - 参见例如来自AWS Management Console的update-environment的参数{{1}}:
如果已指定,AWS Elastic Beanstalk将更新与正在运行的环境关联的配置集,并将指定的配置选项设置为请求的值。
答案 1 :(得分:0)
不鼓励在环境中热插拔数据层,因为它会破坏环境的完整性。您要做的是使用RDS实例的还原快照克隆环境。这意味着您将拥有一个具有不同网址和主机的相同环境,如果一切顺利,那么您可以交换环境网址以启动DNS交换。
交换发生后,一切都很好,你可以继续缩小旧环境
答案 2 :(得分:0)
我在.ebextensions
文件夹下创建了一个配置文件,其内容如下:
option_settings:
- namespace: aws:rds:dbinstance
option_name: DBSnapshotIdentifier
value: <name-of-snapshot>
上传和部署,它将使用此快照创建一个新的RDS数据库。