使用CloudFormation,我试图弄清楚一些用例.
第一种情况是拥有现有的AWS RDS MySQL服务器,如何通过CloudFormation模板创建数据库,表和用户帐户.
在查看了Cloudformation文档之后,我想可能会有一个
AWS :: RDS :: DBInstance属性,允许我执行此操作;但是,虽然我找不到如何指定允许的数据库主机源(或者我可能误读了它).
然后,从AWS查看Cloudformation RDS模板,我看到一个突出的fn :: join命令.我的第一个案例是用fn :: join完成的吗?
"UserData": { "Fn::Base64": { "Fn::Join": ["",[....
接下来,在第二种情况下,我也很难找到如何使用现有的RDS MysqL服务器,从MysqL MysqLdump加载一个方案.
我已经查看了上面链接中的文档以获得答案,但不太确定.我注意到AWS模板主要允许您创建资源.
最后,为了解决上述两种情况,我一直在阅读它可以或应该(?)使用两种工具方法,通过使用AWS CloudFormation模板和调用Chef来完成.
思考?
>使用EC2运行您需要的MysqL代码(不确定是否需要在EC2中放置“DependsOn”子句,因为您必须使用GetAtt引用RDS端点,这可能会隐藏DependsOn子句).只要您以某种方式传递RDS端点,就可以将其放在用户数据或任何所需的脚本中.当然,您需要在EC2上安装MysqL客户端软件包.
正如您所写,CloudFormation允许您创建AWS资源,但这些资源的人口由您决定.再一次,MysqL客户端将完成这一操作(因为MysqL转储只不过是文件中的sql代码,与初始要求相同).
使用Chef或Puppet不会单独解决您的问题,因为两者都需要在EC2上安装代理,您无法在RDS服务器中运行代理.因此,您可以使用Chef或Puppet代理来使用EC2,这将代替启动MysqL脚本,但这不会比以前的解决方案提供更多