gpt4 book ai didi

amazon-web-services - 无法删除 ENI - RDS 已删除

转载 作者:行者123 更新时间:2023-12-03 14:58:26 31 4
gpt4 key购买 nike

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

我将其追溯到网络接口(interface),但是当我尝试将其分离(甚至强制分离)时,我收到一个我没有权限的错误。此 ENI 应该已与 RDS 实例一起删除,但事实并非如此。现在我根本无法摆脱环境,也无法重建它。

我不确定为什么这个应用程序会导致环境在每次部署时尝试在 EC2 实例消失时重新创建所有内容,然后当它们重新加载时,它们会被添加到 ELB,但是 ELB 无法进行健康检查,所以它们不断停止服务,环境处于死状态。如果我能以某种方式查看导致环境与此应用程序崩溃的原因的日志,那就太好了。

让 ElasticBeanstalk 删除包括 RDS 在内的所有实例对于部署来说是 Not Acceptable ,因为我们必须不断地重新播种,更不用说如果它曾经部署到生产环境中,它会删除​​所有生产数据,而我们不能这样做。

有没有办法查看部署期间发生了什么以及为什么会发生这种情况?

最佳答案

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

您还需要从 ElasticBeanstalk 中删除环境。这将重置一切。如果有依赖堆栈 - 就像安全组一样。最好的解决方案是阅读消息以确定依赖关系并首先清理它们。

如果您知道要保留其中的数据,最好不要将您的 RDS 包含在弹性 beanstalk 堆栈中。单独创建它,然后将连接详细信息传递到您的堆栈。 AWS提供detailed instructions .一个简短的总结是:

  • 为数据库创建安全组
  • 使用安全组
  • 创建 RDS 数据库
  • 将数据库连接参数作为环境变量添加到您的 EB 堆栈
  • 将 EC2 安全组添加到您的数据库安全组,作为允许的数据库流量来源。

  • 最后。您需要确定实例在您的堆栈中被终止的原因。看起来他们并没有变得“健康”。禁用 Ignore health check这是 Elastic Beanstalk 部署的一个选项。

    这应该会导致 EC2 实例标记为“不健康”的环境。然后,您可以使用所需的任何工具来诊断 EC2 实例未正确响应 health checks 的原因。并解决问题。

    EC2 实例未能通过运行状况检查的原因可能有很多。检查本身可能配置不正确,安全组可能错误,或者 EC2 实例本身上的服务可能没有按应有的方式响应。

    关于amazon-web-services - 无法删除 ENI - RDS 已删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45693788/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com