Suppression d'un VPC et de ses ressources

Pour pouvoir supprimer un IBM Cloud® Virtual Private Cloud dans la console IBM Cloud, vous devez supprimer toutes les passerelles publiques, les sous-réseaux et les ressources connectées du VPC.

Suppression d'un VPC à l'aide de la console IBM Cloud

Pour supprimer un VPC via la console :

  1. Recherchez tous les sous-réseaux figurant dans le VPC. Cliquez sur VPC dans le panneau de navigation et sélectionnez votre cloud privé virtuel.

  2. Sur la page des détails du VPC, accédez à la liste des sous-réseaux de ce VPC et sélectionnez un sous-réseau pour en afficher les détails.

  3. Supprimez toutes les ressources connectées à ce sous-réseau. Dans le panneau de navigation, cliquez sur Ressources connectées. Sélectionnez chaque instance attachée, équilibreur de charge et passerelle VPN pour accéder à sa page de détails. Dans le menu Actions , icône Actions, sélectionnez Supprimer. Les instances connectées doivent être arrêtées pour que vous puissiez les supprimer.

    Bien que le statut de la ressource passe immédiatement à Suppression, l'opération de suppression peut prendre jusqu'à 30 minutes. Le sous-réseau ne peut pas être supprimé tant qu'il y a encore des ressources connectées affichées dans la console.

  4. Une fois toutes les ressources associées supprimées, revenez à la page de détails du sous-réseau, puis cliquez sur l'icône de suppression.

  5. Une fois tous les sous-réseaux supprimés, revenez à la page de détails du VPC, puis cliquez sur l'icône de suppression. Le VPC et toutes les passerelles publiques éventuelles sont supprimés.

Suppression d'un VPC à l'aide de l'interface de ligne de commande d'IBM Cloud

Les exemples suivants montrent comment supprimer des ressources de votre IBM Cloud® Virtual Private Cloud, pour chaque ressource VPC, dans l'ordre recommandé.

Les faits clés suivants sont importants à retenir sur la suppression:

  • Un VPC ne peut pas être supprimé tant qu'il n'est pas vide.
  • Toutes les ressources qu'il contient doivent être supprimées pour que la ressource parent puisse être supprimée.
  • Si la ressource est en cours de suppression, son statut affiche deleting lorsqu'elle est affichée dans les requêtes de liste.
  • La plupart des demandes de suppression sont asynchrones, ce qui signifie que la ressource peut afficher le statut Suppression dans les requêtes de liste lorsqu'elle n'a pas été complètement supprimée.
  • Vous devez effectuer un sondage pour vous assurer que la ressource enfant ne figure plus dans la vue de liste avant de tenter de supprimer la ressource parent.

Si le statut de la ressource passe de deleting à failed, vous pouvez essayer de relancer la suppression de la ressource. Si vous ne parvenez pas à supprimer une ressource dont le statut est failed, contactez le support.

Étape 1 : Identifiez tous les sous-réseaux du VPC que vous souhaitez supprimer

Pour pouvoir supprimer un VPC, chacun de ses sous-réseaux doivent être supprimés. Pour obtenir l'ID du VPC que vous souhaitez supprimer, exécutez la commande suivante et repérez la valeur « ID » :

ibmcloud is vpcs

Sauvegardez l'ID du VPC dans une variable afin qu'il puisse être utilisé ultérieurement, par exemple :

vpc="0738-3524fef5-da35-4622-bf9a-31614964649d"

Pour obtenir la liste de tous les sous-réseaux figurant dans votre compte, exécutez la commande suivante :

ibmcloud is subnets

Examinez la valeur de VPC pour déterminer les sous-réseaux à supprimer. Sauvegardez l'ID du sous-réseau dans une variable afin qu'il puisse être utilisé ultérieurement, par exemple :

subnet="0738-d31ce469-9b0f-44e1-87ce-0fc77d8b0e53"

Si le VPC que vous souhaitez supprimer comporte plusieurs sous-réseaux, répétez ces étapes pour supprimer chaque sous-réseau.

Etape 2 : supprimez chaque sous-réseau du VPC

Supprimez toutes les passerelles VPN dans le sous-réseau, le cas échéant

Pour répertorier toutes les passerelles VPN de votre compte, exécutez la commande suivante :

ibmcloud is vpn-gateways

Pour chaque passerelle VPN du sous-réseau que vous voulez supprimer, exécutez la commande suivante, où $vpnid correspond à l'ID de la passerelle VPN.

