This repository contains a collection of standalone Terraform projects for deploying various Redis infrastructure configurations on AWS. Each project is designed to be independently deployable and serves different use cases in Redis migration and testing scenarios.
redis-terraform-projects/
├── README.md # This file
├── redis-cloud-migration-demo/ # Complete Redis Cloud migration workflow
├── elasticache-only/ # AWS ElastiCache Redis deployment
├── redis-cloud-only/ # Redis Cloud standalone deployment
├── redis-cloud-riot/ # Redis Cloud + RIOT migration tools
├── riot-tooling-only/ # RIOT tools with local Redis OSS
└── vpc-only/ # Standalone VPC infrastructure
Complete Redis Cloud migration workflow - End-to-end migration infrastructure including:
- AWS VPC with public/private subnets
- Redis Cloud subscription and database
- AWS ElastiCache Redis cluster
- RIOT EC2 instance for migration tools
- VPC peering between AWS and Redis Cloud
- Comprehensive monitoring and observability
- Cutover management UI
Redis Cloud standalone - Minimal Redis Cloud deployment:
- Redis Cloud subscription and database
- Basic networking configuration
- Ideal for testing Redis Cloud features in isolation
Redis Cloud + Migration Tools - Redis Cloud with RIOT tooling:
- Redis Cloud subscription and database
- AWS VPC and networking
- RIOT EC2 instance with migration tools
- VPC peering for private connectivity
- Perfect for Redis Cloud migration projects
RIOT Tools + Local Redis - Migration tooling environment:
- AWS VPC and EC2 infrastructure
- RIOT-X migration tools
- Local Redis OSS instance
- Prometheus and Grafana monitoring
- Great for testing migration scripts and tooling
AWS ElastiCache - AWS-native Redis deployment:
- AWS VPC with subnets
- ElastiCache Redis cluster
- Security groups and networking
- Ideal for AWS-native Redis testing
VPC Infrastructure - Reusable networking foundation:
- AWS VPC with public/private subnets
- Internet Gateway and route tables
- Security groups
- Foundation for other projects
- AWS CLI configured with appropriate credentials
- Terraform >= 1.0 installed
- Redis Cloud account (for Redis Cloud projects)
- SSH key pair in AWS (specified in terraform.tfvars)
- Navigate to any project directory
- Review and update
terraform.tfvars
with your specific values - Initialize and apply:
terraform init terraform plan terraform apply
Each project includes:
terraform.tfvars
- Pre-configured with your credentials and settingsvariables.tf
- Variable definitions and validationmain.tf
- Infrastructure resourcesoutputs.tf
- Useful output valuesversions.tf
- Provider version constraints
-
Source: On-premises Redis → Target: Redis Cloud Use:
redis-cloud-riot
for migration pipeline -
Source: AWS ElastiCache → Target: Redis Cloud
Use:redis-cloud-migration-demo
for complete workflow with UI -
Source: Any Redis → Target: ElastiCache Use:
elasticache-only
+riot-tooling-only
- Redis Cloud feature testing:
redis-cloud-only
- AWS ElastiCache testing:
elasticache-only
- Migration script development:
riot-tooling-only
- Network connectivity testing:
vpc-only
- All sensitive values in gitignored
terraform.tfvars
- Security groups with minimal required access
- VPC peering for private connectivity
- SSH key-based authentication
- Prometheus metrics collection
- Grafana dashboards (where applicable)
- CloudWatch integration
- RIOT-X built-in monitoring
- RIOT-X for data migration and synchronization
- Redis CLI tools and utilities
- Connection validation scripts
- Performance testing capabilities
- Web-based cutover management UI
- Modular Terraform design
- Reusable modules across projects
- Consistent naming and tagging
- Validation and error handling
- VPC, subnets, and networking components
- EC2 instances and security groups
- ElastiCache clusters (where applicable)
- Route tables and internet gateways
- Subscriptions and databases
- VPC peering connections
- Payment method configuration
- Regional deployments
- Provider authentication: Ensure AWS and Redis Cloud credentials are configured
- Resource limits: Check AWS service quotas and Redis Cloud subscription limits
- Network connectivity: Verify VPC peering and security group configurations
- SSH access: Confirm key pair exists and paths are correct
# Validate configuration
terraform validate
# Plan changes
terraform plan
# Apply infrastructure
terraform apply
# Destroy resources
terraform destroy
# Format code
terraform fmt -recursive
Each project follows consistent patterns:
- Networking: VPC with public/private subnet separation
- Security: Least-privilege security groups
- Monitoring: Observability stack where applicable
- Naming: Consistent resource naming with prefixes
- Tagging: Standard tags for resource management
Project | Features |
---|---|
redis-cloud-migration-demo | Complete migration workflow with UI |
redis-cloud-only | Minimal Redis Cloud deployment |
redis-cloud-riot | Redis Cloud + RIOT tools |
riot-tooling-only | RIOT tools + local Redis OSS |
elasticache-only | AWS ElastiCache deployment |
vpc-only | Standalone VPC infrastructure |
When adding new projects or modifications:
- Follow existing naming conventions
- Include comprehensive variable validation
- Add appropriate outputs for key resource information
- Update this README with project descriptions
- Test all configurations before committing
Note: All projects are configured with real credentials in terraform.tfvars
files. These files are gitignored for security. Each project can be deployed independently based on your specific use case.