【问题标题】:AWS EMR on VPC with EC2 Instance带有 EC2 实例的 VPC 上的 AWS EMR
【发布时间】:2019-03-03 19:51:24
【问题描述】:

我正在阅读 VPC 上的 AWS EMR,但似乎更多的是 AWS EMR 服务访问 EMR 集群以进行调用的设计考虑。

我想要做的是托管一个带有 ALB 和 EC2 实例的 VPC,该实例运行应用程序作为服务来访问 EMR 集群。

VPC -> Internet Gateway -> Load Balancer -> EC2 (Application endpoints) -> EMR Cluster 

我不希望集群可以从外部访问,除非通过 IG 的公共 IP。但是公共 IP 只能访问调用同一 VPC 上的 EMR 集群的 EC2 实例托管应用程序。

这是推荐的方法吗?

设计如下所示。 我正在解决的一些挑战是如果在 VPC 上,如何从 EMR 访问 S3, 如果应用程序在 EC2 上运行,它是否可以访问 EMR 集群,以及 EMR 集群是否可以公开使用?

欢迎提供任何指导链接或建议。

编辑:

或者,如果我在 VPC 上创建 EMR,是否需要将其包装在另一个 VPC 中,如下所示?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-emr


    【解决方案1】:

    最简单的设计是:

    • 将所有内容放在 VPC 的公共子网中
    • 使用安全组控制对 EMR 集群的访问

    如果你是安全偏执狂,那么你可以使用:

    • 将可公开访问的资源(例如 EC2)放入 公共子网
    • 将 EMR 放入 私有子网
    • 使用 NAT 网关或 VPC 端点允许 EMR 与 S3(在 VPC 之外)通信

    第一个选项更简单,安全组充当可以完全保护 EMR 集群的防火墙。您将创建三个安全组:

    • ELB-SG: 允许在所需端口上从 Internet 进行入站访问。将安全组与您的负载均衡器相关联。
    • EC2-SG: 允许来自 ELB-SG 的入站访问(来自安全组本身)。将安全组与您的 EC2 实例相关联。
    • EMR-SG: 允许来自 EC2-SG 的入站访问(来自安全组本身)。将 EMR-SG 与 EMR 集群关联。

    这将只允许负载均衡器与 EC2 实例通信,并且只允许 EC2 实例与 EMR 集群通信。由于默认规则允许出站访问,EMR 集群将能够直接连接到 Internet 以访问 Amazon S3。

    【讨论】:

    • 我想在安全的 VPC 上托管 EMR;还有私有子网上的 EC2,LB 通过公共子网公开它。我的理解正确吗?如果我将 EMR 放在私有子网上,连接到 LB 的 EC2 实例是否可以访问它?我在 EC2 上托管了一项服务,该服务将使用 EMR 来运行步骤。
    • 使用第二个 VPC 没有任何好处。使用上面列出的安全组或私有子网。
    • EC2 能否在公有子网上运行托管访问或在私有子网上的 EMR 上运行服务调用?
    • 只要 EMR 集群上的安全组允许,只要 Amazon EC2 实例位于同一 VPC 中(无论它位于哪个子网),它就可以与 Amazon EMR 集群通信。
    • 您对公共域上的 ssh jumphost 和安全组的主机 ec2 有什么好的参考吗?我对 ec2 vs VPC 的 SG 感到困惑
    猜你喜欢
    • 2019-09-04
    • 2017-12-14
    • 2017-06-23
    • 1970-01-01
    • 2019-01-18
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    相关资源
    最近更新 更多