【问题标题】:Elastic Beanstalk in VPCVPC 中的 Elastic Beanstalk
【发布时间】:2020-11-04 09:37:16
【问题描述】:

我在 AWS Elastic Beanstalk 中制作并部署了我的 Django 应用程序。它通过 EBS 控制台连接到 RDS 中的 Postgres DB。

当我在 EBS 中单击 configuration -> network 时,我看到:“此环境不是 VPC 的一部分。

如何使它成为 VPC 的一部分?谢谢!

注意:对此非常陌生;)

【问题讨论】:

  • 你读过docs on EB in VPC吗?如果是,有什么不清楚或为什么不起作用?
  • @Marcin 我试着看看它们,但是,考虑到我对这些东西的了解程度,我无法真正理解它。我去了 VPC 管理,选择了VPC with Public and Private Subnets,但不知道要设置什么Elastic IP Allocation ID。我跟着这个:docs.aws.amazon.com/elasticbeanstalk/latest/dg/vpc-rds.html
  • 作为@stefansundin,您将已经在默认 VPC 中。是否要迁移到带有私有子网的自定义 VPC,其中将放置 rds?
  • @Marcin 是的,我希望 RDS 只能被 VPC 中的其他实体访问。
  • 您有外部 RDS,还是作为 EB 环境的一部分创建的?

标签: amazon-web-services amazon-elastic-beanstalk amazon-vpc


【解决方案1】:

正如@stefansundin 已经解释的那样,您不能将现有的 EB 移动到自定义 VPC。你必须创建一个新的。

这些是要考虑的一般步骤

  1. 创建具有公有和私有子网的自定义 VPC,如文档中所述:VPC with public and private subnets (NAT)。私有子网中的实例和 rds 需要 NAT 才能与 Internet 通信,但不允许入站 Internet 流量。这可确保您的实例和 rds 无法从外部访问。

  2. 为 EB 创建新的 RDS,外部。这是一种很好的做法,否则 RDS 的生命周期会与 EB 环境相结合。起点是以下 AWS 文档:Launching and connecting to an external Amazon RDS instance in a default VPC

  3. 创建新的 EB 环境并确保自定义其设置以使用 VPC。使用环境变量将 RDS 端点传递给 EB 实例。根据您希望如何处理 RDS 的密码,选项很少,从使用环境变量(低安全性)到 SSM Parameter Store(免费)或 AWS Secrets Manager(非免费)。

对于 AWS 新手来说,正确设置这一切可能很困难。但只要有耐心和练习,它就可以做到。因此,我建议您像现在一样从默认 VPC 开始。然后,一旦您对如何使用外部 RDS 感到满意,请考虑按照所述创建自定义 VPC。

【讨论】:

  • 马尔辛,感谢您的回复!几个小问题。 1) 那么在创建 VPC 时我应该将NAT 留空吗? 2)创建外部RDS时,需要添加到VPC吗? 3)我想尽可能地安全,因此会想使用 SSM 或 Secrets。你推荐哪个?
  • @JJT 您可以稍后添加 NAT。这将需要设置路由表,如文档中所示。创建 RDS 时,您必须确保创建新的子网组,您可以在其中指定自定义 VPC 的私有子网。 SSM 是免费的,但 secrets 提供了 RDS 凭据的自动轮换。因此,秘密可能会更好,因为它们是专门为与 rds 一起工作而设计的。
  • 我明白了,有道理。需要明确的是,自动轮换是什么意思?
  • @JJT 定期自动更改 rds 凭据。更多here.
  • 有道理,刚刚接受了这个答案。非常感谢您的帮助!!
【解决方案2】:

您必须重新创建 Elastic Beanstalk 环境并在创建期间选择 VPC。无法将现有环境移动到 VPC。

但是,除非您有权访问 EC2-Classic,否则启动的 EC2 服务器已经在 VPC 中。他们就在the default VPC。但就 Elastic Beanstalk 而言,它似乎没有注意到这一点。

我不确定是否有专供 VPC 环境使用的功能。我的建议是尝试使用您当前的环境,如果您稍后出于其他原因碰巧重新创建了环境,那么您可以尝试选择一个 VPC,看看它是否提供了任何新的东西。

【讨论】:

  • 我明白了,看着这个:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-create.html,我知道我可以使用--vpc。你熟悉这个吗?
  • 我试过--vpc,但我只是想试试。我的应用不需要任何 VPC,因此我切换回非 VPC 环境。
猜你喜欢
  • 2017-01-17
  • 2020-11-09
  • 2017-01-29
  • 2020-11-06
  • 2017-06-06
  • 2016-12-19
  • 2016-12-13
  • 2020-11-07
  • 2018-02-28
相关资源
最近更新 更多