在 CloudFormation 模板中为 Aurora 数据库集群定义 AutoScaling
Posted
技术标签:
【中文标题】在 CloudFormation 模板中为 Aurora 数据库集群定义 AutoScaling【英文标题】:Defining AutoScaling for Aurora DB Cluster in CloudFormation template 【发布时间】:2019-04-18 19:01:40 【问题描述】:我需要为我的 AWS Aurora 数据库集群添加 AutoScaling,我发现了这个 nice article 关于如何使用 Web 控制台执行此操作。但我找不到如何使用 AWS::RDS::DBCluster
资源的 CloudFormation 模板来定义它。
有人可以指导我如何使用 CloudFormation 为我的数据库集群定义 Auto Scaling 策略吗?
【问题讨论】:
【参考方案1】:您需要使用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。
【讨论】:
这样就可以了。谢谢! :) 如何在此设置中配置实例类型(如 db.t2.small)? 事实上,这种方法似乎不再奏效了。正如文档所说:“在您可以将 Aurora Auto Scaling 与 Aurora 数据库集群一起使用之前,您必须首先创建一个具有主实例和至少一个 Aurora 副本的 Aurora 数据库集群。”以上是关于在 CloudFormation 模板中为 Aurora 数据库集群定义 AutoScaling的主要内容,如果未能解决你的问题,请参考以下文章
在 CloudFormation 模板中为 Aurora 数据库集群定义 AutoScaling
在 Cloudformation 模板中为 API 网关启用 CORS DEFAULT 4XX/5XX
具有 50 个 CIDR IP(入口)的安全组的 Cloudformation 模板 (JSON)
如何在cloudformation中为我的beantalk定义nodejs的版本