This topic gives you reference information about the Amazon ElastiCache for Redis (csb-aws-redis) service. It details the plans, configuration parameters, and binding credentials.

Note

Tanzu Cloud Service Broker for AWS v1.5.0 removes brokerpak pre-configured plans for Amazon ElastiCache for Redis. All plans must be configured through the tile. If you have instances of Amazon ElastiCache for Redis that were created in previous versions and that you want to maintain, see Previously Provided Pre-configured Plans. For more information about upgrade steps, see Upgrading Tanzu Cloud Service Broker for AWS. Also, in Tanzu Cloud Service Broker for AWS v1.5.0 and later, changes made to this service by using the cf update-service command are applied immediately. This is instead of being queued to be applied during the maintenance window. This might result in brief downtime while the server reboots.

Plan Configuration Parameters

When configuring Cloud Service Broker for AWS you can add additional plans. For how to configure plans, see Configure Services with Cloud Service Broker for AWS.

The following table lists parameters that can only be configured for additional plans:

Parameter name Values Default Required
name The plan name. n/a Yes
id A unique GUID. n/a Yes
description Description of the new plan. n/a Yes
free When false, service instances of this service plan have a cost. true No
bindable Specifies whether service instances of the service plan can bind to applications. true No
plan_updateable Whether the plan supports upgrading, downgrading, or sidegrading to another version. true No
cache_size Deprecated. Use node_type instead. The cache size is in GB. 2–256, multiples of 2. n/a Yes
metadata.displayName Name to use when displaying the plan in the Marketplace. n/a No
metadata.bullets List of bullet points to display in Apps Manager. n/a No

You can also add any of the parameters listed in the Configuration Parameters section to your plan.

Note

If you set a parameter at plan level, developers cannot change the value when creating or updating service instances.

Configuration Parameters

You can provision a service by running:

cf create-service csb-aws-redis PLAN-NAME SERVICE-INSTANCE-NAME -c '{"PARAMETER-NAME": "PARAMETER-VALUE"}

You can update the configuration parameters for a service instance by running:

cf update-service SERVICE-INSTANCE -c '{"PARAMETER-NAME": "PARAMETER-VALUE"}'

The following table lists the parameters that you can configure, by using the -c flag, when provisioning or updating a csb-aws-redis service. The Operation column displays whether a parameter is supported for both provision and update, or for provision only:

Parameter name Type Description Default Operation
instance_name String The name of the AWS instance to create csbINSTANCE-ID provision
region String The AWS region to deploy the service in. For more information about available regions, see the AWS documentation. The value the operator entered for Region in Ops Manager. provision
node_type String The AWS instance class to be used. The node_type you select impacts costs, performance, and fault tolerance.

The node_type cannot be updated from a family of type r6gd to all other families and the reverse. For more information about node types and pricing, see the AWS documentation and
Choosing your node size.
"" provision and update
node_count Integer Number of nodes (primary and replicas) in the cluster 2 provision and update
redis_version String The version for the Redis instance to be used in the replication group. If the version is 6 or later, you can set the major and minor version. For example, 6.2. Alternatively, the minor version can be unspecified, which uses the latest version at creation time. For example, 6.x.

Otherwise, specify the full version that you want. For example, 5.0.6. In other words, redis_version must match major.minor when using version 6 or higher, or major.minor.patch. For more information about upgrading engine versions, see the AWS documentation.

The downgrade of the version is not allowed because it involves the recreation of the instance. If you try to perform the operation, the Cloud Service Broker incurs an error because of the mechanism established to prevent the destruction of the instance.
None provision and update
auto_minor_version_upgrade Boolean (Optional) Indicates that minor engine upgrades are applied automatically to the redis instance during the maintenance window. Only supported for redis version 6 and later. When setting this parameter to `true`, `redis_version` must not specify a minor version and must be in the form ` .x`. For example, `6.x`. false provision and update
data_tiering_enabled Boolean Enables data tiering. Data tiering is only supported for replication groups that use the r6gd node type. This parameter must be set to true when using r6gd nodes.

