Skip to content

designx23/HA-Setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hybrid Cloud Bursting Architecture

Automatically scale beyond on-premise capacity with secure AWS bursting during traffic spikes. This production-ready solution combines Terraform for cloud infrastructure and Ansible for configuration management.

Features

  • Auto-Scaling: Burst to AWS when on-prem CPU >70% for 5 minutes
  • High Availability: <3s failover with HAProxy + Keepalived VIP
  • Secure Connectivity: WireGuard VPN with PSK authentication
  • Database Resilience: MySQL Galera multi-master cluster
  • Cost Monitoring: Built-in AWS budget alerts

Architecture Components

On-Premise

  • HAProxy: Load balancing with dynamic backend updates
  • Keepalived: Virtual IP (192.168.1.200) for failover
  • MySQL Galera: Synchronous multi-master replication
  • WireGuard: Secure tunnel to AWS (UDP 51820)

AWS Cloud

  • Auto Scaling Group: t3.medium spot instances
  • VPC Networking: Isolated 10.0.0.0/16 with VPN peering
  • CloudWatch Alarms: CPU/Memory monitoring

Deployment

Prerequisites

  • 2+ Ubuntu 22.04 servers (4vCPU/8GB RAM each)
  • AWS account with EC2/VPC permissions
  • Terraform 1.5+ and Ansible 8+

Installation Steps

  1. Clone the repository:
git clone https://github.com/yourrepo/hybrid-cloud-bursting.git
cd hybrid-cloud-bursting
  1. Initialize Terraform:
cd terraform
terraform init
  1. Deploy AWS resources (edit terraform.tfvars first):
terraform apply -var-file=production.tfvars
  1. Configure on-premise servers:
ansible-playbook -i ansible/inventory/on_prem.yml ansible/playbooks/setup.yml

Configuration Files

File Purpose
terraform/modules/autoscaling/main.tf AWS scaling policies
ansible/playbooks/haproxy.yml Dynamic load balancer config
configs/haproxy/haproxy.cfg Load balancing rules
scripts/wg-install.sh WireGuard VPN setup

Monitoring

Access these dashboards after deployment:

  • Grafana: http://<on-prem-ip>:3000
    • Default credentials: admin/grafana-admin
  • Prometheus: http://<on-prem-ip>:9090

Key metrics tracked:

  • haproxy_backend_http_requests_total
  • mysql_global_status_threads_connected
  • aws_ec2_cpuutilization_average

Testing Procedures

Load Testing

locust -f load_testing/burst_test.py --users 1000 --spawn-rate 50

Failover Test

# On primary node:
sudo systemctl stop keepalived
# Verify VIP migrates to backup within 3 seconds

Cost Management

Resource Estimated Cost
AWS Burst Instances $0.08/hr (spot)
VPN Data Transfer $0.09/GB
Monitoring $0.30/day

Set budget alerts in AWS when monthly spend exceeds $500.

Troubleshooting

Common Issues:

  1. VIP Not Failing Over:

    • Check Keepalived logs: journalctl -u keepalived
    • Verify ARP tables on network switches
  2. Database Split-Brain:

    SHOW STATUS LIKE 'wsrep%';
    # Re-bootstrap cluster if needed
    sudo galera_new_cluster
  3. AWS Instances Not Scaling:

    • Verify CloudWatch alarms exist
    • Check Auto Scaling Group health checks

License

Apache License 2.0 - See LICENSE for full text.

About

This project automates a hybrid cloud setup with on-prem servers and AWS for scalability, high availability, and cost optimization. It features: ✅ HAProxy + Keepalived for load balancing & failover ✅ Cloud Bursting via AWS Auto Scaling ✅ Secure WireGuard VPN for hybrid connectivity ✅ Terraform + Ansible for full automation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors