我用 cloudformation 创建了 ec2 实例。当我尝试在同一个模板中更新实例的安全组时,cloudformation 会重新创建实例而不是修改相同的实例(就像在 terraform 中一样)。如何在不重新创建实例的情况下更新 SecurityGroup?
例如下面的模板 -
Resources:
Ec2Instance:
Type: 'AWS::EC2::Instance'
Properties:
InstanceType: t2.micro
ImageId: ami-0ed9277fb7eb570c9
SecurityGroupIds:
- sg-09d68774a93ec40df
现在,如果我尝试添加另一个 SecurityGroupIds 它会重新创建 ec2 -
Resources:
Ec2Instance:
Type: 'AWS::EC2::Instance'
Properties:
InstanceType: t2.micro
ImageId: ami-0ed9277fb7eb570c9
SecurityGroupIds:
- sg-09d68774a93ec40df
- sg-05555951931eeaca7
我用你的堆栈副本对此进行了测试,并看到了相同的行为。但是,当我创建一个新的 VPC(这是推荐的安全实践,应避免使用默认 VPC)时,安全组会干净地更新而无需替换。
我怀疑这与默认 VPC 上的行为有关,并且是预期的(但奇怪的)行为!
我建议您创建一个带有子网的新 VPC - VPC 向导在这里做得很好。转到服务 -> VPC 开始。
我的测试文件: