2017-06-01 38 views
2

redisを使用してelasticacheインスタンスを作成したいとします。AWS cloudformation:redisキャッシュクラスタを正しく作成する方法

すべてが1つのサーバーに収まるため、「クラスタモードが無効」を使用する必要があります。 SPOFを持たないために、マスターに障害が発生した場合にAWSによって昇格される読み取りレプリカを作成する必要があります。 可能であれば、マスターとスレーブ間の読み取り専用操作のバランスをとることは素晴らしいことですが、必須ではありません。

awsコンソールを使用して機能するマスター/リードレプリカを作成した後、cloudformerを使用してcloudformation json confを作成しました。 Cloudformerは2つのリンクを解除したAWS::ElastiCache::CacheClusterを作成しましたが、文書を読んでください。今私は、この構成を持っているために私は...それらをリンクする方法を理解していない:

{ 
    "cachehubcache001": { 
     "Type": "AWS::ElastiCache::CacheCluster", 
     "Properties": { 
     "AutoMinorVersionUpgrade": "true", 
     "AZMode": "single-az", 
     "CacheNodeType": "cache.t2.small", 
     "Engine": "redis", 
     "EngineVersion": "3.2.4", 
     "NumCacheNodes": "1", 
     "PreferredAvailabilityZone": { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "Az1B"]}, 
     "PreferredMaintenanceWindow": "sun:04:00-sun:05:00", 
     "CacheSubnetGroupName": { 
      "Ref": "cachesubnethubprivatecachesubnetgroup" 
     }, 
     "VpcSecurityGroupIds": [ 
      { 
      "Fn::GetAtt": [ 
       "sgiHubCacheSG", 
       "GroupId" 
      ] 
      } 
     ] 
     } 
    }, 
    "cachehubcache002": { 
     "Type": "AWS::ElastiCache::CacheCluster", 
     "Properties": { 
     "AutoMinorVersionUpgrade": "true", 
     "AZMode": "single-az", 
     "CacheNodeType": "cache.t2.small", 
     "Engine": "redis", 
     "EngineVersion": "3.2.4", 
     "NumCacheNodes": "1", 
     "PreferredAvailabilityZone": { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "Az1A"]}, 
     "PreferredMaintenanceWindow": "sun:02:00-sun:03:00", 
     "CacheSubnetGroupName": { 
      "Ref": "cachesubnethubprivatecachesubnetgroup" 
     }, 
     "VpcSecurityGroupIds": [ 
      { 
      "Fn::GetAtt": [ 
       "sgiHubCacheSG", 
       "GroupId" 
      ] 
      } 
     ] 
     } 
    }, 
} 

を、私はそれが間違っていることを知っているが、私は正しいレプリカを作成する方法を見つけ出すことはできません。 cloudformerはAWS::ElastiCache::CacheClusterを作成したので、私は行くよ

:私は間を使用する必要がありますウィッヒの種類を把握することはできません開始のために、AWSドキュメントを理解することはできません2つのリソースを作成するためには、リソースが1つだけ作成されていて、NumCacheNodesというパラメータを使用していたはずです。

Redisのは使用できません。

  • NumCacheNodes
  • AZMode

PreferredAvailabilityZonesはので、私は、このソリューションマルチAZを作る方法がわからない...

答えて

1

私はAWS::ElastiCache::ReplicationGroupを使用してこれを行うことができました。NumCacheClustersパラメータは、多数のサーバを持つ可能性を提供します。注意:マスター/スレーブへの接続を自分で処理しなければならないように見えます(マスターの失敗の場合、awsは通常それを検出し、スレーブのDNSを変更して設定を変更しないようにします)。ここにサンプルがあります:

"hubElastiCacheReplicationGroup" : { 
     "Type" : "AWS::ElastiCache::ReplicationGroup", 
     "Properties" : { 
     "ReplicationGroupDescription" : "Hub WebServer redis cache cluster", 
     "AutomaticFailoverEnabled" : "false", 
     "AutoMinorVersionUpgrade" : "true", 
     "CacheNodeType" : "cache.t2.small", 
     "CacheParameterGroupName" : "default.redis3.2", 
     "CacheSubnetGroupName" : { "Ref": "cachesubnethubprivatecachesubnetgroup" }, 
     "Engine" : "redis", 
     "EngineVersion" : "3.2.4", 
     "NumCacheClusters" : { "Ref" : "ElasticacheRedisNumCacheClusters" }, 
     "PreferredMaintenanceWindow" : "sun:04:00-sun:05:00", 
     "SecurityGroupIds" : [ { "Fn::GetAtt": ["sgHubCacheSG", "GroupId"] } ] 
     } 
    }, 
関連する問題