【问题标题】:Create multiple instances of a specific resource using Cloud Formation Template使用 Cloudformation 模板创建特定资源的多个实例
【发布时间】:2017-07-15 06:54:36
【问题描述】:

提前致谢! 我正在尝试创建 3 个单独的 Ec2 实例,其中实例 1 运行 spark master,实例 2 具有 spark 工作者,实例 3 使用云形成模板在其中运行客户端。

我想为 spark master 提供单个实例,但为 spark 工作人员提供多个实例,将 spark master 主机作为用户数据参数,我该怎么做?

问候, 艾米

【问题讨论】:

    标签: json amazon-ec2 cloud amazon-cloudformation


    【解决方案1】:

    除非您有非常具体的理由不这样做,否则我不建议您使用 EC2 和 CloudFormation 从头开始​​创建 Apache Spark 集群。相反,我会考虑使用 Amazon EMR 设置 Spark 集群,它支持开箱即用的 Spark,并且可以避免重复大量自定义设置来正确配置和配置 Spark 集群。使用 EMR,您可以轻松 choose the number and type of instances,甚至 auto scale,具体取决于集群的当前负载。虽然使用控制台是入门的最佳选择,但 CloudFormation 还通过其 AWS::EMR::Cluster 资源支持 EMR。

    如果您坚持使用 CloudFormation 直接启动 EC2 实例,请查看您的主/客户端的 AWS::EC2::Instance 资源,以及您的工作程序池的 AWS::AutoScaling::AutoScalingGroup 资源。

    【讨论】:

    • 谢谢@wjordan,你能给我一个使用 AWS::AutoScaling::AutoScalingGroup 的 Spark worker 的例子吗?可以像在 AWS::EC2::Instance 中一样在 AWS::AutoScaling::AutoScalingGroup 中指定 AMI ID 吗?
    【解决方案2】:

    根据 AWS CloudFormation 文档:

    您必须单独声明每个资源;但是,如果您有 多个相同类型的资源,你可以一起声明它们 用逗号分隔它们。

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

    参考:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html

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

    【讨论】:

    • “用逗号分隔”是什么意思?任何资源的资源声明中都有一大堆键/值对。哪些键/值对需要用逗号分隔来声明“多个资源”?或者这是否等同于声明两个具有不同名称的完整资源? (而在这种情况下,“同类型”怎么会进入呢?)
    猜你喜欢
    • 2019-07-05
    • 2011-07-12
    • 1970-01-01
    • 2018-03-20
    • 2019-06-13
    • 2018-04-16
    • 1970-01-01
    • 2019-08-24
    • 2020-10-17
    相关资源
    最近更新 更多