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

Pra*_*ris 1 amazon-web-services aws-cloudformation autoscaling amazon-aurora

我需要为我的AWS Aurora数据库集群添加AutoScaling,并且找到了一篇不错的文章,介绍如何使用Web控制台执行此操作。但是我找不到如何使用AWS::RDS::DBCluster资源的CloudFormation模板定义它的方法。

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

Ran*_*unt 5

您需要使用“ 应用程序自动缩放”服务。以下是一个示例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
Run Code Online (Sandbox Code Playgroud)

另外,看看aurora serverless

  • 实际上,这种方法似乎不再起作用。正如文档所述:“在将Aurora Auto Scaling与Aurora数据库群集一起使用之前,必须首先创建一个具有主实例和至少一个Aurora副本的Aurora数据库群集。” (3认同)