Not all versions of Redis support this feature. For more information about node types and supported Redis versions, see the AWS documentation.
false provision
aws_vpc_id String The Virtual Private Cloud (VPC) to connect the instance to The default VPC provision
elasticache_subnet_group String Pre-existing AWS Elasticache subnet group to use The value the operator entered for Subnet group in Ops Manager.
A new one is created if none is specified in Ops Manager or provision parameters.
provision
elasticache_vpc_security_group_ids String Comma-delimited list of security group IDs for the instance The value the operator entered for Security group IDs in Ops Manager.
A new one is created if none is specified in Ops Manager or provision parameters.
provision
at_rest_encryption_enabled Boolean Whether to enable encryption at rest true provision
multi_az_enabled Boolean Whether to enable Multi-AZ support for the replication group. Only applies when node_count is greater than 1. If true, automatic_failover_enabled must also be true.

Enabling Multi-AZ and then trying to deactivate the automatic failover causes an error.
true provision and update
automatic_failover_enabled Boolean Automatically promote a replica to primary if the existing primary fails. Only applies when node_count is greater than 1. You can't set this property to false unless you also deactivate Multi-AZ.

Enabling automatic failover and then trying to reduce the number of nodes to 1 causes an error.
true provision and update
kms_key_id String The ARN of the key to use if encrypting at rest. Defaults to AWS-managed key. "" provision
aws_access_key_id String The AWS Access Key to use for an instance The value the operator entered for AWS Access Key in Ops Manager provision and update
aws_secret_access_key String The corresponding secret for the AWS Access Key to use for an instance The value the operator entered for AWS Secret Access Key in Ops Manager provision and update
maintenance_day String The preferred maintenance day: Sun, Mon, Tue, Wed, Thu, Fri, or Sat. It can only be updated to a non-null value. Uses AWS default value for the region if all maintenance_* properties are null when creating the instance provision and update
maintenance_start_hour String The preferred maintenance start hour. Valid values are 00 through 23. It can only be updated to a non-null value. Uses AWS default value for the region if all maintenance_* properties are null when creating the instance provision and update
maintenance_start_min String The preferred maintenance start minute. Valid values are 00, 15, 30, 45. It can only be updated to a non-null value. Uses AWS default value for the region if all maintenance_* properties are null when creating the instance provision and update
maintenance_end_hour String The preferred maintenance end hour. Valid values are 00 through 23. It can only be updated to a non-null value. The minimum maintenance window is a 60 minute period. Uses AWS default value for the region if all maintenance_* properties are null when creating the instance provision and update
maintenance_end_min String The preferred maintenance end minute. Valid values are 00, 15, 30, 45. It can only be updated to a non-null value. The minimum maintenance window is a 60 minute period. Uses AWS default value for the region if all maintenance_* properties are null when creating the instance provision and update
backup_retention_limit Integer Number of days for which ElastiCache retains automatic cache cluster snapshots before deleting them. If set to 0, backups are deactivated. 1 provision and update
final_backup_identifier String The name of the final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot is made. null provision and update
backup_name String The name of an existing snapshot to be restored in this new instance. "" provision
backup_start_hour String The preferred backup start hour. Valid values are 00 to 23. It can only be updated to a non-null value. Uses AWS default value for the region if all backup_* properties are null when creating the instance. provision and update
backup_start_min String The preferred backup start minute. Valid values are 00, 15, 30, 45. It can only be updated to a non-null value. The minimum backup window is a 60 minute period. Uses AWS default value for the region if all backup_* properties are null when creating the instance. provision and update
backup_end_hour String The preferred backup end hour. Valid values are 00 to 23. It can only be updated to a non-null value. The minimum backup window is a 60 minute period. Uses AWS default value for the region if all backup_* properties are null when creating the instance. provision and update
backup_end_min String The preferred backup end minute. Valid values are 00, 15, 30, 45. It can only be updated to a non-null value. Uses AWS default value for the region if all backup_* properties are null when creating the instance. provision and update
parameter_group_name String Name of the custom parameter group to associate with this instance. If left unset, the default parameter group for the specified redis_version is used.

