実現したいこと
- Aws RDS Auroraでプライマリ1台とリードレプリカ1台+オートスケールで増減するリードレプリカn台の構成とし、負荷のかかっていない通常の状態では、プライマリ1台とリードレプリカ1台の2台構成としたい
前提
負荷を掛け、スケールアウトし、リードレプリカが追加されることまでは確認ができているのですが、
追加されたレプリカがスケールインせずいます。
最低限のコストとするためにも、オートスケールでスケールアウトしたレプリカは負荷がかかっていない状態では削除されていてほしいのですが、これは実現可能な構成なのでしょうか?
試したこと
オートスケールの設定(「Aurora レプリカの平均 CPU 使用率」で設定)をし、レプリカの最小容量を1に、負荷を掛け、スケールアウトし、リードレプリカが追加されることまでは確認ができているのですが、追加されたレプリカがスケールインせずいます。
【追記①】
スケーリングポリシーはAWSのコンソール上から登録を行っています。
自分の認識が誤っていたようで、最小容量は手動で作成したリードレプリカの台数を含めた台数とのことでしたので、「1」としています。
【追記②】
aws application-autoscaling describe-scaling-activities
にて、オートスケールの履歴を確認したところ、
「AutoScalingAnticipatedFlapping」とのエラーが発生していました。
{ "ActivityId": "******", "ServiceNamespace": "rds", "ResourceId": "cluster:******", "ScalableDimension": "rds:cluster:ReadReplicaCount", "Description": "Attempting to scale due to alarm triggered", "Cause": "monitor alarm TargetTracking-******-AlarmLow-****** in state ALARM triggered policy ****", "StartTime": "2023-10-12T15:50:51.781000+09:00", "StatusCode": "Failed", "NotScaledReasons": [ { "Code": "AutoScalingAnticipatedFlapping" } ] },
抽象的な質問で恐れ入りますが、どなたかご教示いただけますと幸いです。
よろしくお願いいたします。
