如何在不使用AutoScaling的情况下使用aws cloudformation启动多个EC2实例?

时间:2017-10-04 05:38:06

标签: amazon-web-services amazon-cloudformation

我想在不使用AutoScaling的情况下使用aws cloudformation模板启动多个Ec2实例。 请告诉我如何启动?

2 个答案:

答案 0 :(得分:2)

有几种方法可以在没有使用Autoscaling Group的情况下使用CloudFormation启动多个实例。

  1. 在同一个Cloudformation模板中创建所需数量的资源。 例如。如果要启动3个实例,则必须编写代码以在Cloudformation Template中启动3个AWS实例。
  2. 以下模板有2个资源,将启动2个EC2实例。您可以根据需要添加更多资源。

    server1:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref Server1InstanceType
      KeyName: !Ref ServerKeypair
      ImageId: !Ref ServerImageId
      SecurityGroupIds: 
        - !Ref ServerSG
      SubnetId: !Ref PrivateWeb1b
      Tags:
      - Key: Name
        Value: server1
    
    server2:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref Server2InstanceType
      KeyName: !Ref ServerKeypair
      ImageId: !Ref ServerImageId
      SecurityGroupIds: 
        - !Ref ServerSG
      SubnetId: !Ref PrivateWeb1b
      Tags:
      - Key: Name
        Value: server2
    
    1. 使用相同的Cloudformation模板创建多个Cloudformation堆栈。例如。您必须从相同的Cloudformation模板创建2个Cloudformation堆栈,该模板具有Resource以分别启动1个EC2实例。
    2. 以下模板有1个资源,将启动1个EC2实例。根据第二种方法,您可以使用相同的模板创建多个Cloudformation堆栈以获取多个EC2实例。

      server1:
      Type: AWS::EC2::Instance
      Properties:
        InstanceType: !Ref Server1InstanceType
        KeyName: !Ref ServerKeypair
        ImageId: !Ref WebserverImageId
        SecurityGroupIds: 
          - !Ref WebserverSG
        SubnetId: !Ref PrivateWeb1b
        Tags:
        - Key: Name
          Value: server1
      

答案 1 :(得分:0)

尝试使用Type: AWS :: EC2 :: EC2Fleet

您可以指定配置信息以启动实例组或实例组。 EC2舰队可以结合使用按需实例,预留实例和竞价型实例购买模型,在多个可用区中启动多种实例类型。使用EC2 Fleet,您可以定义单独的按需容量和竞价容量目标,指定最适合您的应用程序的实例类型,并指定Amazon EC2如何在每个购买模型内分配您的机队容量。

**YAML**
Type: AWS::EC2::EC2Fleet
Properties: 
  ExcessCapacityTerminationPolicy: String
  LaunchTemplateConfigs: 
    - FleetLaunchTemplateConfigRequest
  OnDemandOptions: 
    OnDemandOptionsRequest
  ReplaceUnhealthyInstances: Boolean
  SpotOptions: 
    SpotOptionsRequest
  TagSpecifications: 
    - TagSpecification
  TargetCapacitySpecification: 
    TargetCapacitySpecificationRequest
  TerminateInstancesWithExpiration: Boolean
  Type: String
  ValidFrom: String
  ValidUntil: String

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html