After the parameter is set, make sure that it is updated to an appropriate value when updating the redis_version. To set it to the default value, specify the name of the default parameter group for the Redis version. For example, default.redis6.x. For more information about parameter groups, see the AWS documentation.
"" provision and update
preferred_azs Array List of EC2 availability zones in which the nodes are created. The first item in the list is the primary node. The number of entries must equal node_count. After this property is set, node_count cannot be changed. [] provision
logs_slow_log_enabled Boolean Enable the streaming of Redis Slow Log to CloudWatch in JSON format. Slow Log is supported for Redis replication groups using v6.0 and later. A new CloudWatch log group is created with the name /aws/elasticache/cluster/SERVICE-INSTANCE-NAME/slow-log. Deleting the instance also deletes the log group and permanently deletes all the archived log events associated with it. false provision and update
logs_slow_log_loggroup_retention_in_days Number Specifies the number of days to retain log events in the specified log group. If 0 is specified, the events in the log group are always retained and never expire. When specifying logs_slow_log_loggroup_retention_in_days, set logs_slow_log_enabled as true. For more information and the list of valid values, see the AWS documentation. 0 provision and update
logs_slow_log_loggroup_kms_key_id String The ARN for the KMS key to encrypt Slow Log CloudWatch logs. When specifying logs_slow_log_loggroup_kms_key_id, set logs_slow_log_enabled as true. If omitted, CloudWatch default encryption applies. For information about CloudWatch log data encryption and how to configure a KMS key, see the AWS documentation. "" provision and update
logs_engine_log_enabled Boolean Enable the streaming of Redis Engine Log to CloudWatch in JSON format. Engine Log is supported for Redis replication groups using v6.2 and later. A new CloudWatch log group is created with the name /aws/elasticache/cluster/SERVICE-INSTANCE-NAME/engine-log. Deleting the instance also deletes the log group and permanently deletes all the archived log events associated with it. false provision and update
logs_engine_log_loggroup_retention_in_days Number Specifies the number of days to retain log events in the specified log group. If 0 is specified, the events in the log group are always retained and never expire. When specifying logs_engine_log_loggroup_retention_in_days, set logs_engine_log_enabled to true. For more information and the list of valid values, see the AWS documentation. 0 provision and update
logs_engine_log_loggroup_kms_key_id String The ARN for the KMS key to encrypt Engine logs CloudWatch logs. When specifying logs_engine_log_loggroup_kms_key_id, set logs_engine_log_enabled to true. If omitted, CloudWatch default encryption applies. For information about CloudWatch log data encryption and how to configure a KMS key, see the AWS documentation. "" provision and update

Binding

You can bind a service by running:

cf bind-service APP-NAME SERVICE-INSTANCE --binding-name BINDING-NAME

Cloud Service Broker for AWS returns the Redis AUTH token created at provision time alongside endpoints information to connect to the service instance.

Note

Because the Cloud Service Broker for AWS configures Redis AUTH as the authentication mechanism, all bindings share the same Redis AUTH token. Deleting the binding does not revoke the credentials.

Binding Credentials

The format for binding credentials for Redis is as follows:

{
    "name" : "REDIS-CLUSTER-NAME",
    "host" : "REDIS-PRIMARY-ENDPOINT-ADDRESS",
    "password" : "AUTHENTICATION-PASSWORD",
    "tls_port" : "REDIS-TLS-PORT",
    "reader_endpoint" : "REDIS-READER-ENDPOINT-ADDRESS"
}

host is the primary node endpoint address. This endpoint can be used both for writing and reading.

reader_endpoint is the IaaS-recommended endpoint to use for reads whenever eventual consistency is acceptable. The reader endpoint evenly splits incoming connections to the endpoint between all read replicas. For more information, see the AWS documentation.

Previously Provided Pre-configured Plans

The following table lists the previously provided plans for Amazon ElastiCache for Redis service:

Plan Cache size AWS cache node type HA
small minimum 1 GB cache.t2.small no
medium minimum 4 GB cache.m5.large no
large minimum 16 GB cache.r4.xlarge no
small-ha minimum 1 GB cache.t2.small yes
medium-ha minimum 4 GB cache.m5.large yes
large-ha minimum 16 GB cache.r4.xlarge yes

To keep these plans in this version of the broker, add them through the tile as custom plans. For how to configure plans through the tile, see Configure services with Cloud Service Broker for AWS.

Important

Property cache_size is now deprecated. Consider replacing it with its equivalent node_type. For more information, see Equivalence of cache_size and node_type. Specifying node_type in a plan prevents any existing or future service from specifying node_type as a service-specific configuration parameter.

This has strong implications for existing plans because existing services might become unmanageable if they specified a custom node_type when they were created.

When in doubt, keep using cache_size for existing plans and start using node_type for any new plans.

For more information about node types and pricing, see the AWS documentation and Choosing your node size.

