在 VPC 内部署现有的 Elastic Beanstalk 而不删除关联的 RDS

Posted

技术标签:

【中文标题】在 VPC 内部署现有的 Elastic Beanstalk 而不删除关联的 RDS【英文标题】:Deploying existing Elastic Beanstalk inside VPC without deleting the RDS associated 【发布时间】:2015-08-16 01:57:18 【问题描述】:

我目前正在生产一个带有负载平衡实例的 beanstalk,以及一个关联的 RDS。还获得了一些路由/dns 配置,允许我使用“直接”域名调用我的 beanstalk。

我需要为我的 Elastic Beanstalk 应用程序分配一个静态 IP,以便我可以将它提供给需要将我列入白名单的第 3 方,以便我可以调用它。

我看到,关于 this link,这可以通过 VPC 实现

除了RDS部分外,我都按照程序进行。

现在我认为我需要删除我的环境(数据库也是如此)并在 VPC 中再次启动它?但是有没有办法在不删除我的 -prod- 数据库的情况下做到这一点?

另外,这个过程会改变我现有设置的任何行为吗?它会正常工作吗?我的意思是,据我所知,这是一个理论上的情况:

- 一些用户从这个 url http://awsomeDomain.com 进入我的门户(它以我的 beanstalk 实例结束)。他试图“证明自己”,所以我让他输入他的手机号码。现在我知道了,我想用这个号码给我的第三方打电话,它会告诉我这个电话号码的状态。

我能否在我的 php 代码中(来自我的 beanstalk)从分配给我的 VPC 的弹性 IP 进行此调用?这让我有点困惑,因为我觉得使用这个 VPC 更像是一个技巧而不是一个真正的解决方案,而且我没有将它用于它的主要目的。

所以在这里我得到了我的 VPC,基本上已配置(来自教程),但我不知道该怎么做。 提前致谢

【问题讨论】:

【参考方案1】:

在不丢失数据的情况下删除 Beanstalk 应用程序的最佳方法是创建快照,然后使用快照创建新应用程序来为数据库播种。

对于其余的,这是一个单独的问题,我真的不明白你想要实现什么。

【讨论】:

对于这个“单独”的问题,我的意思是知道我是否删除了豆茎并执行了我们正在谈论的程序,我是否有可能让我的应用程序保持这样是 + 从静态 IP 向第 3 方发送请求? 我不完全理解您的问题,但我要做的是在没有 beanstalk 的情况下配置 VPC、入口点(具有静态 IP 的服务器)、子网和 RDS。然后将 beanstalk 用于您的应用程序,通过 env vars 传递您的 RDS 配置。这是一个典型的部署。您必须混合可以在 AWS 文档中找到的几个示例。例如,在 beanstalk 之外使用 EC2 路由器进行了描述:docs.aws.amazon.com/elasticbeanstalk/latest/dg/… 谢谢,从一个 Elastic Beanstalk 在生产环境中自己完成所有工作开始,这个过程看起来很棘手,我会考虑一下。我的问题以最简单的方式:我是否能够接收来自经典 beanstalk url 的呼叫,然后识别拨打电话的用户,然后从弹性 IP 呼叫第 3 方?我想确保我呼叫的第 3 方被静态 IP 呼叫 这主要是一个软件任务。在基础设施方面,只要正确配置了路由和安全规则,这是有问题的。【参考方案2】:

事实上,对于每个已经遇到或遇到问题的人。这很容易。

创建新的 EC 实例(2 个,也许 3 个来处理流量)。将弹性 IP 分配给该实例。制作一个负载均衡器来处理流量。然后你就有了一个像这样工作的网关:

1) 从我的应用程序客户端点击

2) 我的应用程序使用所有参数调用我的 EC2 静态实例

3) 我的静态 EC2 调用我的第三方

4) 第三方回答我的 EC2

5) EC2 对我的申请的答复

【讨论】:

以上是关于在 VPC 内部署现有的 Elastic Beanstalk 而不删除关联的 RDS的主要内容,如果未能解决你的问题,请参考以下文章

下载/检索现有的 Elastic Beanstalk 环境配置

没有 NAT 的私有 VPC 中的 Elastic Beanstalk 应用程序

Elastic Beanstalk:将数据库安全组迁移到 VPC 安全组

如何在 AWS Elastic Container Service 中使用现有的 docker-compose.yml 文件?

Terraform 和 GCP - 在现有的共享 VPC 和子网中创建新的计算 VM

无服务器框架将 Lambda 添加到现有 VPC 和子网