Simple & featureful Redis on AWS - Elasticache Replication Group & MemoryDB with a unified API
Project description
cdk-redisdb
An AWS CDK construct which spins up an Elasticache Replication Group, or a MemoryDB Cluster.
Usage (TypeScript/JavaScript)
Install via npm:
$ npm i cdk-redisdb
Add an Elasticache Replication Group to your CDK stack:
import { RedisDB } from 'cdk-redisdb'
new RedisDB(this, 'redisdb-repl-group', {
nodes: 1,
nodeType: 'cache.m6g.large',
engineVersion: '6.2',
})
Add a MemoryDB Cluster to your CDK stack:
import { MemoryDB } from 'cdk-redisdb'
new MemoryDB(this, 'memorydb-repl-group', {
nodes: 1,
nodeType: 'db.t4g.small',
engineVersion: '6.2',
})
Specify a VPC rather than having a VPC auto-created for you:
import { MemoryDB } from 'cdk-redisdb'
let vpc = new ec2.Vpc(this, 'Vpc', {
subnetConfiguration: [
{
cidrMask: 24,
name: 'public1',
subnetType: ec2.SubnetType.PUBLIC,
},
{
cidrMask: 24,
name: 'isolated1',
subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
},
],
})
new RedisDB(this, 'redis-use-existing-vpc', {
existingVpc: vpc,
})
Add 2 replicas per node, and add shards to cluster when memory exceeds 60%.
import { RedisDB } from 'cdk-redisdb'
new RedisDB(this, 'redisdb-repl-group', {
nodes: 1,
replicas: 2, // 2 replicas per node
nodeType: 'cache.m6g.large',
memoryAutoscalingTarget: 60,
// nodesCpuAutoscalingTarget
})
import { RedisDB } from 'cdk-redisdb'
let vpc = new ec2.Vpc(this, 'Vpc', {
subnetConfiguration: [
{
cidrMask: 24,
name: 'public1',
subnetType: ec2.SubnetType.PUBLIC,
},
{
cidrMask: 24,
name: 'isolated1',
subnetType: ec2.SubnetType.PRIVATE,
},
],
})
const ecSecurityGroup = new ec2.SecurityGroup(this, 'elasticache-sg', {
vpc: vpc,
description: 'SecurityGroup associated with the ElastiCache Redis Cluster',
allowAllOutbound: false,
});
new RedisDB(this, 'redisdb-repl-group', {
nodes: 1,
nodeType: 'cache.m6g.large',
nodesCpuAutoscalingTarget: 50,
existingVpc: vpc,
existingSecurityGroup: ecSecurityGroup,
})
Features in progress:
- MemoryDB ACLs (commented out to avoid default bad practices, read comments to understand the CloudFormation)
Features to come:
- Replication Groups with cluster mode disabled (for those using multiple databases)
- Improved API - sane choice of props
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cdk-redisdb-0.0.23.tar.gz
(41.1 kB
view hashes)
Built Distribution
Close
Hashes for cdk_redisdb-0.0.23-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71db051a111343b7122e2cca62f43e9fd759cd4e7321fe90a5fd391219261c79 |
|
MD5 | 43f11ed478797ae594a0cfddbd8f8e88 |
|
BLAKE2b-256 | 5c380822e4d42885acb97abc76d383b8784a027667cd177e728b1e9161537bc0 |