在 CloudFormation 模板中为 Aurora 数据库集群定义 AutoScaling

Defining AutoScaling for Aurora DB Cluster in CloudFormation template

我需要为我的 AWS Aurora 数据库集群添加 AutoScaling,我发现了这个 nice article 关于如何使用 Web 控制台执行此操作的信息。但是我找不到如何使用 AWS::RDS::DBCluster 资源的 CloudFormation 模板来定义它。

有人可以指导我如何使用 CloudFormation 为我的数据库集群定义 Auto Scaling 策略吗?

您需要使用 Application Autoscaling 服务。下面是一个 CFN 脚本示例,但请注意,我没有创建任何实例 - 只有集群和扩展策略。

AWSTemplateFormatVersion: 2010-09-09
Resources:
  MyDatabase:
    Type: AWS::RDS::DBCluster
    Properties:
      Engine: aurora
      EngineVersion: 5.6.10a
      MasterUsername: example
      MasterUserPassword: examplepassword

  AutoScalerTarget:
    Type: AWS::ApplicationAutoScaling::ScalableTarget
    Properties:
      MinCapacity: 1
      MaxCapacity: 8
      ResourceId: !Sub "cluster:${MyDatabase}"
      ScalableDimension: rds:cluster:ReadReplicaCount
      ServiceNamespace: rds
      RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/rds.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_RDSCluster"

  AutoScaler:
    Type: AWS::ApplicationAutoScaling::ScalingPolicy
    Properties:
      ScalingTargetId: !Ref AutoScalerTarget
      ServiceNamespace: rds
      PolicyName: Example
      PolicyType: TargetTrackingScaling
      ScalableDimension: rds:cluster:ReadReplicaCount
      TargetTrackingScalingPolicyConfiguration:
        PredefinedMetricSpecification:
          PredefinedMetricType: RDSReaderAverageCPUUtilization
        TargetValue: 50.0
        ScaleOutCooldown: 300
        ScaleInCooldown: 300
        DisableScaleIn: False

另外,看看 aurora serverless