メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::ElastiCache::CacheCluster

AWS::ElastiCache::CacheCluster タイプは、Amazon ElastiCache キャッシュクラスターを作成します。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

Copy
{ "Type" : "AWS::ElastiCache::CacheCluster", "Properties" : { "AutoMinorVersionUpgrade" : Boolean, "AZMode" : String, "CacheNodeType" : String, "CacheParameterGroupName" : String, "CacheSecurityGroupNames" : [ String, ... ], "CacheSubnetGroupName" : String, "ClusterName" : String, "Engine" : String, "EngineVersion" : String, "NotificationTopicArn" : String, "NumCacheNodes" : Integer, "Port" : Integer, "PreferredAvailabilityZone" : String, "PreferredAvailabilityZones" : [String, ... ], "PreferredMaintenanceWindow" : String, "SnapshotArns" : [String, ... ], "SnapshotName" : String, "SnapshotRetentionLimit" : Integer, "SnapshotWindow" : String, "Tags" : [Resource Tag, ...], "VpcSecurityGroupIds" : [String, ...] } }

YAML

Copy
Type: "AWS::ElastiCache::CacheCluster" Properties: AutoMinorVersionUpgrade: Boolean AZMode: String CacheNodeType: String CacheParameterGroupName: String CacheSecurityGroupNames: - String CacheSubnetGroupName: String ClusterName: String Engine: String EngineVersion: String NotificationTopicArn: String NumCacheNodes: Integer Port: Integer PreferredAvailabilityZone: String PreferredAvailabilityZones: - String PreferredMaintenanceWindow: String SnapshotArns: - String SnapshotName: String SnapshotRetentionLimit: Integer SnapshotWindow: String Tags: - Resource Tag VpcSecurityGroupIds: - String

プロパティ

有効な値については、Amazon ElastiCache API Referenceの「CreateCacheCluster」を参照してください。

AutoMinorVersionUpgrade

メンテナンス時間中に自動的にマイナーエンジンアップグレードがキャッシュクラスターに適用されることを示します。

Required: No

Type: Boolean

デフォルト: true

更新に伴う要件: 中断はありません。

AZMode

Memcached キャッシュクラスターの場合、ノードが単一のアベイラビリティーゾーンで作成されたものか、クラスターのリージョン内の複数のノード間で作成されたものかを示します。有効な値については、Amazon ElastiCache API Referenceの「CreateCacheCluster」を参照してください。

Required: Conditional。PreferredAvailabilityZones プロパティで複数のアベイラビリティーゾーンを指定した場合、このプロパティのクロスアベイラビリティーゾーンを指定する必要があります。

Type: String

更新に伴う要件: 中断はありません。

CacheNodeType

キャッシュクラスター内のノードのコンピューティング容量とメモリ容量。

Required: Yes

Type: String

更新に伴う要件: 一時的な中断。

CacheParameterGroupName

このキャッシュクラスターに関連付けられているキャッシュパラメーターグループの名前。

Required: No

Type: String

更新に伴う要件: 一時的な中断。

CacheSecurityGroupNames

このキャッシュクラスターに関連付けられているキャッシュセキュリティグループ名のリスト。キャッシュクラスターが VPC にある場合は、VpcSecurityGroupIds プロパティを代わりに指定してください。

Required: Conditional: キャッシュクラスターが VPC に存在しない場合、このプロパティを指定する必要があります。

Type: List of String values

更新に伴う要件: 中断はありません。

CacheSubnetGroupName

キャッシュクラスターに関連付けるキャッシュサブネットグループ。

Required: Conditional。VpcSecurityGroupIds プロパティを指定した場合は、このプロパティを指定する必要があります。

Type: String

更新に伴う要件: 置換

ClusterName

キャッシュクラスターの名前。名前を指定しない場合、AWS CloudFormation は一意の物理 ID を生成し、その ID をキャッシュクラスター名として使用します。詳細については、「Name タイプ」を参照してください。

重要

名前を指定すると、このリソースの置換が必要な更新はできません。中断が不要であるか、一定の中断が必要な更新であれば、行うことができます。リソースを置き換える必要がある場合は、新しい名前を指定します。

1~20 文字の英数字またはハイフンを含める必要があります。名前は文字で開始し、ハイフン以外で終了する必要があります。ハイフンを 2 つ続けて使用することはできません。

Required: No

Type: String

更新に伴う要件: 置換

Engine