ibmcloud is vpn-gateway-delete $vpnid

Le statut de la passerelle VPN passe immédiatement à deleting, mais elle apparaît toujours dans le résultat d'une requête de liste. La suppression d'une passerelle VPN peut prendre jusqu'à 30 minutes. Vous pouvez demander la suppression en parallèle d'autres ressources de sous-réseau en attendant que la passerelle VPN soit supprimée. Cependant, le sous-réseau ne peut pas être supprimé tant que la passerelle VPN et toutes les autres ressources du sous-réseau continuent à apparaître dans les résultats des requêtes de liste.

Supprimez tous les équilibreurs de charge dans le sous-réseau, le cas échéant.

Pour répertorier tous les équilibreurs de charge dans votre compte, exécutez la commande suivante :

ibmcloud is load-balancers

Pour chaque équilibreur de charge du sous-réseau que vous voulez supprimer, exécutez la commande suivante, où $lbid correspond à l'ID de l'équilibreur de charge.

ibmcloud is load-balancer-delete $lbid

Le statut de l'équilibreur de charge passe immédiatement à deleting, mais il apparaît toujours dans le résultat d'une requête de liste. La suppression d'un équilibreur de charge peut prendre jusqu'à 30 minutes. Vous pouvez demander la suppression en parallèle d'autres ressources de sous-réseau en attendant que l'équilibreur de charge soit supprimé. Cependant, le sous-réseau ne peut pas être supprimé tant que l'équilibreur de charge et toutes les autres ressources du sous-réseau continuent à apparaître dans les requêtes de liste.

Supprimez toutes les interfaces réseau dans le sous-réseau, le cas échéant

Une instance peut comporter plusieurs interfaces réseau et ces interfaces réseau peuvent appartenir à plusieurs sous-réseaux du VPC. Pour pouvoir supprimer un sous-réseau, il faut d'abord supprimer toutes les interfaces réseau figurant dans le sous-réseau.

Le seul moyen de supprimer une interface réseau dans un sous-réseau consiste à supprimer l'instance.

Pour répertorier toutes les interfaces réseau d'une instance, exécutez la commande suivante :

ibmcloud is instance-network-interfaces $vsi

Pour répertorier toutes les instances dans votre compte, exécutez la commande suivante :

ibmcloud is instances

Si vous supprimez toutes les instances dans le VPC, vous pouvez exécuter la commande suivante pour chaque instance du VPC, où $vsi correspond à l'ID de l'instance que vous souhaitez supprimer. Lorsque l'instance est supprimée, toutes les interfaces réseau des autres sous-réseaux, le cas échéant, sont automatiquement supprimées.

Les instances doivent être arrêtées pour pouvoir être supprimées. Pour arrêter une instance, exécutez la commande ibmcloud is instance-stop.

ibmcloud is instance-delete $vsi

Le statut de l'instance passe à deleting (suppression) immédiatement, mais l'instance apparaît toujours dans un résultat de requête de liste. La suppression d'une instance peut prendre jusqu'à 30 minutes.

Vous pouvez demander la suppression en parallèle d'autres ressources de sous-réseau en attendant que l'instance soit supprimée. Cependant, le sous-réseau ne peut pas être supprimé tant que l'instance et toutes les autres ressources du sous-réseau continuent à apparaître dans les résultats des requêtes de liste.

S'il existe une interface réseau secondaire dans le sous-réseau que vous tentez de supprimer, vous devez supprimer l'instance. Une interface réseau ne peut pas être supprimée de l'instance sans supprimer l'instance.

Supprimez le sous-réseau

Une fois que toutes les ressources à l'intérieur du sous-réseau ont été supprimées, ce qui signifie qu'elle ne sont pas renvoyées dans le résultat d'une requête de liste, exécutez la commande suivante pour supprimer le sous-réseau :

ibmcloud is subnet-delete $subnet

Le statut du sous-réseau passe à deleting (suppression) immédiatement, mais la suppression du sous-réseau et son retrait complet des requêtes de liste peuvent prendre quelques minutes.

Etape 3 : supprimez toutes les passerelles publiques dans le VPC, le cas échéant

Pour répertorier toutes les passerelles publiques dans votre compte, exécutez la commande suivante :

ibmcloud is public-gateways

