ReplicationGroup ​
The ReplicationGroup resource allows you to manage AWS ElastiCache ReplicationGroups for high availability and fault tolerance in your caching layers.
Minimal Example ​
Create a basic ReplicationGroup with required properties and a few common optional configurations.
ts
import AWS from "alchemy/aws/control";
const basicReplicationGroup = await AWS.ElastiCache.ReplicationGroup("basicReplicationGroup", {
ReplicationGroupDescription: "Basic replication group for caching",
ReplicationGroupId: "basic-replication-group",
CacheNodeType: "cache.t2.micro",
Engine: "redis",
NumCacheClusters: 2,
AutomaticFailoverEnabled: true
});
Advanced Configuration ​
Configure a ReplicationGroup with advanced settings such as encryption and preferred maintenance windows.
ts
const advancedReplicationGroup = await AWS.ElastiCache.ReplicationGroup("advancedReplicationGroup", {
ReplicationGroupDescription: "Advanced replication group with encryption",
ReplicationGroupId: "advanced-replication-group",
CacheNodeType: "cache.m5.large",
Engine: "redis",
NumCacheClusters: 3,
AtRestEncryptionEnabled: true,
TransitEncryptionEnabled: true,
PreferredMaintenanceWindow: "sun:05:00-sun:06:00",
SnapshotRetentionLimit: 7,
SnapshotWindow: "05:00-06:00"
});
Multi-AZ Configuration ​
Create a ReplicationGroup designed for Multi-AZ deployment for better availability.
ts
const multiAZReplicationGroup = await AWS.ElastiCache.ReplicationGroup("multiAZReplicationGroup", {
ReplicationGroupDescription: "Multi-AZ replication group",
ReplicationGroupId: "multi-az-replication-group",
CacheNodeType: "cache.r5.large",
Engine: "memcached",
NumCacheClusters: 2,
MultiAZEnabled: true,
PreferredCacheClusterAZs: ["us-east-1a", "us-east-1b"]
});
Using Node Group Configuration ​
Define a ReplicationGroup with specific node group configurations to control the number of replicas per node group.
ts
const customNodeGroupReplicationGroup = await AWS.ElastiCache.ReplicationGroup("customNodeGroupReplicationGroup", {
ReplicationGroupDescription: "Replication group with custom node group config",
ReplicationGroupId: "custom-node-group-replication-group",
CacheNodeType: "cache.r5.large",
Engine: "redis",
NodeGroupConfiguration: [{
NodeGroupId: "0001",
ReplicasPerNodeGroup: 2,
PrimaryAvailabilityZone: "us-west-2a",
ReplicaAvailabilityZones: ["us-west-2b", "us-west-2c"]
}],
AutomaticFailoverEnabled: true
});
These examples illustrate how to effectively manage AWS ElastiCache ReplicationGroups using Alchemy, enabling you to create scalable and resilient caching solutions.