Comment conserver mes ressources lorsque je supprime une pile AWS CloudFormation ?
Date de la dernière mise à jour : 08/07/2019
Je veux supprimer une pile AWS CloudFormation nouvelle ou existante, mais je ne veux pas supprimer toutes les ressources de la pile. Comment conserver certaines des ressources dans la pile ?
Brève description
Pour conserver certaines ressources lorsque vous supprimez une pile, utilisez l’attribut DeletionPolicy dans votre modèle AWS CloudFormation.
Lorsque vous supprimez une pile, spécifiez l'option de stratégie Retain (Conserver), Snapshot (Instantané) ou Delete (Supprimer) :
- L'option Retain (Conserve) conserve la ressource en cas de suppression de la pile.
- L'option Snapshot (Instantané) crée un instantané de la ressource avant sa suppression.
Remarque : cette option n'est disponible que pour les ressources qui prennent en charge les instantanés. - L'option Delete (Supprimer) supprime la ressource en même temps que la pile.
Remarque : cette option est le résultat par défaut si vous ne configurez pas de DeletionPolicy.
Solution
Les étapes suivantes montrent comment utiliser la stratégie Retain (Conserver) pour empêcher la suppression des groupes de sécurité lors de la suppression d'une pile AWS CloudFormation.
Spécifiez les attributs DeletionPolicy dans le modèle AWS CloudFormation.
Dans votre modèle AWS CloudFormation, saisissez Retain comme stratégie de conservation pour les ressources à conserver lorsque la pile est supprimée. Dans les exemples d'extraits de modèle JSON et YAML suivants, la stratégie Retain (Conserver) est spécifiée pour les groupes de sécurité.
JSON :
{
"Description": "AWS CloudFormation DeletionPolicy demo",
"Resources": {
"SGroup1": {
"Type": "AWS::EC2::SecurityGroup",
"DeletionPolicy": "Retain",
"Properties": {
"GroupDescription": "EC2 Instance access"
}
},
"SGroup2": {
"Type": "AWS::EC2::SecurityGroup",
"DeletionPolicy": "Retain",
"Properties": {
"GroupDescription": "EC2 Instance access"
}
},
"SGroup1Ingress": {
"Type": "AWS::EC2::SecurityGroupIngress",
"DeletionPolicy": "Retain",
"Properties": {
"GroupName": {
"Ref": "SGroup1"
},
"IpProtocol": "tcp",
"ToPort": "80",
"FromPort": "80",
"CidrIp": "0.0.0.0/0"
}
},
"SGroup2Ingress": {
"Type": "AWS::EC2::SecurityGroupIngress",
"DeletionPolicy": "Retain",
"Properties": {
"GroupName": {
"Ref": "SGroup2"
},
"IpProtocol": "tcp",
"ToPort": "80",
"FromPort": "80",
"CidrIp": "0.0.0.0/0"
}
}
}
}
YAML :
Description: AWS CloudFormation DeletionPolicy demo
Resources:
SGroup1:
Type: 'AWS::EC2::SecurityGroup'
DeletionPolicy: Retain
Properties:
GroupDescription: EC2 Instance access
SGroup2:
Type: 'AWS::EC2::SecurityGroup'
DeletionPolicy: Retain
Properties:
GroupDescription: EC2 Instance access
SGroup1Ingress:
Type: 'AWS::EC2::SecurityGroupIngress'
DeletionPolicy: Retain
Properties:
GroupName: !Ref SGroup1
IpProtocol: tcp
ToPort: '80'
FromPort: '80'
CidrIp: 0.0.0.0/0
SGroup2Ingress:
Type: 'AWS::EC2::SecurityGroupIngress'
DeletionPolicy: Retain
Properties:
GroupName: !Ref SGroup2
IpProtocol: tcp
ToPort: '80'
FromPort: '80'
CidrIp: 0.0.0.0/0
Charger votre modèle AWS CloudFormation mis à jour
- Ouvrez la console AWS CloudFormation.
- Choisissez Create Stack (Créer une pile).
- Pour Choose a template (Choisir un modèle), choisissez Upload a template to Amazon S3 (Charger un modèle dans Amazon S3), puis le modèle AWS CloudFormation que vous avez modifié pour inclure les stratégies de suppression.
- Sélectionnez Next (Suivant).
- Pour Stack name (Nom de la pile), saisissez le nom de votre pile, puis cliquez sur Next (Suivant).
- Sur la page Options, choisissez les options appropriées pour votre pile, puis cliquez sur Next (Suivant).
- Sélectionnez Create (Créer).
Test de l'attribut DeletionPolicy (Politique de suppression)
- Supprimez la pile AWS CloudFormation.
- Vérifiez que les ressources ayant la stratégie Retain (Conserver) sont toujours disponibles après la suppression de la pile.
Pour l'exemple d'extrait de modèle dans cette solution, vous pouvez vérifier l'aboutissement de la stratégie Retain (Conserver) en suivant la procédure ci-dessous après avoir supprimé la pile AWS CloudFormation.
- Ouvrez la console Amazon EC2.
- Sur le volet de navigation, dans la section Network & Security (Réseau et sécurité), choisissez Security Groups (Groupes de sécurité).
- Vérifiez que les groupes de sécurité ayant la stratégie Retain (Conserver) sont toujours disponibles.
Informations connexes
Cet article vous a-t-il été utile ?
Cette page peut-elle être améliorée ?
Vous avez besoin d'aide ?