AWS::ElastiCache::ReplicationGroup are interdependent AWS::ElastiCache::GlobalReplicationGroup.
GlobalReplicationGroup needs at least one member, which must be a reference to ReplicationGroup.
During stack creation, CFN will create a ReplicationGroup first, while it requires cacheNodeType set (even though it’s marked as optional in the CFN template reference). Afterwards, CFN will create GlobalReplicationGroup. That works.
However, the stack update will fail because CFN tries to update cacheNodeType in ReplicationGroup which it can't as the property is now controlled by the GlobalReplicationGroup
Expected Behavior
If you change cacheNodeType, the stack update should pass.
Observed Behavior
If you change cacheNodeType, the stack update will fail with:
Replication Group [abc] is a member of Global Replication Group [xyz], hence NodeType property cannot be modified.Current value = [cache.m6g.large], Desired value = [cache.m6g.xlarge]
Test Cases
Create a CFN template with AWS::ElastiCache::ReplicationGroup and AWS::ElastiCache::GlobalReplicationGroup
Name of the resource
AWS::ElastiCache::GlobalReplicationGroup
Resource Name
No response
Issue Description
AWS::ElastiCache::ReplicationGroup
are interdependentAWS::ElastiCache::GlobalReplicationGroup
.GlobalReplicationGroup
needs at least one member, which must be a reference toReplicationGroup
.During stack creation, CFN will create a
ReplicationGroup
first, while it requirescacheNodeType
set (even though it’s marked as optional in the CFN template reference). Afterwards, CFN will createGlobalReplicationGroup
. That works.However, the stack update will fail because CFN tries to update
cacheNodeType
inReplicationGroup
which it can't as the property is now controlled by theGlobalReplicationGroup
Expected Behavior
If you change
cacheNodeType
, the stack update should pass.Observed Behavior
If you change
cacheNodeType
, the stack update will fail with:Test Cases
AWS::ElastiCache::ReplicationGroup
andAWS::ElastiCache::GlobalReplicationGroup
cacheNodeType
Other Details
No response