使用CloudFormation,我试图找出一些用例。
第一种情况是拥有现有的AWS RDS MySQL服务器,如何通过CloudFormation模板创建数据库,表和用户帐户。
在查看了Cloudformation文档后,我想可能会有一个
允许我执行此操作的AWS::RDS::DBInstance
属性;但是,虽然我找不到如何指定允许的数据库主机源(或者我可能误读了它)。
aws-properties-rds-database-instance
然后,从AWS查看Cloudformation RDS模板,我看到一个突出的fn::join
命令。我的第一个案例是用fn::join
吗?
"UserData": { "Fn::Base64": { "Fn::Join": ["", [....
接下来,在第二种情况下,我也很难找到如何使用现有的RDS MySQL服务器,从MySQL mysqldump加载一个方案。
我已经查看了上面链接中的文档以获取答案,但不太确定。我注意到AWS模板主要允许您创建资源。
最后,为了解决上述两种情况,我一直在阅读它可以或应该(?)使用两种工具方法,通过使用AWS CloudFormation模板并调用Chef。
思想?
答案 0 :(得分:3)
简短的回答是:你现在不能在实例创建时自动运行SQL查询(将来,谁知道......)。
我会用以下方法来解决这个经典问题:
正如您所写,CloudFormation允许您创建AWS资源,但这些资源的数量取决于您。再次,一个MySQL客户端将完成这个技巧(因为MySQL转储只不过是文件中的SQL代码,与初始要求相同)。
使用Chef或Puppet无法单独解决您的问题,因为两者都需要在EC2上安装代理,您无法在RDS服务器中运行代理。因此,您可以使用Chef或Puppet代理来使用EC2,然后启动MySQL脚本,但这不会比以前的解决方案提供更多的内容