Skip to content

Commit 9daf178

Browse files
authored
Update README.md
fixed broken link and improved readme
1 parent 7ccd33b commit 9daf178

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

migration/online/zdm-proxy/README.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,21 @@
22

33
This project extends the official [ ZDM Proxy](https://github.com/datastax/zdm-proxy) to support seamless **zero-downtime migration** from **Apache Cassandra** to **Amazon Keyspaces (for Apache Cassandra)** with AWS best practices.
44

5-
It introduces key enhancements:
5+
The ZDM Proxy features:
6+
- Used to perform online migration from one Cassandra cluster to another.
7+
- Can perform dual writes without refactoring existing applications
8+
- Perform perform dual reads for query validation
9+
10+
This repository introduces key enhancements for use with Amazon Web Services and Amazon Keyspaces:
611

712
- A custom Docker image hosted in **Amazon ECR** for VPC-accessible deployments.
813
- A **CloudFormation template** to deploy the proxy on **AWS Fargate**, ensuring a scalable, serverless, and secure setup within your existing AWS infrastructure.
14+
- customization to support keyspaces system tables.
915

1016

1117
The proxy is deployed with Amazon ECS on Fargate which can scale up and down based on application demand. The Network load balancer allows application traffic to be distributed across a number of ECS tasks.
1218

13-
![this screenshot](/aws-ecs-zdm.drawio.png)
19+
![this screenshot](aws-ecs-zdm.drawio.png)
1420

1521

1622

@@ -31,26 +37,27 @@ The proxy is deployed with Amazon ECS on Fargate which can scale up and down bas
3137

3238
- **VPCId**: ID of your target VPC.
3339
- **PrivateSubnetIds**: List of private subnet IDs.
34-
- **SecurityGroupId**: Security Group for the Network Load Balancer.
35-
- **RouteTableId**: Optional; for route management if using PrivateLink.
40+
- **SecurityGroupId**: Security Group for the Network Load Balancer, and the ECS cluster.
41+
- **RouteTableId**: Used for S3 gateway.
3642

3743
### 🔄 Origin & Target Cassandra Config
3844

3945
- **ZDMOriginContactPoints**, **ZDMTargetContactPoints**: IP/DNS for the clusters.
40-
- **ZDMOriginPort**, **ZDMTargetPort**: Usually 9042 for Cassandra, 9142 for Amazon Keyspaces.
41-
- **ZDMOriginUsername/Password**, **ZDMTargetUsername/Password**: Auth credentials.
46+
- **ZDMOriginPort**, **ZDMTargetPort**: Usually 9042 for Cassandra, always 9142 for Amazon Keyspaces.
47+
- **ZDMOriginUsername/Password**, **ZDMTargetUsername/Password**: Auth credentials. For Keyspaces see [Create service-specific credentials](https://docs.aws.amazon.com/keyspaces/latest/devguide/programmatic.credentials.ssc.html)
4248

4349
### ⚙️ Proxy Config
4450

45-
- **ServiceReplicaCount**: Number of ECS tasks to launch.
46-
- **ZDMProxyPort**: Port for the proxy service. Default is `14002`.
51+
- **ServiceReplicaCount**: Number of ECS tasks to launch. 3 is a good start
52+
- **ZDMProxyPort**: Port for the proxy service and networkload blancer. Default is `14002`. Do not use 9142.
4753

4854
---
4955

5056
## 📦 Deployment Instructions
5157

52-
### 1. 🧱 Build and Push Image
58+
### 1. 🧱 Build and Push Image to Amazon Elastic Container Registery
5359

60+
The following will download zdmproxy image, apply the best practices for Amazon Keyspaces captured in this projects [Dockerfile](DockerFile)
5461
```bash
5562
./move-docker-to-ecr.sh
5663
```
@@ -64,16 +71,10 @@ Upload the `zdm-proxy-cloudformation.yaml` to S3 or the AWS Console and deploy i
6471
## 🔐 Security and TLS
6572

6673
- TLS is handled via Amazon Keyspaces' default requirement. The proxy ensures secure, in-transit communication.
74+
- If using TLS for self managed cassandra, include it in the DockerFile.
6775

6876
---
6977

70-
## ✅ Best Practices for Amazon Keyspaces
71-
72-
- Uses **port 9142** for CQL over TLS as required by Amazon Keyspaces.
73-
- Supports **DNS-based discovery** of Amazon Keyspaces via `entrypoint.sh`.
74-
- Deployable **entirely within a VPC** for added security and compliance.
75-
76-
---
7778

7879
## 🧪 Testing & Validation
7980

0 commit comments

Comments
 (0)