【问题标题】:Is it possible to have an internal load balancer with elasticbeanstalk to create a private service?是否可以使用带有 elasticbeanstalk 的内部负载均衡器来创建私有服务?
【发布时间】:2017-03-15 22:26:04
【问题描述】:

我有一个使用 elasticbeanstalk 部署的 api,我希望将其完全放在内部,以便无法从公共 Internet 访问它。我这样做是因为我只希望可以通过我们的其他服务访问该服务(每个服务都在自己的 VPC 中运行,并且都通过 elasticbeanstalk 部署)。

是否可以将内部 ELB 与 elasticbeanstalk 一起使用?这甚至是我需要做的吗? VPC 对等互连可以帮助我吗?

最终目的是api需要有一些http资源是public的,一些是private的。我的方法是使服务私有化并通过 API 网关公开任何公共资源,但也许这不是正确的解决方案。通过 API 网关公开所有内容、要求对私有资源进行 IAM 身份验证并在 API 中强制要求来自 API 网关的请求是否会更好?

【问题讨论】:

  • “我的方法是将服务设为私有并通过 API 网关公开任何公共资源”。您只能将 API Gateway 放在公共服务的前面。您可以锁定这些服务,以便它们拒绝任何并非来自 API Gateway 的请求,但您不能将它们设为私有。
  • 要详细说明 Mark 的评论,您将使用 API Gateway 的客户端 SSL 证书功能来确保您的服务只接受来自 API Gateway 的请求。 docs.aws.amazon.com/apigateway/latest/developerguide/…
  • 感谢 cmets。 API 网关无法与私有子网中的资源进行开箱即用的通信,这非常令人恼火。然而,这似乎可以通过使用 Lambda 来完成:aws.amazon.com/blogs/compute/…

标签: amazon-web-services amazon-elastic-beanstalk aws-api-gateway amazon-elb


【解决方案1】:

是的,您可以将 ELB 添加到任何 VPC,包括那些位于 Internet 无法访问的私有地址范围内的 VPC。

在配置您的 Beanstalk 实例时,选择一个合适的 VPC,取消选择“关联公共 IP 地址”,将 ELB 放置在至少一个私有子网中,然后选择“内部”以获得 ELB 可见性。

VPC 配置页面如下所示:

【讨论】:

  • 感谢 Alastair,不敢相信我没有看到这个选项!
  • 如果取消选择“关联公共 IP 地址”,“ELB 可见性”是否重要? ELB 不是已经无法从 Internet 访问了吗?
  • @DemPilafian 它们并不相互排斥。您可以取消勾选“关联公共 IP 地址”,但这并不妨碍您稍后分配一个。
  • @AlastairMcCormack 我可以在没有 ELB 的情况下将 Beanstalk 作为私有服务,仅使用单实例...在 VPC 中我无法解析 URL,我想使用 Beanstalk 域。
猜你喜欢
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 2021-12-24
相关资源
最近更新 更多