标签: elastic-beanstalk

来自 AWS 自动扩展组的传出流量的静态 IP 地址

我将在 VPC 的默认子网中的 Elastic Beanstalk 自动扩展组中拥有多个 EC2 实例。这些 EC2 实例上的应用程序需要连接到使用 IP 地址白名单的第三方服务才能允许访问。所以我需要一个或多个静态 IP 地址,我可以将这些地址提供给该服务提供商,以便将它们添加到白名单中。我的理解是,获得静态 IP 的唯一方法是获得弹性 IP 地址。而且我一次只能将弹性 IP 与一个 EC2 实例相关联——我无法将它与我的整个子网或互联网网关相关联(这是正确的吗?)。那么我是否需要为每个 EC2 实例提供一个弹性 IP,以便每个实例都可以单独列入白名单?如果自动缩放添加另一个实例,这将如何工作?我是否应该拥有一个带有弹性 IP 的 EC2 实例,并通过该实例路由所有传出流量?如果是这样,该实例是否需要仅用于此目的,还是可以是运行我的应用程序的实例之一?

amazon-web-services amazon-elastic-ip autoscaling amazon-vpc elastic-beanstalk

33
推荐指数
3
解决办法
3万
查看次数

AWS:名为 *** 的环境对此操作处于无效状态。必须准备好

当我尝试使用 Elastic Beanstalk 在 EC2 上部署我的 php 应用程序时收到一条消息。

Environment named *** is in an invalid state for this operation. Must be Ready.
Run Code Online (Sandbox Code Playgroud)

我无法部署。服务器状态正在运行,没有警告。

在这一点上,我的经验非常有限。我该如何解决这个问题?

amazon-web-services elastic-beanstalk

30
推荐指数
2
解决办法
4万
查看次数

如何将现有 RDS 实例关联到 Elastic Beanstalk 环境?

在创建 Elastic Beanstalk 环境之前,我已经创建了我的 RDS 实例。两者一起工作没有问题,但我希望它们链接在一起,并且可以通过RDS_*环境变量访问 RDS 参数。

Elastic Beanstalk 配置页面说:

您没有数据库。 您可以创建新的 RDS 数据库或使用现有数据库。

尽管第一个链接就地创建 RDS 实例并将其链接到当前环境,但第二个链接只是重定向到此文档页面。,不幸的是,它只解释了如何创建一个新的 RDS 实例,而不是如何链接一个现有的实例。

如何将现有 RDS 实例关联到我的 Elastic Beanstalk 环境?

amazon-rds elastic-beanstalk

26
推荐指数
2
解决办法
2万
查看次数

如何在 AWS Elastic Beanstalk 上向 php.ini 添加指令?

我想将这些 PHP 设置添加到我的 Elastic Beanstalk 环境中:

upload_max_filesize = 64M
post_max_size = 64M
Run Code Online (Sandbox Code Playgroud)

这些选项无法设置option_settings.ebextensions

Namespace                                    | Extend
---------------------------------------------|-------
aws:elasticbeanstalk:application:environment | Yes
aws:elasticbeanstalk:container:php:phpini    | No
Run Code Online (Sandbox Code Playgroud)

如何php.ini在 Elastic Beanstalk 容器中添加自定义设置?

php amazon-web-services elastic-beanstalk

25
推荐指数
1
解决办法
2万
查看次数

自动为 AWS Elastic Beanstalk 应用安全更新

从早期开始,我就一直是 Heroku 的粉丝。但我喜欢 AWS Elastic Beanstalk 让您更好地控制实例特征的事实。我喜欢 Heroku 的一件事是我可以部署应用程序而不必担心管理它。我假设Heroku 确保及时应用所有操作系统安全更新。我只需要确保我的应用程序是安全的。

我对 Beanstalk 的初步研究表明,虽然它为您构建和配置实例,但之后它转向了更加手动的管理过程。安全更新不会自动应用于实例。似乎有两个方面的担忧:

  • 新的 AMI 版本 - 随着新的 AMI 版本的出现,我们似乎希望运行最新的(大概是最安全的)。但我的研究似乎表明您需要手动启动新设置才能查看最新的 AMI 版本,然后创建一个新环境以使用该新版本。是否有更好的自动化方式将您的实例轮换为新的 AMI 版本?
  • 在发布之间,将发布包的安全更新。似乎我们也想升级它们。我的研究似乎表明人们安装命令来偶尔运行 yum 更新. 但是由于新实例是根据使用情况创建/销毁的,因此新实例似乎并不总是具有更新(即实例创建和第一次 yum 更新之间的时间)。因此,有时您会遇到未打补丁的实例。而且您还将让实例不断自我修补,直到应用新的 AMI 版本。我的另一个担忧是,这些安全更新可能没有经过亚马逊自己的审查(就像 AMI 版本那样),它可能会破坏我的应用程序来自动更新它们。我知道 Dreamhost 曾经有过 12 小时的中断,因为他们在没有任何审查的情况下完全自动地应用了 debian 更新。我想确保同样的事情不会发生在我身上。

所以我的问题是亚马逊是否提供了一种方法来提供像 Heroku 这样的完全托管的 PaaS?或者 AWS Elastic Beanstalk 真的更像是一个安装脚本,之后您就可以自己动手了(除了他们提供的监控和部署工具)?

security cloud elastic-beanstalk

21
推荐指数
2
解决办法
7702
查看次数

与其他部署策略相比,AWS Elastic Beanstalk 的优缺点是什么?

总的来说,我对整个 Netflix OSS 堆栈和部署还很​​陌生。作为我目前的运维知识水平的背景,我的主要角色是前端应用工程师。但是,我喜欢事物的运营方面,因此我正在尝试为新项目设置新的部署策略和工具。

