"SecondaryNICSubnetIds":{
"Type" : "CommaDelimitedList",
"Description" : "Ensure that the spread of Availability Zones for these Subnets matches the SubnetIds used to create Instances, as when creating a Secondary ENI it must exist in the same AZ as the Instance"
},
"SecondaryNICSecurityGroupIds":{
"Type" : "CommaDelimitedList",
"Description" : "Security Groups to associate to the Secondary ENI"
},
1 回答
我目前使用的解决方案是确保每个实例都使用允许包含策略的IAM Instance Profile启动
用于创建AutoScalingGroup和LaunchConfiguration的我的 Cloud 形成模板接收Subnets和Security Groups的参数以附加到每个附加的ENI .
然后LaunchConfiguration包含UserData属性
确保安装了awscli
通过解析instance metadata身份文档来设置要使用的区域
从instance metadata获取实例ID
从instance metadata获取实例的可用区
来自已传入的子网的
通过使用awscli describe-subnets调用找到与我的实例AZ匹配的第一个子网
在我选择的子网中创建网络接口,并使用awscli create-network-interface调用向其添加安全组
使用awscli create-tags调用标记我的ENI
使用awscli attach-network-interface调用将ENI附加到我的实例
修改附件以使用modify-network-interface-attribute调用删除实例终止上的ENI
如果您不想将Subnets传递到Cloud Formation模板,您可以尝试通过在awscli describe-subnets调用中向
--query
添加标记来查找它们,如果您的基础结构允许您以这种方式识别它们 .