Welcome! Please see the About page for a little more info on how this works.

0 votes
in Cloud by

Hi! With the new Datomic Cloud, I set a compute group's auto scaling configuration this way:

  1. Cluster node instance type = t3.small
  2. Desired capacity = Default (1)
  3. Minimum instances = Default (1)
  4. Maximum instances = Default (3)
  5. Minimum number of instances during update = 2

Due to the last config bullet (5), should the system spin up a 2nd instance when the update starts, before deploying the new app code, in order to enable high availability during deployments, and scale back to the desired capacity after the deployment concludes?

I tested it and the system/ASG didn't scale a 2nd instance up during the deployment, so it caused downtime.

My understanding is that bullets 2-3-4 control the ASG, while bullet 5 would control something in CodeDeploy, but it's not clear to me how CodeDeploy and the ASG would coordinate to honor my setting config (5) to 2.

Are my expectations wrong about setting it up like I did?

1 Answer

0 votes
Best answer

In Slack, Jaret Binford answered:

That min during update is for CloudFormation updates (eg. updating to a new Datomic release.) Not Code Deploy. Code Deploy deploys to running instances. If you want HA during a Code Deploy you would need to have the desired instances set to 2.

This aligns with the config's description that I had failed to read properly:

Minimum number of instances during update: Minimum number of instances that must be in service within Auto Scaling group while AWS CloudFormation updates old instances.

So the setting is about compute group updates, not our app's updates.

Jaret wrote further:

If min during update is 1, CF should scale up to 2 during an upgrade and then kill the previous instance as long as the maximum allows for that.

Welcome to the Datomic Knowledgebase, where you can make features requests, ask questions and receive answers from other members of the community.