AWS::ElastiCache::CacheCluster与AWS::ElastiCache::ReplicationGroup的区别

4

我之前使用这个方法通过CloudFormation成功地启动了Redis实例:

        "RedisCache": {
        "Type": "AWS::ElastiCache::CacheCluster",
        "Properties": {
            "ClusterName": {
                "Fn::Join": ["-", [ {
                            "Ref": "EnvType"
                        }, {
                            "Ref": "EnvVersion"
                        }
                    ]]
            },
            "AutoMinorVersionUpgrade": "true",
            "AZMode": "single-az",
            "CacheNodeType": "cache.t2.medium",
            "Engine": "redis",
            "EngineVersion": "3.2.6",
            "NumCacheNodes": "1",
            "PreferredAvailabilityZone": "us-west-2a",
            "PreferredMaintenanceWindow": "sun:04:30-sun:05:30",
            "CacheSubnetGroupName": "redis-test-subnet-group",
            "VpcSecurityGroupIds": ["sg-group1", "sg-group2"]
        }
    },

最近,AWS升级了Redis以使用AtRestEncryptionAuthTokenTransitEncryption。我尝试在上述代码中包含它们,但根据this,只有AWS::ElastiCache::ReplicationGroup接受这些参数。如何使用AWS::ElastiCache::ReplicationGroup创建单个Redis实例?
2个回答

4
您需要创建引用缓存集群作为主要写操作的复制组。 完整的代码脚本:
    "cache": {
        "Type": "AWS::ElastiCache::CacheCluster",
        "Properties": {
            "CacheSubnetGroupName": {
                "Ref": "cacheSubnetGroup"
            },
            "AutoMinorVersionUpgrade": "true",
            "Engine": {
                "Ref": "CacheEngine"
            },
            "CacheNodeType": {
                "Ref": "CacheType"
            },
            "NumCacheNodes": {
                "Ref": "CacheNodes"
            },
            "VpcSecurityGroupIds": [
                {
                    "Fn::GetAtt": [
                        "cacheSecurityGroup",
                        "GroupId"
                    ]
                }
            ],
            "PreferredAvailabilityZone": {
                "Fn::Select": [
                    "0",
                    {
                        "Fn::GetAZs": {
                            "Ref": "AWS::Region"
                        }
                    }
                ]
            }
        },
        "Metadata": {
            "AWS::CloudFormation::Designer": {
                "id": "9bae52e5-d091-42f2-9473-8a422efd6ced"
            }
        }
    },
    "cacheSecurityGroup": {
        "Type": "AWS::EC2::SecurityGroup",
        "Properties": {
            "GroupDescription": "Elasticache Security Group",
            "SecurityGroupIngress": [
                {
                    "IpProtocol": "tcp",
                    "FromPort": {
                        "Ref": "CachePort"
                    },
                    "ToPort": {
                        "Ref": "CachePort"
                    },
                    "CidrIp": "0.0.0.0/0"
                }
            ],
            "VpcId": {
                "Ref": "VPC"
            }
        },
        "Metadata": {
            "AWS::CloudFormation::Designer": {
                "id": "4e5fb112-e80a-4c65-b68a-c136850d3933"
            }
        }
    },
    "cacheSubnetGroup": {
        "Type": "AWS::ElastiCache::SubnetGroup",
        "Properties": {
            "Description": "Cache Subnet Group",
            "SubnetIds": [
                {
                    "Ref": "PublicSubnet1"
                },
                {
                    "Ref": "PublicSubnet2"
                }
            ]
        },
        "Metadata": {
            "AWS::CloudFormation::Designer": {
                "id": "ac3d8db2-5aa2-4998-8e7d-acfeb9e21a88"
            }
        }
    },
    "cacheReplicationGroup": {
        "Type": "AWS::ElastiCache::ReplicationGroup",
        "Properties": {
            "ReplicationGroupDescription": "Cache Replication Group",
            "AutomaticFailoverEnabled": "true",
            "NumCacheClusters": {
                "Ref": "CacheReplicaNodes"
            },
            "PrimaryClusterId": {
                "Ref": "cache"
            }
        },
        "Metadata": {
            "AWS::CloudFormation::Designer": {
                "id": "3e76370e-4996-43b6-9373-22ef20a9b2ee"
            }
        }
    }

4

从文档中得知,您需要创建 ReplicationGroup 而不是 CacheCluster,并将 NumNodeGroups 设置为 1 ,将 AutomaticFailoverEnabled 设置为 false 。这两个值都是默认值,所以您可以省略它们。单节点的参数值的更多详细信息可以在API 文档中找到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接