Questions tagged «elastic-beanstalk»

AWS Elastic Beanstalk是一项PaaS(平台即服务)服务,使您可以在AWS云中快速部署和管理应用程序。Elastic Beanstalk处理容量配置,负载平衡,自动扩展和应用程序运行状况监视的部署详细信息。

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


6
如何将现有RDS实例关联到Elastic Beanstalk环境?
在创建Elastic Beanstalk环境之前,我已经创建了RDS实例。两者可以正常工作,但是我希望将它们链接在一起,并且可以通过RDS_*环境变量访问RDS参数。 Elastic Beanstalk配置页面显示: 尽管第一个链接就地创建了RDS实例并将其链接到当前环境,但是第二个链接仅重定向到此文档页面。,不幸的是,它仅说明了如何创建新的RDS实例,但没有说明如何链接现有实例。 如何将现有RDS实例关联到我的Elastic Beanstalk环境?

1
如何在AWS Elastic Beanstalk上向php.ini添加指令?
我想将这些PHP设置添加到我的Elastic Beanstalk环境中: upload_max_filesize = 64M post_max_size = 64M 这些选项无法设置option_settings在.ebextensions: Namespace | Extend ---------------------------------------------|------- aws:elasticbeanstalk:application:environment | Yes aws:elasticbeanstalk:container:php:phpini | No 如何php.ini在Elastic Beanstalk容器中添加自定义设置?

3
自动为AWS Elastic Beanstalk应用安全更新
自最早以来,我就一直是Heroku的粉丝。但是我喜欢AWS Elastic Beanstalk使您可以更好地控制实例的特征这一事实。我最喜欢Heroku的一件事是我可以部署应用程序而不必担心对其进行管理。我假设 Heroku确保及时应用所有操作系统安全更新。我只需要确保我的应用程序安全即可。 我对Beanstalk的初步研究表明,尽管它为您构建和配置了实例,但是此后它又转向了更为手动的管理过程。安全更新不会自动应用于实例。似乎有两个方面值得关注: 新的AMI版本-随着新的AMI版本问世,我们似乎希望运行最新版本(可能是最安全的)。但是我的研究似乎表明,您需要手动启动新的设置以查看最新的AMI版本,然后创建一个新环境以使用该新版本。是否有更好的自动化方法将您的实例转换为新的AMI版本? 在两个发行版之间,将发布针对软件包的安全更新。似乎我们也要升级它们。我的研究似乎表明人们会安装命令以偶尔运行yum更新。但是由于新实例是根据使用情况创建/销毁的,因此新实例似乎并不总是具有更新(即,从创建实例到第一次执行yum更新之间的时间)。因此,有时您会遇到未打补丁的实例。而且,在应用新的AMI版本之前,您还将不断使实例自我修补。我的另一个担心是,也许这些安全更新没有经过Amazon自己的审查(就像AMI版本一样),并且可能破坏了我的应用程序以自动更新它们。我知道Dreamhost曾经中断了12个小时,因为他们完全自动地应用了debian更新,而没有进行任何审查。我想确保同一件事不会发生在我身上。 所以我的问题是,亚马逊是否提供一种提供像Heroku这样的完全托管PaaS的方式?还是AWS Elastic Beanstalk真的更多只是一个安装脚本,而后您可以自己(除了它们提供的监视和部署工具之外)?

6
如何在AWS Elastic Beanstalk中升级到最新的AMI?
我正在AWS Elastic Beanstalk上运行应用程序,并且如果要使用最新的AMI,则似乎需要创建一个新环境。 如果我知道最新的AMI ID是什么,则可以在环境配置中对其进行更新。 是否有地方可以找到最新的Elastic Beanstalk AMI的ID,或者甚至更好,是否可以在每次推出新版本时自动将实例替换为新版本?

