首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能删除已删除的ENI - RDS

不能删除已删除的ENI - RDS
EN

Stack Overflow用户
提问于 2017-08-15 13:24:42
回答 1查看 897关注 0票数 6

我试图将代码部署到ElasticBeanstalk环境中。每次我尝试将这个分支部署到环境中时,EB会杀死所有实例、ELB、RDS等,并尝试重新构建,但是失败了。这会使环境处于糟糕的状态,因为它会删除RDS,但不会删除安全组或ENI。当我尝试手动删除安全组时,它会失败,说明存在依赖对象。

我将其追溯到网络接口,但当我试图分离它(甚至强制分离)时,我得到了一个错误,我没有权限。这个ENI应该与RDS实例一起删除,但它不是。现在我根本无法摆脱环境,也无法重建环境。

我不知道为什么这个应用程序会导致环境在每个部署时重新创建所有的东西,因为EC2实例消失了,然后当它们重新加载时,它们会被添加到ELB中,但是,ELB无法进行健康检查,因此它们经常被停用,并且环境处于死状态。如果我能以某种方式看到导致这个应用程序崩溃的环境的日志,那就太好了。

让ElasticBeanstalk删除所有实例(包括RDS )对于部署来说是不可接受的,因为我们必须不断地重新播种这个实例,更不用说如果将它部署到生产中,它将删除所有的生产数据,而我们不能这样做。

有没有办法了解部署过程中发生了什么,以及为什么会发生这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-29 10:22:11

弹性豆柄在幕后使用CloudFormation。通过识别正确的堆栈(根据日志以awseb-e-j5zfptidfe-stack为前缀)并删除它们,或者至少删除带有ENI的堆栈,您将能够删除整个环境。

您还需要从ElasticBeanstalk中删除环境。这会重设一切。如果存在依赖的堆栈,比如安全组。最好的解决方案是读取消息以确定依赖项并首先清理这些依赖项。

如果您知道想要保存数据,那么最好不要将RDS包含在弹性豆茎堆栈中。单独创建它,只需将连接详细信息传递给堆栈。AWS提供详细说明。简短的摘要如下:

  1. 为数据库创建一个安全组
  2. 使用安全组创建RDS数据库
  3. 将数据库连接参数作为环境变量添加到您的EB堆栈中。
  4. 将EC2安全组添加到数据库安全组,作为数据库中允许的通信源。

终于来了。您需要确定为什么在堆栈中终止这些实例。看起来他们并没有变得“健康”。禁用Ignore health check,这是弹性豆柄部署的一个选项。

这将导致环境中的EC2实例标记为“不健康”。然后,您可以使用所需的任何工具来诊断为什么EC2实例没有正确地响应health checks并解决问题。

EC2实例失败的原因可能有很多。检查本身可能配置错误,安全组可能出错,或者EC2实例本身上的服务可能没有按应有的方式响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45693788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档