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.38.tar.gz
(41.3 kB
view details)
Built Distribution
File details
Details for the file cdk-redisdb-0.0.38.tar.gz
.
File metadata
- Download URL: cdk-redisdb-0.0.38.tar.gz
- Upload date:
- Size: 41.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ad4f72c8c428033349ce6d55bbc57cfa773aad6edc42d76224b69afbab7eec0 |
|
MD5 | 9df97e64dd554716bcff42167ac05cfd |
|
BLAKE2b-256 | a2109fd85b66c6b77b66344c925757fc927e66fff8b843a0038e540a72ec780c |
File details
Details for the file cdk_redisdb-0.0.38-py3-none-any.whl
.
File metadata
- Download URL: cdk_redisdb-0.0.38-py3-none-any.whl
- Upload date:
- Size: 39.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2eba274d64d10b79871c47ca8593a39b4d6be0fc89ff9d69c1dd8aecc3b95eaa |
|
MD5 | c7a4e0564b9d1d816b4f8a11682ad67c |
|
BLAKE2b-256 | 6c013f5691dae7136577a38971fd2022cc91ba2f495e899cc60d316d89059950 |