Tanzu Cloud Service Broker for AWS v1.5.0 sets the default values to true for at_rest_encryption_enabled and multi_az_enabled. Because previously created instances cannot be modified to use Multi-AZ or encryption at rest, set the properties multi_az_enabled and at_rest_encryption_enabled to false when replicating the old plans to match service instances that have already been created.

Add the following block to keep the small plan:

{
  "name": "small",
  "id": "ad963fcd-19f7-4b79-8e6d-645756e84f7a",
  "description": "Redis 6.0 with 1GB cache and 1 node.",
  "cache_size": 2,
  "redis_version": "6.0",
  "node_count": 1,
  "at_rest_encryption_enabled": false,
  "multi_az_enabled": false,
  "metadata": {
    "displayName": "Small",
    "bullets": ["Redis 6.0", "1GB Cache", "1 node"]
  }
}

Add the following block to keep the medium plan:

{
  "name": "medium",
  "id": "df41095a-43e8-4be4-b4d6-ae2d8a35068d",
  "description": "Redis 6.0 with at least 4GB cache and 1 node.",
  "cache_size": 4,
  "redis_version": "6.0",
  "node_count": 1,
  "at_rest_encryption_enabled": false,
  "multi_az_enabled": false,
  "metadata": {
    "displayName": "Medium",
    "bullets": ["Redis 6.0", "4GB Cache", "1 node"]
  }
}

Add the following block to keep the large plan:

{
  "name": "large",
  "id": "da4dc49c-a64f-4d2a-8490-5e456cbb0577",
  "description": "Redis 6.0 with at least 16 GB cache and 1 node.",
  "cache_size": 16,
  "redis_version": "6.0",
  "node_count": 1,
  "at_rest_encryption_enabled": false,
  "multi_az_enabled": false,
  "metadata": {
    "displayName": "Large",
    "bullets": ["Redis 6.0", "16GB Cache", "1 node"]
  }
}

Add the following block to keep the small-ha plan:

{
  "name": "small-ha",
  "id": "70544df7-0ac4-4580-ba51-c1fbdd6fdfd0",
  "description": "Redis 6.0 with 1GB cache and 2 nodes.",
  "cache_size": 2,
  "redis_version": "6.0",
  "at_rest_encryption_enabled": false,
  "multi_az_enabled": false,
  "metadata": {
    "displayName": "Small HA",
    "bullets": ["Redis 6.0", "1GB Cache", "2 nodes"]
  }
}

Add the following block to keep the medium-ha plan:

{
  "name": "medium-ha",
  "id": "a4235008-80f4-4053-924b-defcce17cb63",
  "description": "Redis 6.0 with at least 4GB cache and 2 nodes.",
  "cache_size": 4,
  "redis_version": "6.0",
  "at_rest_encryption_enabled": false,
  "multi_az_enabled": false,
  "metadata": {
    "displayName": "Medium HA",
    "bullets": ["Redis 6.0", "4GB Cache", "2 nodes"]
  }
}

Add the following block to keep the large-ha plan:

{
  "name": "large-ha",
  "id": "f26cda6f-d4b4-473a-966c-32d238f723ef",
  "description": "Redis 6.0 with at least 16 GB cache and 2 nodes.",
  "cache_size": 16,
  "redis_version": "6.0",
  "at_rest_encryption_enabled": false,
  "multi_az_enabled": false,
  "metadata": {
    "displayName": "Large HA",
    "bullets": ["Redis 6.0", "16GB Cache", "2 nodes"]
  }
}

Equivalence of cache_size and node_type

Table of equivalents for cache_size and node_type for the previously pre-configured plans:

Plan Cache size Description AWS cache node type HA
small 1 minimum 1 GB cache.t2.small no
medium 4 minimum 4 GB cache.m5.large no
large 16 minimum 16 GB cache.r4.xlarge no
small-ha 1 minimum 1 GB cache.t2.small yes
medium-ha 4 minimum 4 GB cache.m5.large yes
large-ha 16 minimum 16 GB cache.r4.xlarge yes

Table of equivalents for cache_size and node_type not used by any of the previously pre-configured plans:

Cache size AWS cache node type
2 cache.t3.medium
8 cache.m5.xlarge
32 cache.r4.2xlarge
64 cache.r4.4xlarge
128 cache.r4.8xlarge
256 cache.r5.12xlarge
check-circle-line exclamation-circle-line close-line
Scroll to top icon