通过 Cloudformation 添加新分片时,在错误的 AZ 中创建只读副本

Read replicas are created in wrong AZ when adding new shards through Cloudformation

我在更新我的 Elasticache Cloudformation Stack 时遇到了一个奇怪的错误,目前它有 2 个分片,每个分片都有一个副本节点,我定义了我希望它们所属的可用区,如下所示:

    "MyRedisCluster": {
            "Properties": {
                "Engine": "redis",
                "MultiAZEnabled": "true",
                "NodeGroupConfiguration": [
                    {
                        "NodeGroupId": "0001",
                        "PrimaryAvailabilityZone": "eu-west-1b",
                        "ReplicaAvailabilityZones": [
                            "eu-west-1a"
                        ]
                    },
                    {
                        "NodeGroupId": "0002",
                        "PrimaryAvailabilityZone": "eu-west-1c",
                        "ReplicaAvailabilityZones": [
                            "eu-west-1b"
                        ]
                    },
                ],
                
                "NumNodeGroups": 2,
                "ReplicasPerNodeGroup": 1,
            },
            "Type": "AWS::ElastiCache::ReplicationGroup",
            "UpdatePolicy": {
                "UseOnlineResharding": "true"
            }
        }

当我创建我的堆栈时,一切正常,我的主节点和副本节点在其适当的 AZ 中正确创建。

现在我想添加一个新的分片,所以我添加了一个新的 NodeGroupConfiguration 对象并将 NumNodeGroups 设置为 3。更新过程工作正常,我的第三个分片已创建,但是事情是主节点和副本节点创建在错误的 AZ 中,如您所见,我的第三个分片应该在 eu-west-1a 中有其主节点,在 eu-west-1c 中具有其副本节点,但它们是以另一种方式创建的左右,eu-west-1c 中的主节点和 eu-west-1a 中的副本。

{
    "NodeGroupId": "0003",
    "PrimaryAvailabilityZone": "eu-west-1a",
    "ReplicaAvailabilityZones": [
        "eu-west-1c"
    ]
}

这太奇怪了,我尝试使用 AWS CLI 来添加它 modify-replication-group-shard-configuration,它工作得很好。我们可以说这是一个 Cloudformation 错误吗?

AWS 已确认这是他们一方的错误。我创建了一个 AWS 支持案例,还在他们的 cloudformation 存储库中添加了一个新问题。

https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/899