具有 cloudformation 的 AutoScaling ec2 实例

Posted

技术标签:

【中文标题】具有 cloudformation 的 AutoScaling ec2 实例【英文标题】:AutoScaling ec2 instance with cloudformation 【发布时间】:2020-10-26 20:58:46 【问题描述】:

我正在尝试自动缩放此 ec2 实例,请指导我如何操作。任何可能有用的模板,以便我可以开始使用自动缩放。我只附加了我想要自动缩放的 ec2 实例模板。

---
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  SourceStackName:
    Description: "Source stack name"
    Type: String
    AllowedPattern: "^[a-zA-Z][-a-zA-Z0-9]*$"
    Default: "shifa-vpc"
Resources:
  webserver:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupName: webserver-sg
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0
          Description: For traffic from Internet
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
          Description: For traffic from Internet
      GroupDescription: Security Group for demo server
      VpcId:
        Fn::ImportValue:
          Fn::Sub: "$SourceStackName-VpcID"
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: us-east-1a
      BlockDeviceMappings:
        - DeviceName: /dev/xvda
          Ebs:
            DeleteOnTermination: "true"
            VolumeSize: "8"
            VolumeType: gp2
      ImageId: ami-09d95fab7fff3776c # ami-0bdcc6c05dec346bf
      InstanceType: t2.micro
      #IamInstanceProfile: !Ref ListS3BucketsInstanceProfile
      #KeyName: ky-webserver
      NetworkInterfaces:
        - Description: Primary network interface
          DeviceIndex: 0
          SubnetId:
            Fn::ImportValue:
              Fn::Sub: "$SourceStackName-PublicSubnet"
          GroupSet:
            - !Ref webserver
Outputs:
  ec2:
    Description: ec2
    Value: !Ref EC2Instance
    Export:
      Name:
        Fn::Sub: "$AWS::StackName-server"

  sgGroupId:
    Description: ec2
    Value: !GetAtt webserver.GroupId
    Export:
      Name:
        Fn::Sub: "$AWS::StackName-sgid"        

我是 cloudformation 的新手,正在接受培训。

【问题讨论】:

docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/… @jordanm 我看到文档在引用 ec2 实例属性时遇到问题。您能否提供一个模板,说明我如何自动缩放此 ec2 实例 【参考方案1】:

Amazon 有一些 examples 用于 AutoScaling 实例。

重要的是,EC2 实例资源不属于 CloudFormation 中的自动扩展配置。

您将使用Launch Template 或Launch Configuration 资源。启动模板较新,因此您最好使用它。这些将定义实例配置,例如卷、实例类型等。

另一个组件是Autoscaling Group,它将引用之前的任一组件并定义实例应如何扩展。

如果您尝试扩展现有实例,您需要先从它make an AMI 并引用它。

AWS 有一个带有自动缩放组 here 的示例模板。

【讨论】:

以上是关于具有 cloudformation 的 AutoScaling ec2 实例的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cloudformation 创建具有复合主键的 DynamoDB

具有 CloudFormation 的 Amazon DynamoDB 属性类型

如何使用 CloudFormation 创建具有集成 RDS 的 AWS Elasticbeanstalk 应用程序?

具有 cloudformation 的 AutoScaling ec2 实例

无法通过 cloudformation 创建具有自动缩放功能的 AWS EMR

具有 50 个 CIDR IP(入口)的安全组的 Cloudformation 模板 (JSON)