我们的目标

  • 超级简单的部署(我们想按一个按钮来更新生产)
  • 自动部署到测试环境(使用 Jenkins)
  • 易于维护(我们有一个应用程序要编写,不想花时间摆弄生产问题)
  • 能够处理面向服务的架构(许多小型应用程序、各种语言和数据存储)
  • 足够的灵活性以确保我们不会很快改变策略(我们已经在努力摆脱 RightScale)

我们可以多花一点初始设置时间,如果这样做会在将来为我们省去一些麻烦。

因此,沿着这些思路,我一直在听播客、观看 Ops 演讲并阅读大量博客文章,并根据我们的目标以及我所采取的一些最佳实践,我们已经开始制定计划,使用Asgard,将我们的包滚动到 jar 中,然后将其滚动到 AMI 中。

我们已经计划好了这一切,并且喜欢该流程与使用 Chef 服务器和动态融合实例相比的优势(鉴于我们有限的时间线和对 Chef 服务器工作流程的缺乏了解,我们认为这很容易出错)。然而,一位同事自己环顾四周,觉得 Elastic Beanstalk 满足了我们的需求。

我已经研究过它并使用 WAR 文件和附加的 RDS 数据库启动了一个测试环境。事情似乎奏效了,我相信我们可以通过 AWS API 使用 Jenkins 自动部署到测试环境。看起来很简单……也许太简单了。

我想知道的是,有什么收获?如果 Elastic Beanstalk 如此简单有效,为什么没有更多地谈论它?我很难找到关于两种不同部署策略的足够客观的意见和事实,所以我想我会四处打听。

您使用 Elastic Beanstalk 吗?如果是这样,为什么以及哪些因素会导致该决定?你喜欢和不喜欢什么?

如果您不使用 Elastic Beanstalk 但考虑过它,您使用什么,为什么不使用 Elastic Beanstalk?

基于 Elastic Beanstalk 的 SOA 部署策略的优缺点是什么?也就是说,Elastic Beanstalk 是否可以与许多相互依赖才能工作的小型应用程序一起工作?

chef amazon-web-services elastic-beanstalk

20
推荐指数
1
解决办法
2万
查看次数

如何在 AWS Elastic Beanstalk 中升级到最新的 AMI?

我正在 AWS Elastic Beanstalk 上运行一个应用程序,如果我想使用最新的 AMI,看起来我需要创建一个新环境。

如果我知道最新的 AMI id 是什么,我可以在环境配置中更新它。

有什么地方可以找到最新的 Elastic Beanstalk AMI 的 ID,或者更好的是,是否可以在推出新版本时自动将实例替换为新版本?

amazon-web-services elastic-beanstalk

18
推荐指数
1
解决办法
7247
查看次数

如何增加 Elastic Beanstalk 部署的超时时间?

作为我的应用程序部署的一部分commands,我的.ebextensions配置文件中有一些。第一次运行命令(克隆大型存储库)可能需要 20 分钟或更长时间才能完成所有命令。

不幸的是,这会在部署期间触发超时:

INFO Deploying new version to instance(s).
WARN The following instances have not responded in the allowed command
     timeout time (they might still finish eventually on their own).
INFO Command execution completed. Summary: [Successful: 0, TimedOut: 1].
Run Code Online (Sandbox Code Playgroud)

是否可以增加此超时?我在我的环境设置中找不到该选项。

amazon-web-services elastic-beanstalk

17
推荐指数
1
解决办法
2万
查看次数

Elastic Beanstalk 的环境变量是否适合存储秘密值?

我已将我的 Django 应用程序部署到 Elastic Beanstalk,目的是使用其环境变量配置接口来存储我的 API 密钥,而不是将它们存储在我的源中(如此处所述/sf/answers/1251502031/)。

这样做之后,我发现 Beanstalk 所称的环境变量实际上并不是 shell 环境变量(如这里提到的/sf/answers/1719538271/),而是存储在配置文件中的实例上(如此处描述/sf/answers/1719639841/)。

这对我来说似乎是一个安全问题。这不是违背了将密钥隐藏在源头之外的目的吗?我知道它们不再在 repo 中,但它们仍然可以在实例上访问。

我误解了风险吗?我是继承系统管理员,所以请原谅我的无知。我应该通过配置文件将 Beanstalk 变量作为 shell 环境变量加载并继续,因为该文件只能通过 root 访问,还是我的担忧有效?谢谢你。

security deployment python elastic-beanstalk

16
推荐指数
1
解决办法
4529
查看次数

Elastic Beanstalk 强制 https

我在通过 AWS Elastic Beanstalk 部署的站点强制使用 HTTPS 时遇到问题。

这是一个使用 EmberJS 的前端应用程序。我已经绕圈子转了很多天,试图弄清楚如何将 http 流量重定向到 https。我在我的 EC2 机器上使用 Amazon Linux AMI。

我得出的结论是(仍然不确定这是否正确)我强制使用 HTTPS 不在 Elastic Beanstalk 中。我允许 HTTP 和 HTTPS 通过我的 Elastic Beanstalk 负载均衡器,并尝试在服务器上重定向。

这是我遇到问题的地方。我找到了很多关于重写规则的答案,没有mod_rewrite这些答案基于X-Forwarded-Proto标题,但是根据查找搜索,该文件在我的 EC2 机器上不存在。

我也试过在.ebextensions目录中创建一个配置文件,但这也不起作用。

我尝试做的主要事情是在尝试访问 http 地址时将用户定向到 https。非常感谢任何指针或建议,谢谢!

编辑:我正在使用运行 Python 3.4(预配置 - Docker)的 64 位 Debian jessie v1.4.1

amazon-web-services elastic-beanstalk

13
推荐指数
2
解决办法
2万
查看次数