このキャッシュクラスターに使用するキャッシュエンジンの名前 (memcachedredis など)。

Required: Yes

Type: String

更新に伴う要件: 置換

EngineVersion

このクラスターに使用するキャッシュエンジンのバージョン。

Required: No

Type: String

更新に伴う要件: 一時的な中断。

NotificationTopicArn

通知の送信先である Amazon Simple Notification Service (SNS) トピックの Amazon Resource Name (ARN)。

Required: No

Type: String

更新に伴う要件: 中断はありません。

NumCacheNodes

キャッシュクラスターに必要なキャッシュノードの数。

Required: Yes

Type: Integer

更新に伴う要件: 中断はありません。. ただし、PreferredAvailabilityZone および PreferredAvailabilityZones プロパティを以前に指定しておらず、新しい値を指定していない場合、更新の要件として置換が必要です。

Port

各キャッシュノードが接続を受け付けるポート番号。

Required: No

Type: Integer

更新に伴う要件: 置換

PreferredAvailabilityZone

キャッシュクラスターが作成される Amazon EC2 アベイラビリティーゾーン。

Required: No

Type: String

更新に伴う要件: 置換

PreferredAvailabilityZones

Memcached キャッシュクラスターの場合、キャッシュノードが作成されるアベイラビリティーゾーンのリスト。リストされたアベイラビリティーゾーンの数は、キャッシュノードの数と同じである必要があります。たとえば、3 つのノードを 2 つの別々のアベイラビリティーゾーンに作成する場合は、["us-east-1a", "us-east-1a", "us-east-1b"] を指定することで、us-east-1a に 2 つのノード、us-east-1b に 1 つのノードを作成できます。

サブネットグループを指定し、VPC 内にキャッシュクラスターを作成する場合、選択したサブネット内のサブネットに関連付けられたアベイラビリティーゾーンを指定する必要があります。

すべてのノードを同じアベイラビリティーゾーンに含める場合は、PreferredAvailabilityZone プロパティを使用するか、リスト内のアベイラビリティーゾーンを複数回使用します。

Required: No

Type: List of String values

テンプレート (PreferredAvailabilityZone プロパティなど) に以前指定したアベイラビリティーゾーンを指定する場合、更新に一時的な中断が必要です。また、PreferredAvailabilityZones プロパティがすでに指定されていて、その値を更新する場合は (同じアベイラビリティーゾーンを指定するかどうかにかかわらず)、更新に一時的な中断が必要です。

その他のすべての更新には置換が必要です。

PreferredMaintenanceWindow

週 1 回のシステムメンテナンスを実行できる時間帯 (UTC)

Required: No

Type: String

更新に伴う要件: 中断はありません。

SnapshotArns

新しい Redis キャッシュクラスターへの初期データ投入に使用するスナップショットファイルの ARN。Redis インスタンスを Amazon ElastiCache の外部で管理する場合、Amazon S3 バケットに保存されているスナップショットファイルを使用して、新しいキャッシュクラスターを ElastiCache に作成できます。

Required: No

Type: List of String values

更新に伴う要件: 置換

SnapshotName

新しい Redis キャッシュクラスターへのデータの復元元のスナップショット名。

Required: No

Type: String

更新に伴う要件: 置換

SnapshotRetentionLimit

Redis キャッシュクラスターの場合、自動スナップショットが削除される前に ElastiCache で保持される日数です。たとえば、値を 5 に設定すると、今日取得したスナップショットは 5 日間保持された後、削除されます。

Required: No

Type: Integer

更新に伴う要件: 中断はありません。

SnapshotWindow

Redis キャッシュクラスターの場合、ノードグループの 1 日 1 回のスナップショットの取得を ElastiCache が開始する時間範囲 (UTC) です。たとえば、05:00-09:00 と指定することができます。

Required: No

Type: String

更新に伴う要件: 中断はありません。

Tags

このキャッシュクラスターに対する任意のタグのセット (キーと値のペア)。

Required: No

Type: AWS CloudFormation Resource Tags

更新に伴う要件: 中断はありません。

VpcSecurityGroupIds

VPC セキュリティグループ ID のリスト。キャッシュクラスターが VPC にない場合は、CacheSecurityGroupNames プロパティを代わりに指定してください。

注記

