J'utilise ECS-CLI (0.4.5) pour lancer un modèle CFN, et j'essaie maintenant de placer un cluster Aurora dans le modèle CFN et de mettre à jour la pile avec un changeset via le SDK CFN.
Je n'arrive pas à comprendre pourquoi il est contrarié par mes sous-réseaux. Les sous-réseaux sont créés par l'appel initial 'ecs-cli up'. Ils sont dans le même vpc que le reste de la pile, ils existent déjà avant que j'essaie de déployer le changeset, et ils sont dans des zones de disponibilité différentes (us-west-2b et us-west-2c).
La seule information que me donne le CFN est que "certains sous-réseaux d'entrée ne sont pas valides".
Défaillance du CFN :
Sous-réseaux :
Je peux créer un DBSubnetGroup via la console de gestion avec exactement les mêmes sous-réseaux sans aucun problème.
Des idées sur ce qui pourrait ne pas fonctionner ? S'agit-il d'un bogue dans CloudFormation ? Faites-moi savoir si des informations supplémentaires sont nécessaires pour résoudre ce problème.... Honnêtement, je ne sais pas quoi faire
Voici à quoi se résume mon modèle initial (il est intégré à ecs-cli) :
"PubSubnetAz1": {
"Type": "AWS::EC2::Subnet",
"Properties": {
"VpcId": {
"Ref": "Vpc"
},
"CidrBlock": "10.0.0.0/24",
"AvailabilityZone": "us-west-2b"
}
},
"PubSubnetAz2": {
"Type": "AWS::EC2::Subnet",
"Properties": {
"VpcId": {
"Ref": "Vpc"
},
"CidrBlock": "10.0.1.0/24",
"AvailabilityZone": "us-west-2c"
}
},
"InternetGateway": {
"Type": "AWS::EC2::InternetGateway"
},
"AttachGateway": {
"Type": "AWS::EC2::VPCGatewayAttachment",
"Properties": {
"VpcId": {
"Ref": "Vpc"
},
"InternetGatewayId": {
"Ref": "InternetGateway"
}
}
},
"RouteViaIgw": {
"Type": "AWS::EC2::RouteTable",
"Properties": {
"VpcId": {
"Ref": "Vpc"
}
}
},
"PublicRouteViaIgw": {
"DependsOn": "AttachGateway",
"Type": "AWS::EC2::Route",
"Properties": {
"RouteTableId": {
"Ref": "RouteViaIgw"
},
"DestinationCidrBlock": "0.0.0.0/0",
"GatewayId": {
"Ref": "InternetGateway"
}
}
},
"PubSubnet1RouteTableAssociation": {
"Type": "AWS::EC2::SubnetRouteTableAssociation",
"Properties": {
"SubnetId": {
"Ref": "PubSubnetAz1"
},
"RouteTableId": {
"Ref": "RouteViaIgw"
}
}
},
"PubSubnet2RouteTableAssociation": {
"Type": "AWS::EC2::SubnetRouteTableAssociation",
"Properties": {
"SubnetId": {
"Ref": "PubSubnetAz2"
},
"RouteTableId": {
"Ref": "RouteViaIgw"
}
}
},
Et ensuite, quand je vais le mettre à jour, j'ajoute ceci :
"DBSubnetGroup": {
"Type": "AWS::RDS::DBSubnetGroup",
"Properties": {
"DBSubnetGroupDescription": "Aurora Subnet Group using subnets from 2 AZs",
"SubnetIds": {
"Fn::Join": [
",", [{
"Ref": "pubSubnetAz1"
},
{
"Ref": "pubSubnetAz2"
}
]
]
}]
}
}
}
Le changeset devrait être assez simple...
"Changes": [
{
"Type": "Resource",
"ResourceChange": {
"Action": "Add",
"LogicalResourceId": "DBSubnetGroup",
"ResourceType": "AWS::RDS::DBSubnetGroup",
"Scope": [],
"Details": []
}
}
]
J'utilise AWSTemplateFormatVersion 2010-09-09 et le JavaScript aws-sdk "^2.7.21".