【问题标题】:I can't delete my VPC我无法删除我的 VPC
【发布时间】:2022-02-23 07:03:26
【问题描述】:

我想删除我的一个 VPC,但是当我尝试删除时,出现了这个错误。

我们无法删除以下 VPC (vpc-8737bde2 (10.100.0.0/16) | Khoi-VPC) vpc 'vpc-8737bde2' 有依赖关系,无法删除。 (服务:AmazonEC2;状态代码:400;错误代码:DependencyViolation;请求 ID:e115d5ca-dd34-4cbb-a439-541b0dc225da)

好的,我检查了安全组,发现一个组的描述中包含我的 VPC 名称,所以我认为这是问题所在。但这一次错误又出现了。

我们无法删除以下安全组 (sg-a43c0dc1)

指定的组:“sg-a43c0dc1”名称:“default”不能被用户删除(服务:AmazonEC2;状态代码:400;错误代码:CannotDelete;请求ID:b21c425c-25c7-46e7-baeb-9610710afeca )

我不知道如何删除我的 VPC,有人知道吗?

【问题讨论】:

  • 我怀疑它不是那个特定的安全组,它被记录为你不能删除的东西:docs.aws.amazon.com/AmazonVPC/latest/UserGuide/…
  • 这是默认 VPC 吗?
  • 这不是默认的 VPC,我检查了所有我能找到的东西,但没有找到任何东西。

标签: amazon-web-services vpc


【解决方案1】:

大多数使用 VPC 的 AWS 应用程序不会在 VPC 控制台下显示其使用情况。 (更新)虽然 AWS 控制台说会分离资源,但您需要检查其他 AWS 服务使用的特定 VPC 资源。

这里有一些:

  1. EC2 实例: 任何 EC2 实例的网络接口安全组子网附加到 VPC 子网。你可以选择

    • 终止(删除)EC2 实例,或
    • 将实例启动到“虚拟 VPC”或公共子网中
  2. RDS数据库安全组子网 创建 RDS 并附加到 VPC 时,您必须创建一个附加到该 VPC 的数据库子网组。即使您删除了 RDS,数据库子网组也会保留。所以你需要去控制台删除DB子网组(或者使用aws cli删除)

  3. 任何其他使用 VPC 的 AWS 服务

    • 只需回溯所有使用 VPC-id、VPC-Subnet-ID、安全组等的服务。

(经过测试@TheOne 指出 VPC 端点后更新)
4. VPC端点

删除VPC时无需担心的VPC内部的事情

  • 虚拟专用网关(控制台会将 VPG 与 VPC 分离)
  • VPN 附件
  • 互联网网关
  • 路由表

【讨论】:

  • 这很奇怪。 AWS 似乎会将 VPC Endpoint 与您要删除的 VPC id 分离。除非你在谈论 EC2 端点
  • 我确定它是 VPC 端点。在 AWS 支持者告诉我这件事之前,我没有注意到 VPC 端点。
  • 哦,看来我混淆了 VPG 分离和 VPC 端点。是的,你需要删除 VPC 端点,我只是用我的 vpc 创建脚本确认它:-D TQVM
【解决方案2】:

在删除 VPC 之前,您必须终止在 VPC 中运行的所有实例。

如果您使用 VPC 控制台删除 VPC,它也会删除与 VPC 关联的资源,例如子网、安全组、网络 ACL、DHCP 选项集、路由表和 Internet 网关。但它不会自动清理其中的 ec2 实例

因此没有手动删除安全组的请求。

要终止您的实例,释放您的弹性 IP 地址并删除您的 VPC

  1. 通过https://console.aws.amazon.com/ec2/ 打开 Amazon EC2 控制台。

  2. 在导航窗格中,选择实例。

  3. 选择您的实例,选择操作,然后选择实例状态,然后选择终止。

  4. 在对话框中,展开释放附加的弹性 IP 部分,然后选中弹性 IP 地址旁边的复选框。选择是,终止。

  5. https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。

  6. 在导航窗格中,选择您的 VPC。

  7. 选择 VPC,选择操作,然后选择删除 VPC。

  8. 当提示确认时,选择是,删除。

参考:

Clean Up VPC

【讨论】:

  • 我确定没有与我的 VPC 相关的正在运行的实例。我创建了 2 个 VPC,现在我只使用第二个 VPC,与我要删除的第一个 VPC 相关的所有实例都已完全删除。所以我不知道下一步该怎么做。
  • NAT 网关呢?您也必须自己删除它们。我已经通过创建一个包含 NAT 网关(不是 NAT 实例)并且不运行 EC2 实例的 VPC 确认了这一点。与原始帖子中的错误相同。删除 NAT 网关,错误消失,VPC 正确删除。
  • 感谢您的更新。当我回答时,市场上还没有 NAT 网关。
  • @sheldonh 原来它与 VPC Endpoint 有关。我忘了删除那个。 :D
【解决方案3】:

来自AWS documentation

您可以随时删除您的 VPC。但是,您必须终止 VPC 中的所有实例,并首先删除所有 VPC 对等连接。当您使用 VPC 控制台删除 VPC 时,我们会删除其所有组件,例如子网、安全组、网络 ACL、路由表、互联网网关和 DHCP 选项。

但是,从documentationdelete-vpc 命令:

您必须先分离或删除与 VPC 关联的所有网关和资源,然后才能将其删除。例如,您必须终止 VPC 中运行的所有实例,删除与 VPC 关联的所有安全组(默认除外),删除与 VPC 关联的所有路由表(默认除外),等等。

因此,使用控制台与使用 AWS CLI 删除 VPC 存在不同的行为。

如果您使用控制台删除 VPC,您只需先终止/删除以下内容

  • VPC 中的 EC2 实例。

  • VPC 中的 RDS 实例。

  • VPC 对等连接

如果您使用 CLI 删除 VPC,您还需要分离/删除其他依赖资源:

  • 子网

  • 安全组(默认除外)

  • 路由表(默认除外)

  • RDS 安全组

  • 互联网网关

  • NAT 网关

  • VPC 终端节点

通过使用 VPC ID、关联的子网 ID 或关联的安全组 ID 在相应部分中搜索该资源类型,可以在 AWS 控制台中找到其中的许多资源。

【讨论】:

    【解决方案4】:

    在某些情况下,您应该检查负载平衡器。因此,当您删除该负载均衡器时,您可以执行这些删除操作。

    删除 VPC 可能有两种情况:

    1. 具有子网和网关的 VPC,但我们有负载平衡,所以对于 这个,我们应该遵循以下几点:

      1. 删除网关和子网
      2. 删除 VPC
    2. 带有子网、网关和负载均衡器的 VPC,为了删除它,我们 应该遵循这个东西:

      1. 删除负载均衡器(基于 VPC ID)
      2. 删除网关和子网,
      3. 删除 VPC

    【讨论】:

      【解决方案5】:

      我只想将弹性文件系统添加到删除清单中,这就是我的情况。

      【讨论】:

        猜你喜欢
        • 2018-08-07
        • 2019-09-01
        • 1970-01-01
        • 2015-11-28
        • 1970-01-01
        • 2022-01-27
        • 1970-01-01
        • 2021-05-15
        • 1970-01-01
        相关资源
        最近更新 更多