1

我正在尝试将 Ruby-on-Rails 应用程序部署到 AWS Beanstalk。战争是在 Jenkins 中使用 warble 生成的,然后将战争文件复制到我们的 AWS S3 存储桶中。

我正在使用 AWS Beanstalk 命令行工具来创建 beanstalk 应用程序、应用程序版本和环境。第一个版本已正确部署。

然后我创建一个新的应用程序版本,并尝试使用新版本更新环境。新版本未部署。在事件中,抛出以下错误:

Encountered errors while attempting to deploy version to 1 running EC2 instances

我也尝试过从头开始创建所有内容,但仍然会引发上述错误的第二个版本。

注意:我们使用的是自定义 AMI,这是我们调整并创建图像供我们使用的 BS AMI。

有人可以帮我解决这个问题吗?

谢谢

诺曼 A.

4

1 回答 1

2

我是根据我的测试来回答这个问题的,所以任何寻找解决方案的人都可能会发现它很有用。

如问题中所述,我使用的是自定义 beanstalk ami [Tomcat 7 stack]。定制是按照以下步骤完成的:

  1. 创建 Beanstalk 应用程序,为此应用程序创建一个版本,并通过传递 KeyPair 之类的选项来启动 beanstalk 环境(不是自定义环境,默认由 AWS 提供),这样您就可以使用它们来 ssh 到实例中。

  2. 记下上述实例的 AMI-id 并启动此 AMI 的常规 EC2(非 Beanstalk)实例。

  3. 根据您的需要自定义 EC2 实例,并在完成后创建此实例的 EBS 映像。停止此实例,一旦您对图像感到满意,您可以稍后终止它。

  4. 也终止 Beanstalk 实例。

  5. 启动新的 Beanstalk 环境,但这次传递在步骤 3 中创建的图像的这个 ami-id。

我已经为 tomcat 6 和 7 创建了自定义的 beanstalk 图像。对于我的问题,我发现问题是在我为 tomcat 7 使用自定义 ami 时发生的。更新不起作用。但是当我使用 beanstalk 默认实例(不是我的自定义图像)时,更新工作正常。

但是,使用 tomcat 6 自定义映像,更新工作得很好。因此,问题似乎与 Tomcat 7 自定义的 AWS Beanstalk 默认 AMI 有关。

我现在将此标记为已回答。

——诺曼 A。

于 2012-05-13T09:24:32.480 回答