diff --git a/src/experimental/patterns/__snapshots__/ec2-app.test.ts.snap b/src/experimental/patterns/__snapshots__/ec2-app.test.ts.snap index 98db07b14..fc3644419 100644 --- a/src/experimental/patterns/__snapshots__/ec2-app.test.ts.snap +++ b/src/experimental/patterns/__snapshots__/ec2-app.test.ts.snap @@ -181,7 +181,9 @@ exports[`The GuEc2AppExperimental pattern matches the snapshot 1`] = ` "MinInstancesInService": 1, "MinSuccessfulInstancesPercent": 100, "PauseTime": "PT5M", - "SuspendProcesses": [], + "SuspendProcesses": [ + "AlarmNotification", + ], "WaitOnResourceSignals": true, }, }, diff --git a/src/experimental/patterns/ec2-app.ts b/src/experimental/patterns/ec2-app.ts index 23929d46b..61b9c67c9 100644 --- a/src/experimental/patterns/ec2-app.ts +++ b/src/experimental/patterns/ec2-app.ts @@ -50,7 +50,14 @@ export class GuEc2AppExperimental extends GuEc2App { minInstancesInService: minimumInstances, minSuccessPercentage: 100, waitOnResourceSignals: true, - suspendProcesses: [], + + /* + If a scale-in event fires during an `AutoScalingRollingUpdate` operation, the update could fail and rollback. + For this reason, we suspend the `AlarmNotification` process, else availability of a service cannot be guaranteed. + Consequently, services cannot scale-out during deployments. + If AWS ever supports suspending scale-out and scale-in independently, we should allow scale-out. + */ + suspendProcesses: [ScalingProcess.ALARM_NOTIFICATION], }), });