2
与其他部署策略相比,AWS Elastic Beanstalk的优缺点是什么?
一般而言,我对整个Netflix OSS堆栈和部署还很​​陌生。作为我当前所学知识水平的背景,我的主要角色是担任前端应用工程师。但是,我很喜欢操作方面的内容,因此我试图为新项目设置新的部署策略和工具。 我们的目标 超级轻松的部署(我们想按一下按钮以更新生产) 自动化部署到测试环境(使用Jenkins) 易于维护(我们有一个要编写的应用程序,不想花时间摆弄生产问题) 能够处理面向服务的体系结构(许多小型应用,各种语言和数据存储) 足够的灵活性以确保我们很快就不必更改策略(我们已经在努力摆脱RightScale) 如果可以省下一些麻烦,我们可以增加一些初始设置时间。 因此,按照这些思路,我一直在听播客,观看Ops演讲,阅读大量博客文章,并根据我们的目标以及我认为是最佳实践的想法,我们开始使用Asgard,将我们的包装放入罐子,然后放入AMI。 我们已经计划了所有这一切,并且喜欢该流程与使用Chef服务器和即时聚合实例相比的优势(由于时间表有限且对Chef服务器工作流程缺乏理解,我们认为这很容易出错)。但是,一位同事自己环顾四周,觉得Elastic Beanstalk满足了我们的需求。 我研究了它,并使用WAR文件和附加的RDS数据库启动了一个测试环境。似乎一切正常,我相信我们可以通过AWS API使用Jenkins将部署自动化到测试环境。似乎很简单...也许太简单了。 我想知道的是,有什么收获?如果Elastic Beanstalk如此简单和有效,为什么不谈论更多呢?对于两种不同的部署策略,我很难找到足够的客观见解和事实,因此我想四处询问。 您是否使用Elastic Beanstalk?如果是这样,为什么和什么因素导致了这一决定?你喜欢什么和不喜欢什么? 如果您不使用而是考虑使用Elastic Beanstalk,则使用什么,为什么不使用Elastic Beanstalk? SOA的基于Elastic Beanstalk的部署策略的优缺点是什么?也就是说,Elastic Beanstalk是否可以与许多相互依赖的小型应用程序很好地工作?

1
Elastic Beanstalk的环境变量是否适合存储秘密值?
我已将Django应用程序部署到Elastic Beanstalk,目的是使用其环境变量配置界面来存储我的API密钥,而不是将其存储在我的源代码中(如此处/programming//a/17878600所述)。 完成此操作后,我发现Beanstalk所谓的环境变量实际上并不是shell环境变量(如此处/programming//a/24564832/378638所述),并存储在实例中的配置文件中(如在此处描述/programming//a/24566283/378638)。 对我来说,这似乎是一个安全问题。这是否违反了将秘密密钥保留在源头之外的目的?我了解它们已不在存储库中,但仍可在实例上访问。 我会误会风险吗?我是继承人,所以是sysadmin,所以请在这里原谅我的无知。我是否应该仅通过配置文件将Beanstalk变量作为外壳环境变量加载并继续运行,因为该文件只能通过root用户访问,还是我的关注点有效?谢谢。

2
如何增加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]. 是否可以增加此超时时间?我在环境设置中找不到该选项。

4
弹性Beanstalk力https
我在通过AWS Elastic Beanstalk部署的网站上强制使用HTTPS时遇到问题。 这是使用EmberJS的前端应用程序。我已经绕了很多天,试图弄清楚如何将HTTP流量重定向到https。我在我的EC2计算机上使用Amazon Linux AMI。 我得出的结论(仍然不确定这是否正确)是我强制HTTPS不在Elastic Beanstalk中。我通过我的Elastic Beanstalk负载均衡器允许HTTP和HTTPS,并尝试在服务器上重定向。 这是我遇到问题的地方。我发现有很多有关重写规则的答案,没有答案的答案mod_rewrite都是基于X-Forwarded-ProtoHeader的,但是根据查找搜索,该文件在我的EC2机器上不存在。 我也尝试在.ebextensions目录中创建一个配置文件,但这也不起作用。 我想做的主要事情是让用户在尝试访问http地址时被定向到https。任何指针或建议都非常感谢,谢谢! 编辑:我正在使用运行Python 3.4的64位Debian jessie v1.4.1(预配置-Docker)

2
授予EC2 IAM角色对S3存储桶的读取权限
我有一个AWS Elastic Beanstalk Rails应用程序,正在通过配置脚本进行配置,以从S3存储桶中提取一些文件。启动应用程序时,我在日志中始终收到以下错误(出于安全性考虑,存储桶名称已更改): Failed to retrieve https://s3.amazonaws.com/my.bucket/bootstrap.sh: HTTP Error 403 : <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message> 配置文件: packages: yum: git: [] files: /opt/elasticbeanstalk/hooks/appdeploy/pre/01a_bootstrap.sh: mode: "00755" owner: root group: root source: https://s3.amazonaws.com/my.bucket/bootstrap.sh 设置了具有aws-elasticbeanstalk-ec2-roleIAM角色作为实例角色的Elastic Beanstalk环境。该角色具有以下策略: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::my.bucket/*" } …