Pour chaque passerelle publique dans le VPC que vous souhaitez supprimer, exécutez la commande suivante pour supprimer la passerelle publique, où $gateway correspond à l'ID de la passerelle publique.

ibmcloud is public-gateway-delete $gateway

Etape 4 : supprimez le VPC

Dès que l'ensemble des sous-réseaux et des passerelles publiques du VPC ont été supprimés, exécutez la commande suivante pour supprimer le VPC, où $vpc correspond à l'ID du VPC que vous supprimez.

ibmcloud is vpc-delete $vpc

Le statut du VPC passe à deleting (suppression) immédiatement, mais la suppression du VPC et son retrait complet des requêtes de liste peuvent prendre quelques minutes.

Suppression d'un VPC à l'aide des API REST

Les étapes principales du processus sont les suivantes:

  1. Recherchez tous les sous-réseaux du VPC que vous souhaitez supprimer.
  2. Supprimez chaque sous-réseau dans le VPC, ce qui signifie :
    • Supprimer toutes les passerelles VPN dans le sous-réseau.
    • Supprimer tous les équilibreurs de charge dans le sous-réseau.
    • Supprimez toutes les interfaces réseau des instances dans le sous-réseau.
    • Supprimez le sous-réseau.
  3. Supprimez toutes les passerelles publiques dans le VPC.
  4. Supprimez le VPC.

Les sections suivantes fournissent des exemples d'appels d'API que vous pouvez exécuter pour supprimer un VPC.

Étape 1 : Identifiez tous les sous-réseaux du VPC que vous souhaitez supprimer

Pour pouvoir supprimer un VPC, chacun de ses sous-réseaux doivent être supprimés. Pour obtenir l'ID du VPC que vous souhaitez supprimer, exécutez la commande suivante et repérez la valeur « id » :

curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Ajoutez | json_pp ou | jq après la commande curl pour obtenir une chaîne JSON lisible. jq est un outil tiers sous licence MIT. jq peut ne pas être préinstallé sur toutes les images VPC disponibles lorsque vous créez une instance. La commande json_pp est un préprocesseur JSON généralement installé par défaut sur la plupart des distributions Linux.

Sauvegardez l'ID du VPC dans une variable afin de pouvoir l'utiliser ultérieurement, par exemple :

vpc="0738-3524fef5-da35-4622-bf9a-31614964649d"

Pour obtenir la liste de tous les sous-réseaux figurant dans votre compte, exécutez la commande suivante :

curl -X GET "$vpc_api_endpoint/v1/subnets?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Examinez la valeur de vpc pour déterminer les sous-réseaux à supprimer. Enregistrez l'ID du sous-réseau dans une variable en vue d'une utilisation ultérieure, par exemple :

subnet="0738-d31ce469-9b0f-44e1-87ce-0fc77d8b0e53"

Si le VPC que vous souhaitez supprimer comporte plusieurs sous-réseaux, répétez les étapes pour supprimer chaque sous-réseau.

Etape 2 : supprimez chaque sous-réseau du VPC

Supprimez toutes les passerelles VPN dans le sous-réseau, le cas échéant

Pour répertorier toutes les passerelles VPN de votre compte, exécutez la commande suivante :

curl -X GET "$vpc_api_endpoint/v1/vpn_gateways?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Exécutez la commande suivante pour chaque passerelle VPN du sous-réseau que vous souhaitez supprimer, en remplaçant « $vpnid » par l'ID de la passerelle VPN.

curl -X DELETE "$vpc_api_endpoint/v1/vpn_gateways/$vpnid?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Le statut de la passerelle VPN passe immédiatement à deleting mais elle est toujours retournée quand vous effectuez une requête de liste. La suppression d'une passerelle VPN peut prendre jusqu'à 30 minutes. Vous pouvez demander la suppression en parallèle d'autres ressources de sous-réseau en attendant que la passerelle VPN soit supprimée. Toutefois, le sous-réseau ne peut pas être supprimé tant que la passerelle VPN et toutes les autres ressources du sous-réseau figurent encore dans les résultats des requêtes.

Supprimez tous les équilibreurs de charge dans le sous-réseau, le cas échéant.

Pour répertorier tous les équilibreurs de charge dans votre compte, exécutez la commande suivante :

curl -X GET "$vpc_api_endpoint/v1/load_balancers?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Exécutez la commande suivante pour chaque équilibreur de charge du sous-réseau que vous souhaitez supprimer, en remplaçant « $lbid » par l'ID de l'équilibreur de charge.

