我正在使用cloudformation部署/更新一些堆栈,包括RDS。目前,我已经成功创建了数据库,并且由于设置了错误的端口,因此我想更新端口。
阅读我遇到的文档,通过cloudformation更新它,我必须重命名堆栈才能更新端口,因此它只会使用新端口创建一个新的RDS实例并销毁旧的RDS实例,这意味着我必须首先创建备份,然后再还原它。
我读到的内容是,从AWS控制台“手动”更新端口不会表现出这种方式,也不会发生数据丢失,到目前为止,我还没有尝试过。
因此,例如:
我部署的cloudformation如下:
cloudformation模板->端口123部署的堆栈->端口123
我需要将其更新到端口234
那么我的cloudformation仍然会知道端口123部署堆栈的最新部署-> 234(通过AWS控制台更新)
我的问题如下:在这种情况下,我能够通过AWS控制台更新端口,cloudformation模板会发生什么?我应该将模板更新为具有端口234还是应该将其保留为端口123,以便它不会尝试进行更新?(这将导致我在模板上拥有的内容和实际部署的内容不一致,但是我想知道是否可行)
我没有所有vpc,安全组,规则等问题,基本上只是端口。
有什么想法吗?
由CFN创建的在AWS控制台(或CLI,SDK)之外手动修改资源的做法不正确,这会导致堆栈漂移。漂移会导致未来的问题;来自docs:
无论如何,在CloudFormation之外进行的更改可能会使堆栈更新或删除操作复杂化。
专门回答您的问题:
在这种情况下,我能够通过AWS控制台更新端口,cloudformation模板会怎样?
暂时不会发生任何事情。CFN本身不会知道您在CFN之外对RDS所做的任何更改。但是您的堆栈将被视为已漂移,如AWS文档所写,这可能会导致问题。因此最好避免这种情况。
我应该将模板更新为具有端口234还是应该将其保留为端口123,以便它不会尝试进行更新?
是的,如果您想避免漂移。但是,通过CFN更新端口将导致数据库实例的替换和数据丢失。因此,您必须采取所有预防措施。最好是创建一些虚拟RDS数据库,并对其进行测试以了解更改端口的过程和后果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句