New in version 2017.7.0.
Create, destroy and update Elasticache clusters. Be aware that this interacts with Amazon's services, and so may incur charges.
This module uses boto3 behind the scenes - as a result it inherits any limitations it boto3's implementation of the AWS API. It is also designed to as directly as possible leverage boto3's parameter naming and semantics. This allows one to use http://boto3.readthedocs.io/en/latest/reference/services/elasticache.html as an excellent source for details too involved to reiterate here.
Note: This module is designed to be transparent ("intentionally ignorant" is the phrase I used to describe it to my boss) to new AWS / boto options - since all AWS API params are passed directly through both the state and executions modules, any new args to existing functions which become available after this documentation is written should work immediately.
Brand new API calls, of course, would still require new functions to be added :)
This module accepts explicit elasticache credentials but can also utilize IAM roles assigned to the instance through Instance Profiles. Dynamic credentials are then automatically obtained from AWS API and no further configuration is necessary. More information is available here.
If IAM roles are not used you need to specify them either in a pillar file or in the minion's config file:
elasticache.keyid: GKTADJGHEIQSXMKKRBJ08H
elasticache.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
It's also possible to specify key
, keyid
and region
via a profile, either
passed in as a dict, or as a string to pull from pillars or minion config:
myprofile:
keyid: GKTADJGHEIQSXMKKRBJ08H
key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
region: us-east-1
Ensure myelasticache exists:
boto3_elasticache.present:
- name: myelasticache
- engine: redis
- cache_node_type: cache.t1.micro
- num_cache_nodes: 1
- notification_topic_arn: arn:aws:sns:us-east-1:879879:my-sns-topic
- region: us-east-1
- keyid: GKTADJGHEIQSXMKKRBJ08H
- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
# Using a profile from pillars
Ensure myelasticache exists:
boto3_elasticache.present:
- name: myelasticache
- engine: redis
- cache_node_type: cache.t1.micro
- num_cache_nodes: 1
- notification_topic_arn: arn:aws:sns:us-east-1:879879:my-sns-topic
- region: us-east-1
- profile: myprofile
# Passing in a profile
Ensure myelasticache exists:
boto3_elasticache.present:
- name: myelasticache
- engine: redis
- cache_node_type: cache.t1.micro
- num_cache_nodes: 1
- notification_topic_arn: arn:aws:sns:us-east-1:879879:my-sns-topic
- region: us-east-1
- profile:
keyid: GKTADJGHEIQSXMKKRBJ08H
key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
salt.states.boto3_elasticache.
cache_cluster_absent
(name, wait=600, region=None, key=None, keyid=None, profile=None, **args)¶Ensure a given cache cluster is deleted.
salt.states.boto3_elasticache.
cache_cluster_present
(name, wait=900, security_groups=None, region=None, key=None, keyid=None, profile=None, **args)¶Ensure a given cache cluster exists.
One or more VPC security groups (names and/or IDs) associated with the cache cluster.
Note
This is additive with any sec groups provided via the SecurityGroupIds parameter below. Use this parameter ONLY when you are creating a cluster in a VPC.
The node group (shard) identifier. This parameter is stored as a lowercase string.
Constraints:
Note
In general this parameter is not needed, as 'name' is used if it's not provided.
Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. If the AZMode and PreferredAvailabilityZones are not specified, ElastiCache assumes single-az mode.
Note
This parameter is ONLY supported for Memcached cache clusters.
The EC2 Availability Zone in which the cache cluster is created. All nodes belonging to this Memcached cache cluster are placed in the preferred Availability Zone. If you want to create your nodes across multiple Availability Zones, use PreferredAvailabilityZones.
Default: System chosen Availability Zone.
A list of the Availability Zones in which cache nodes are created. The order of the zones in the list is not important. The number of Availability Zones listed must equal the value of NumCacheNodes. If you want all the nodes in the same Availability Zone, use PreferredAvailabilityZone instead, or repeat the Availability Zone multiple times in the list.
Default: System chosen Availability Zones.
Note
This option is ONLY supported on Memcached.
If you are creating your cache cluster in an Amazon VPC (recommended) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group.
The initial (integer) number of cache nodes that the cache cluster has.
Note
For clusters running Redis, this value must be 1.
For clusters running Memcached, this value must be between 1 and 20.
The compute and memory capacity of the nodes in the node group (shard). Valid node types (and pricing for them) are exhaustively described at https://aws.amazon.com/elasticache/pricing/
Note
All T2 instances must be created in a VPC
Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.
Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances.
The version number of the cache engine to be used for this cache cluster. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.
Note
You can upgrade to a newer engine version but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version.
The name of the Cache Subnet Group to be used for the cache cluster. Use this parameter ONLY when you are creating a cache cluster within a VPC.
Note
If you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster.
A single-element string list containing an Amazon Resource Name (ARN) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot file is used to populate the node group (shard). The Amazon S3 object name in the ARN cannot contain any commas.
Note
This parameter is ONLY valid if the Engine parameter is redis.
The name of a Redis snapshot from which to restore data into the new node group (shard). The snapshot status changes to restoring while the new node group (shard) is being created.
Note
This parameter is ONLY valid if the Engine parameter is redis.
Specifies the weekly time range during which maintenance on the cache cluster is permitted. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun, mon, tue, wed, thu, fri, sat
Example: sun:23:00-mon:01:30
The port number on which each of the cache nodes accepts connections.
Default: 6379
The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic to which notifications are sent.
Note
The Amazon SNS topic owner must be the same as the cache cluster owner.
The number of days for which ElastiCache retains automatic snapshots before deleting them.
Default: 0 (i.e., automatic backups are disabled for this cache cluster).
Note
This parameter is ONLY valid if the Engine parameter is redis.
The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.
Example: 05:00-09:00
Note
This parameter is ONLY valid if the Engine parameter is redis.
The password used to access a password protected server.
Password constraints:
The status of the SNS notification topic. Notifications are sent only if the status is active.
Valid values: active | inactive
salt.states.boto3_elasticache.
cache_subnet_group_absent
(name, region=None, key=None, keyid=None, profile=None, **args)¶Ensure a given cache subnet group is deleted.
salt.states.boto3_elasticache.
cache_subnet_group_present
(name, subnets=None, region=None, key=None, keyid=None, profile=None, **args)¶Ensure cache subnet group exists.
salt.states.boto3_elasticache.
replication_group_absent
(name, wait=600, region=None, key=None, keyid=None, profile=None, **args)¶Ensure a given replication group is deleted.
salt.states.boto3_elasticache.
replication_group_present
(name, wait=900, security_groups=None, region=None, key=None, keyid=None, profile=None, **args)¶Ensure a replication group exists and is in the given state.
One or more VPC security groups (names and/or IDs) associated with the cache cluster.
Note
This is additive with any sec groups provided via the SecurityGroupIds parameter below. Use this parameter ONLY when you are creating a cluster in a VPC.
The replication group identifier. This parameter is stored as a lowercase string.
Constraints:
Note
In general this parameter is not needed, as 'name' is used if it's not provided.
Specifies whether a read-only replica is automatically promoted to read/write primary if the existing primary fails. If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group.
Default: False
Note
AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) replication groups.
ElastiCache Multi-AZ replication groups is not supported on:
A list of EC2 Availability Zones in which the replication group's cache clusters are created. The order of the Availability Zones in the list is the order in which clusters are allocated. The primary cluster is created in the first AZ in the list. This parameter is not used if there is more than one node group (shard). You should use NodeGroupConfiguration instead. The number of Availability Zones listed must equal the value of NumCacheClusters.
Default: System chosen Availability Zones.
Note
If you are creating your replication group in an Amazon VPC (recommended), you can only locate cache clusters in Availability Zones associated with the subnets in the selected subnet group.
An optional parameter that specifies the number of node groups (shards) for this Redis (cluster mode enabled) replication group. For Redis (cluster mode disabled) either omit this parameter or set it to 1.
Default: 1
The version number of the cache engine to be used for the cache clusters in this replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation.
Note
You can upgrade to a newer engine version but you cannot downgrade to an earlier engine version. If you want to use an earlier engine version, you must delete the existing cache cluster or replication group and create it anew with the earlier engine version.
The name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used.
Note
If you are running Redis version 3.2.4 or later, only one node group (shard), and want to use a default parameter group, we recommend that you specify the parameter group by name.
To create a Redis (cluster mode disabled) replication group, use CacheParameterGroupName=default.redis3.2
To create a Redis (cluster mode enabled) replication group, use CacheParameterGroupName=default.redis3.2.cluster.on
The name of the cache subnet group to be used for the replication group.
Note
If you're going to launch your cluster in an Amazon VPC, you need to create a s group before you start creating a cluster. For more information, see Subnets and Subnet Groups.
A list of ARNs that uniquely identify the Redis RDB snapshot files stored in Amazon S3. These snapshot files are used to populate the replication group. The Amazon S3 object name in the ARN cannot contain any commas. The list must match the number of node groups (shards) in the replication group, which means you cannot repartition.
Note
This parameter is only valid if the Engine parameter is redis.
Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for ddd are: sun, mon, tue, wed, thu, fri, sat
Example: sun:23:00-mon:01:30
The ARN of an SNS topic to which notifications are sent.
Note
The SNS topic owner must be the same as the cache cluster owner.
The number of days for which ElastiCache will retain automatic snapshots before deleting them.
Default: 0 (that is, automatic backups are disabled for this cache cluster).
Note
This parameter is only valid if the Engine parameter is redis.
The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of your node group (shard). If you do not specify this parameter, ElastiCache automatically chooses an appropriate time range.
Example: 05:00-09:00
Note
This parameter is only valid if the Engine parameter is redis.
The password used to access a password protected server. Password constraints: