由于 RDS 不存在,AWS Elastic Beanstalk 环境终止失败
AWS Elastic Beanstalk Environment termination failing due to non-existent RDS
我通过向导创建了一个 Elastic Beanstalk,它创建了一个我没有使用的 Amazon RDS 数据库,因为我们的数据库实例位于 Elastic Beanstalk 之外的不同 RDS 中。
我删除了导致环境不稳定的RDS实例,我们不能再使用它了。但是,我们创建了一个新环境并且一切正常。
现在,我正在尝试终止我们无法使用的另一个 Beanstalk,但它一直无法终止。据我所知,似乎在创建 RDS 时,保留设置为 'take a snapshot',现在 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)
我在安全组方面遇到过同样的问题。我能够通过重建环境来删除环境。
步骤:
- 重建环境
在 elastic beanstalk 右上角的 Actions 下拉菜单下,单击 Rebuild Environment 选项
注意:这可能需要一些时间才能完成
- 终止环境
在相同的操作下拉列表中单击 终止环境
P.S:
Screenshot of Actions drop down
您可以创建一个名为 aa1ipjn4c8bwak9
的新 RDS 实例,然后删除该环境。当我从默认 ELB 切换到 ALB 时,我不得不做类似的事情。
我希望 EB 没有默认使用环境创建数据库 - 在任何类型的生产环境中,这几乎肯定是个坏主意。
添加我们的经验以防有帮助。
由于 RDS 快照已达到极限而无法终止 RDS 实例,因此正常终止环境失败。 (理论上,作为一种解决方法,可以达到并提高该限制......)。我们手动终止了 RDS 实例。我们仍然无法终止环境。检查 CloudFormation 控制台(资源选项卡),我们看到 AWSEBSecurityGroup 和 AWSEBLoadBalancerSecurityGroup 的状态均为 DELETE_FAILED。在某些情况下,环境的安全组控制台中列出了 2 lb 安全组(如果操作涉及交换 LB,并且在拆除旧的 LB 之前发生故障)。关键是 ONE 它们依赖于孤立的 RDS 安全组(组名前缀 = 'rds-awseb')。交互地,似乎别无选择,只能尝试同时删除两者。系统会向您提供 link 以查看依赖项 - 其中一个依赖项将是 rds 安全组。单击进入安全组控制台并将其删除。一旦它消失了,我们就可以从 CloudFormation 控制台删除堆栈(留下僵尸 EB 环境)或(更好)从 EB 控制台或使用 CLI 终止 EB 环境。根据顺序,发现 EB 终止仍然失败,因为未能终止现在丢失的 RDS 实例。在这种情况下,可以从 CF 控制台删除堆栈(出现提示时单击 'retain')- THEN EB 终止成功。请务必执行 EB 终止,因为当 CF 堆栈删除完成时,通常还有其他资源未删除。
打开 AWS CloudFormation 控制台。
在导航窗格中,选择堆栈。
在堆栈名称列中,select 您要删除的 Elastic Beanstalk 环境的堆栈。
注意:在堆栈的“状态”列中,您应该看到 DELETE_FAILED。
提示:您可以通过验证 AWS CloudFormation 控制台中描述列中的环境 ID 与您的 Elastic Beanstalk 环境的环境 ID 匹配来识别您的堆栈。
选择删除。
在pop-upwindow,selectResources to retain - optional部分的AWSEBRDSDatabase复选框,然后选择Delete Stack。
来源:- AWS Knowledge Centre
我首先删除了我的一个 EBS 环境正在使用的 RDS。
然后我删除了 Cloudformation 任务。
然后删除了 EBS 应用程序并自动删除了 EBS 环境。
我通过向导创建了一个 Elastic Beanstalk,它创建了一个我没有使用的 Amazon RDS 数据库,因为我们的数据库实例位于 Elastic Beanstalk 之外的不同 RDS 中。
我删除了导致环境不稳定的RDS实例,我们不能再使用它了。但是,我们创建了一个新环境并且一切正常。
现在,我正在尝试终止我们无法使用的另一个 Beanstalk,但它一直无法终止。据我所知,似乎在创建 RDS 时,保留设置为 'take a snapshot',现在 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)
我在安全组方面遇到过同样的问题。我能够通过重建环境来删除环境。
步骤:
- 重建环境
在 elastic beanstalk 右上角的 Actions 下拉菜单下,单击 Rebuild Environment 选项
注意:这可能需要一些时间才能完成
- 终止环境
在相同的操作下拉列表中单击 终止环境
P.S: Screenshot of Actions drop down
您可以创建一个名为 aa1ipjn4c8bwak9
的新 RDS 实例,然后删除该环境。当我从默认 ELB 切换到 ALB 时,我不得不做类似的事情。
我希望 EB 没有默认使用环境创建数据库 - 在任何类型的生产环境中,这几乎肯定是个坏主意。
添加我们的经验以防有帮助。
由于 RDS 快照已达到极限而无法终止 RDS 实例,因此正常终止环境失败。 (理论上,作为一种解决方法,可以达到并提高该限制......)。我们手动终止了 RDS 实例。我们仍然无法终止环境。检查 CloudFormation 控制台(资源选项卡),我们看到 AWSEBSecurityGroup 和 AWSEBLoadBalancerSecurityGroup 的状态均为 DELETE_FAILED。在某些情况下,环境的安全组控制台中列出了 2 lb 安全组(如果操作涉及交换 LB,并且在拆除旧的 LB 之前发生故障)。关键是 ONE 它们依赖于孤立的 RDS 安全组(组名前缀 = 'rds-awseb')。交互地,似乎别无选择,只能尝试同时删除两者。系统会向您提供 link 以查看依赖项 - 其中一个依赖项将是 rds 安全组。单击进入安全组控制台并将其删除。一旦它消失了,我们就可以从 CloudFormation 控制台删除堆栈(留下僵尸 EB 环境)或(更好)从 EB 控制台或使用 CLI 终止 EB 环境。根据顺序,发现 EB 终止仍然失败,因为未能终止现在丢失的 RDS 实例。在这种情况下,可以从 CF 控制台删除堆栈(出现提示时单击 'retain')- THEN EB 终止成功。请务必执行 EB 终止,因为当 CF 堆栈删除完成时,通常还有其他资源未删除。
打开 AWS CloudFormation 控制台。
在导航窗格中,选择堆栈。
在堆栈名称列中,select 您要删除的 Elastic Beanstalk 环境的堆栈。
注意:在堆栈的“状态”列中,您应该看到 DELETE_FAILED。
提示:您可以通过验证 AWS CloudFormation 控制台中描述列中的环境 ID 与您的 Elastic Beanstalk 环境的环境 ID 匹配来识别您的堆栈。
选择删除。
在pop-upwindow,selectResources to retain - optional部分的AWSEBRDSDatabase复选框,然后选择Delete Stack。
来源:- AWS Knowledge Centre
我首先删除了我的一个 EBS 环境正在使用的 RDS。 然后我删除了 Cloudformation 任务。 然后删除了 EBS 应用程序并自动删除了 EBS 环境。