由于不存在RDS,AWS Elastic Beanstalk环境终止失败

时间:2018-06-05 19:33:48

标签: amazon-web-services elastic-beanstalk amazon-rds

我通过向导创建了一个Elastic Beanstalk,它创建了一个我没有使用的Amazon RDS数据库,因为我们的数据库实例位于Elastic Beanstalk之外的不同RDS中。

我删除了导致环境不稳定的RDS实例,我们再也无法使用它了。然而,我们创造了一个新的环境,一切都成功了。

现在,我正在尝试终止其他我们无法使用的Beanstalk,但它仍然无法终止。据我所知,似乎在创建RDS时,保留设置为“拍摄快照”,现在RDS不存在,它无法采取快照并无法终止环境。

我需要做的就是摆脱这种环境,因为它只是坐在那里。我该如何解决这个问题?

作为参考,这是错误日志的样子:

2018-06-05 14:00:41 UTC-0500    ERROR   Stack deletion failed: The following resource(s) failed to delete: [AWSEBRDSDatabase].
2018-06-05 14:00:41 UTC-0500    ERROR   Deleting RDS database named: aa1ipjn4c8bwak9 failed Reason: DBInstance aa1ipjn4c8bwak9 not found. (Service: AmazonRDS; Status Code: 404; Error Code: DBInstanceNotFound; Request ID: f8f17442-bd41-4188-9c7e-9408a5398a92)
2018-06-05 14:00:24 UTC-0500    INFO    rebuildEnvironment is starting.
2018-06-01 14:21:01 UTC-0500    ERROR   Stack deletion failed: The following resource(s) failed to delete: [AWSEBRDSDatabase].
2018-06-01 14:21:01 UTC-0500    ERROR   Deleting RDS database named: aa1ipjn4c8bwak9 failed Reason: DBInstance aa1ipjn4c8bwak9 not found. (Service: AmazonRDS; Status Code: 404; Error Code: DBInstanceNotFound; Request ID: 0dba0c59-473f-4814-a6dd-2af7847be6c0)

4 个答案:

答案 0 :(得分:5)

您可以创建名为aa1ipjn4c8bwak9的新RDS实例,然后删除环境。当我从默认的ELB切换到ALB时,我不得不做类似的事情。

我希望EB不会默认使用环境创建数据库 - 在任何类型的生产环境中,这几乎肯定是一个坏主意。

答案 1 :(得分:0)

我遇到了与安全组相同的问题。我能够通过重建环境来删除环境。

步骤:

  1. 重建环境
  2. 在弹性beanstalk右上角的Actions下拉菜单中,点击重建环境选项

    注意:这可能需要一些时间才能完成

    1. 终止环境
    2. 在相同的操作下拉菜单下,点击终止环境

      P.S: Screenshot of Actions drop down

答案 2 :(得分:0)

增加我们的经验,以防万一。

由于终止RDS实例(由于RDS快照已用完)而无法终止RDS实例,因此正常终止环境失败。 (从理论上讲,作为解决方法,可以提高该上限...)。我们手动终止了RDS实例。我们仍然无法终止环境。检查CloudFormation控制台(“资源”选项卡),我们看到一个状态为DELETE_FAILED的AWSEBSecurityGroup和AWSEBLoadBalancerSecurityGroup。在某些情况下,“安全组”控制台中针对该环境列出了2磅的安全组(如果该操作涉及交换LB,并且故障在旧的LB被拆除之前发生)。密钥是 ONE ,它们依赖于孤立的RDS安全组(组名前缀='rds-awseb')。交互地,似乎别无选择,只能尝试删除两者。为您提供了查看依赖项的链接-对于其中之一,依赖项将是rds安全组。单击进入安全组控制台,然后将其删除。完成后,我们可以从CloudFormation控制台中删除堆栈(这留下了僵尸EB环境),或者(更好)从EB控制台或使用CLI终止EB环境。根据顺序,发现由于无法终止当前丢失的RDS实例,EB终止仍然失败。在这种情况下,可以从CF控制台删除堆栈(在提示时单击“保留”)- THEN EB终止成功。一定要确保EB终止,因为在CF堆栈删除完成后,通常还会删除其他资源。

答案 3 :(得分:0)

  1. 打开AWS CloudFormation控制台。

  2. 在导航窗格中,选择堆栈。

  3. 在“堆栈名称”列中,选择要删除的Elastic Beanstalk环境的堆栈。

注意:在堆栈的“状态”列中,您应该看到DELETE_FAILED。

提示:您可以通过验证AWS CloudFormation控制台的Description列中的环境ID是否与Elastic Beanstalk环境的环境ID匹配来识别堆栈。

  1. 选择删除。

  2. 在弹出窗口中,选择“要保留的资源-可选”部分中的AWSEBRDSDatabase复选框,然后选择“删除堆栈”。

来源:-AWS Knowledge Centre