Amazon-Cloudformation
CloudFormation - 更新 ec2 實例的 SecurityGroupIds 它重新創建實例而不是修改相同的實例
我用 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 開始。
我的測試文件:
Resources: Ec2Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: t2.micro # default Amazon Linux AMI ImageId: ami-0d37e07bd4ff37148 SecurityGroupIds: # first security group I created in default: - sg-0d16f8e62054c9ed0 # second security group I created in default: - sg-0ffc2a7a986ab0e8c OtherEc2Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: t2.micro ImageId: ami-0d37e07bd4ff37148 # Private subnet (no internet) in a new VPC: SubnetId: subnet-08dc2104d169a815e SecurityGroupIds: # First SG in that VPC: - sg-0ebec69e461a555b8 # Second SG in that VPC: - sg-00b18a57193a12f5c