VPC に存在する ElastiCache セキュリティグループを指定する場合は、AWS::ElastiCache::SecurityGroup リソースの代わりに AWS::EC2::SecurityGroup リソースを使用する必要があります。加えて、AWS アカウントにデフォルト VPC を使用する場合、 (Ref 関数ではなく) Fn::GetAtt 関数と GroupId 属性を使用してセキュリティグループ ID を取得する必要があります。サンプルテンプレートについては、「テンプレートスニペット」のセクションを参照してください。

Required: Conditional: キャッシュクラスターが VPC に存在する場合、このプロパティを指定する必要があります。

Type: List of String values

更新に伴う要件: 中断はありません。

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref によりリソース名が返されます。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

ConfigurationEndpoint.Address

Memcached キャッシュクラスターの設定エンドポイントの DNS アドレス。

ConfigurationEndpoint.Port

Memcached キャッシュクラスターの設定エンドポイントのポート番号。

RedisEndpoint.Address

Redis キャッシュクラスターの設定エンドポイントの DNS アドレス。

RedisEndpoint.Port

Redis キャッシュクラスターの設定エンドポイントのポート番号。

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

テンプレートスニペット

デフォルト VPC のクラスター

次のスニペットは、デフォルト VPC に存在するセキュリティグループの ElastiCache クラスターを表しています。通常、VPC 内のセキュリティグループは、VPC ID を指定する必要があります。このケースでは、セキュリティグループでデフォルト VPC が使用されているため、VPC ID は必要ありません。セキュリティグループに VPC を指定する場合は、その VpcId プロパティを指定します。

キャッシュクラスターでは、VpcSecurityGroupIds プロパティを使用して、クラスターをセキュリティグループに関連付けます。VpcSecurityGroupIds プロパティは、 (セキュリティグループ名ではなく) セキュリティグループ ID を必要とするため、このテンプレートスニペットでは、ElasticacheSecurityGroup リソースに対し、Ref 関数ではなく Fn::GetAtt 関数を使用しています。Ref 関数はセキュリティグループの名前を返します。セキュリティグループの VPC ID を指定すると、Ref はセキュリティグループ ID を返します。

InstanceSecurityGroup は、このスニペットで実際に定義されていないセキュリティグループの論理名を参照していることに注意してください。SourceSecurityGroupName プロパティの詳細については、「AWS::EC2::SecurityGroupIngress」を参照してください。

JSON

Copy
"ElasticacheSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": "Elasticache Security Group", "SecurityGroupIngress": [ { "IpProtocol": "tcp", "FromPort": "11211", "ToPort": "11211", "SourceSecurityGroupName": {"Ref": "InstanceSecurityGroup"} } ] } }, "ElasticacheCluster": { "Type": "AWS::ElastiCache::CacheCluster", "Properties": { "AutoMinorVersionUpgrade": "true", "Engine": "memcached", "CacheNodeType": "cache.t2.micro", "NumCacheNodes": "1", "VpcSecurityGroupIds": [{"Fn::GetAtt": [ "ElasticacheSecurityGroup", "GroupId"]}] } }

YAML

Copy
ElasticacheSecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Elasticache Security Group" SecurityGroupIngress: - IpProtocol: "tcp" FromPort: "11211" ToPort: "11211" SourceSecurityGroupName: Ref: "InstanceSecurityGroup" ElasticacheCluster: Type: "AWS::ElastiCache::CacheCluster" Properties: AutoMinorVersionUpgrade: "true" Engine: "memcached" CacheNodeType: "cache.t2.micro" NumCacheNodes: "1" VpcSecurityGroupIds: - Fn::GetAtt: - "ElasticacheSecurityGroup" - "GroupId"

複数のアベイラビリティーゾーンの Memcached ノード

次の例では、3 つのノードで 1 つのキャッシュクラスターを起動します。ここでは、us-west-2a に 2 つのノード、us-west-2b に 1 つのノードが作成を作成します。

JSON

Copy
"myCacheCluster" : { "Type": "AWS::ElastiCache::CacheCluster", "Properties" : { "AZMode" : "cross-az", "CacheNodeType" : "cache.m3.medium", "Engine" : "memcached", "NumCacheNodes" : "3", "PreferredAvailabilityZones" : [ "us-west-2a", "us-west-2a", "us-west-2b" ] } }

YAML

Copy
myCacheCluster: Type: "AWS::ElastiCache::CacheCluster" Properties: AZMode: "cross-az" CacheNodeType: "cache.m3.medium" Engine: "memcached" NumCacheNodes: "3" PreferredAvailabilityZones: - "us-west-2a" - "us-west-2a" - "us-west-2b"

以下の資料も参照してください。