- Newest
- Most votes
- Most comments
This behavior is expected rather than a bug. There's a distinction between how Elastic Beanstalk handles different types of configuration changes.
When you modify configuration settings that require changes to the launch configuration or VPC settings, Elastic Beanstalk must terminate and replace all instances. For these types of changes, your immutable update policy settings (both Rolling Update Type and Deployment Policy) will be applied.
However, when you're only updating environment variables that are sourced from Parameter Store, Elastic Beanstalk can apply these changes without requiring instance replacement. Since Parameter Store values are dynamically referenced rather than baked into the launch configuration, Elastic Beanstalk can update the running instances without needing to create new ones.
This explains the behavior difference you're seeing:
- When you change Parameter Store environment variables only: Updates are applied to existing instances
- When you change plain text environment variables: This requires an immutable update with new instances
The immutable update settings are only applied when Elastic Beanstalk needs to replace instances, which isn't necessary for Parameter Store variable changes alone.
Sources
Configuration changes - AWS Elastic Beanstalk
Is there a difference between aws:autoscaling:updatepolicy:rollingupdate:RollingUpdateType:Immutable and aws:elasticbeanstalk:command:DeploymentPolicy:Immutable? | AWS re:Post