curl -X DELETE "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Le statut de l'équilibreur de charge passe immédiatement à deleting mais il est toujours retourné quand vous effectuez une requête de liste. La suppression d'un équilibreur de charge peut prendre jusqu'à 30 minutes. Vous pouvez demander la suppression en parallèle d'autres ressources de sous-réseau en attendant que l'équilibreur de charge soit supprimé. Toutefois, le sous-réseau ne peut pas être supprimé tant que l'équilibreur de charge et toutes les autres ressources du sous-réseau figurent encore dans les résultats des requêtes.

Supprimez toutes les interfaces réseau dans le sous-réseau, le cas échéant

Une instance peut comporter plusieurs interfaces réseau et ces interfaces réseau peuvent appartenir à plusieurs sous-réseaux du VPC. Pour pouvoir supprimer un sous-réseau, il faut d'abord supprimer toutes les interfaces réseau figurant dans le sous-réseau. Le seul moyen de supprimer une interface réseau dans un sous-réseau consiste à supprimer l'instance.

Pour répertorier toutes les interfaces réseau d'une instance, exécutez la commande suivante :

curl -X GET "$vpc_api_endpoint/v1/instances/$vsi/network_interfaces?version=$version&generation=2" \
     -H "Authorization:$iam_token"

S'il existe une interface réseau secondaire dans le sous-réseau que vous tentez de supprimer, vous devez supprimer l'instance. Une interface réseau ne peut pas être supprimée de l'instance sans supprimer l'instance.

Pour répertorier toutes les instances dans votre compte, exécutez la commande suivante :

curl -X GET "$vpc_api_endpoint/v1/instances?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Si vous supprimez toutes les instances dans le VPC, vous pouvez exécuter la commande suivante pour chaque instance du VPC, où $vsi correspond à l'ID de l'instance que vous souhaitez supprimer. Lorsque l'instance est supprimée, toutes les interfaces réseau des autres sous-réseaux, le cas échéant, sont automatiquement supprimées.

Les instances doivent être arrêtées pour pouvoir être supprimées. Pour plus d'informations, voir Créer une action d'instance pour utiliser la demande type et l'action stop.

curl -X DELETE "$vpc_api_endpoint/v1/instances/$vsi?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Le statut de l'instance passe immédiatement à « deleting », mais celle-ci peut encore apparaître dans les résultats d'une requête de liste. La suppression d'une instance peut prendre jusqu'à 30 minutes. Vous pouvez demander la suppression en parallèle d'autres ressources de sous-réseau en attendant que l'instance soit supprimée. Toutefois, le sous-réseau ne peut pas être supprimé tant que l'instance et toutes les autres ressources qu'il contient n'apparaissent plus dans les résultats des requêtes.

Supprimez le sous-réseau

Une fois que toutes les ressources du sous-réseau sont supprimées et ne sont pas renvoyées lorsque vous exécutez une requête de liste, exécutez la commande suivante pour supprimer le sous-réseau :

curl -X DELETE "$vpc_api_endpoint/v1/subnets/$subnet?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Le statut du sous-réseau passe à deleting (suppression) immédiatement, mais la suppression du sous-réseau peut prendre quelques minutes avant qu'il disparaisse complètement des requêtes de liste.

Etape 3 : supprimez toutes les passerelles publiques dans le VPC, le cas échéant

Pour répertorier toutes les passerelles publiques dans votre compte, exécutez la commande suivante :

curl -X GET "$vpc_api_endpoint/v1/public_gateways?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Pour chaque passerelle publique dans le VPC que vous souhaitez supprimer, exécutez la commande suivante pour supprimer la passerelle publique, où $gateway correspond à l'ID de la passerelle publique.

curl -X DELETE "$vpc_api_endpoint/v1/public_gateways/$gateway?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Etape 4 : supprimez le VPC

Dès que l'ensemble des sous-réseaux et des passerelles publiques du VPC ont été supprimés, exécutez la commande suivante pour supprimer le VPC, où $vpc correspond à l'ID du VPC que vous supprimez.

curl -X DELETE "$vpc_api_endpoint/v1/vpcs/$vpc?version=$version&generation=2" \
     -H "Authorization:$iam_token"

Le statut du VPC passe à deleting (suppression) immédiatement, mais la suppression du VPC peut prendre quelques minutes avant qu'il disparaisse complètement des requêtes de liste.