1
我的AWS SSL证书未出现在Elastic Beanstalk的控制台中
我使用AWS的服务为指向Elastic Beanstalk实例的子域创建了新的SSL证书。它正确显示在证书管理器中... 但它不会出现在EB实例的Load Balancer下拉列表中... 根据文档(配置Elastic Beanstalk环境的负载均衡器以终止HTTPS),我需要做的只是“从SSL证书ID下拉菜单中选择您的证书”,但是它还不存在。 我尝试使用CLI通过.config文件添加SSL证书,但出现以下错误: 错误:服务:AmazonCloudFormation,消息:名为“ awseb-e-upxkf5kr8b-stack”的堆栈中止了操作。当前状态:'UPDATE_ROLLBACK_IN_PROGRESS'原因:空错误:更新名为:awseb-eu-AWSEBLoa-xxx的负载均衡器失败原因:找不到密钥的服务器证书:arn:aws:acm:eu-west-1:xxx:certificate / xxx 我做错了什么?

4
通过未配置弹性IP的Elastic Beanstalk启动实例
我正在创建一个工具,通过ElasticBeanstalk将Docker映像部署到EC2,因此开发团队可以快速演示其工作,而无需合并。我不希望为这些应用启用弹性IP,因为它们寿命很短。 我之所以这样问,是因为如果我的工具构建的应用程序超过5个(并且速度很快),则任何新应用程序都会失败,因为无法为新应用程序分配弹性IP。这是因为一个AWS账户通常最多具有5个可用的IP。我可以转到aws Web控制台,然后在实例上选择“取消关联弹性IP地址”(请参见下文),然后ec2实例将在几分钟后获得一个新的IP。这就是我想要的,但是我想以编程方式完成它,并且宁愿在没有该应用程序的情况下启动该应用程序,也不想在创建实例后立即执行。 是否可以使用配置选项为新实例禁用弹性IP? 我正在使用节点aws-sdk,但是任何语言的任何技巧都可以。 我正在创建m1.small单个实例。 如果启动时无法执行此操作,则必须使用EC2.disassociateAddress函数将弹性IP与实例解除关联。

2
ElasticBeanstalk:从配置文件设置实例类型和安全组
我在通过.ebextensions/*.config应用程序捆绑包根目录中的文件定义实例类型和安全组时遇到麻烦。 简要地说,我有两个看起来像这样的配置文件: .ebextensions/01-options.config: option_settings: [...] - namespace: 'aws:elasticbeanstalk:application:environment' option_name: CONFIG_FILE_ONE value: '01-options.config' [...] 和.ebextensions/02-app-test-env.config: option_settings: - namespace: 'aws:elasticbeanstalk:application:environment' option_name: NODE_ENV value: 'Test' - namespace: 'aws:elasticbeanstalk:application:environment' option_name: CONFIG_FILE_TWO value: '02-app-test-env' - namespace: aws:autoscaling:launchconfiguration option_name: InstanceType value: t2.micro - namespace: aws:autoscaling:launchconfiguration option_name: SecurityGroups value: sg-ys75dfs2 现在,正在设置环境变量,所以我知道它正在读取两个配置文件,但是未设置安全组和实例类型-即使在重建环境时,仍然像t1.micro使用默认安全组一样创建实例-我的设置没有被应用。 我在这里想念什么?如何使用.config文件定义实例类型?

1
Elastic Beanstalk停留超过12小时
我有一个因以下错误而停滞的EB应用程序:环境更新活动失败。原因:内部故障。我无法中止任何事情,也无法更改任何配置。.我不知道该怎么办,因为我所做的每一件事都说:无法中止environment-xxxxxx的当前环境操作:名为environment-xxxx的环境处于无效状态此操作的状态。必须等待部署。 我想销毁该应用程序或删除所有内容以重新启动,但是我不能这样做。 有人知道如何解锁吗? 提前致谢!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.