Json 使用云形成模板创建特定资源的多个实例

Json 使用云形成模板创建特定资源的多个实例,json,amazon-ec2,cloud,amazon-cloudformation,Json,Amazon Ec2,Cloud,Amazon Cloudformation,提前谢谢! 我正在尝试创建3个独立的Ec2实例,比如实例1运行spark master,实例2有spark worker,实例3使用云形成模板在其中运行客户端 我想为spark master创建一个实例,但为spark workers创建多个实例,并将spark master host作为用户数据参数,我如何才能做到这一点 问候,, Amey除非您有非常具体的理由,否则我不建议您使用EC2和CloudFormation从头开始创建Apache Spark集群。相反,我将考虑使用来设置Spark群

提前谢谢! 我正在尝试创建3个独立的Ec2实例,比如实例1运行spark master,实例2有spark worker,实例3使用云形成模板在其中运行客户端

我想为spark master创建一个实例,但为spark workers创建多个实例,并将spark master host作为用户数据参数,我如何才能做到这一点

问候,,
Amey

除非您有非常具体的理由,否则我不建议您使用EC2和CloudFormation从头开始创建Apache Spark集群。相反,我将考虑使用来设置Spark群集,它支持开箱即用,并且可以避免您重复大量自定义设置,从而正确配置和配置Spark群集。使用EMR,您可以很容易地,甚至可以根据集群的当前负载。虽然使用控制台最适合入门,但CloudFormation也通过其资源支持EMR

如果您坚持使用CloudFormation直接启动EC2实例,请查看主/客户端资源和工作池资源。

根据AWS CloudFormation文档:

必须分别声明每个资源;然而,如果你有 同一类型的多个资源,您可以通过 用逗号分隔

要传入用户数据,可以使用资源的
UserData
属性

参考资料:


编辑2019-07-15:看来他们已经更新了AWS文档并删除了我引用的片段。您必须在CloudFormation中分别定义每个EC2实例。

谢谢@wjordan,您能给我一个使用AWS::AutoScaling::AutoScalingGroup for Spark worker的示例吗。可以像在AWS::EC2::Instance中那样在AWS::AutoScaling::AutoScalingGroup中指定AMI ID吗?用逗号分隔它们是什么意思?任何资源的资源声明中都有一大堆键/值对。以下哪些键/值对需要用逗号分隔以声明“多个资源”?或者这与仅仅用不同的名称声明两个完整的资源完全相同吗?(在这种情况下,“同一类型”是如何进入的?)