Services / Cloud Migration / Case Study

60% Cost Reduction Through Strategic Migration

How we helped Extenship save over 50% on infrastructure costs by migrating from AWS to Hetzner bare metal servers while maintaining high availability.

$600
Monthly (from $1,500)
60%
Cost Reduction
Better
Performance
GDPR
Compliance

Client Overview

About Extenship

Industry

Technology Platform

Challenge

High cloud costs

Solution

Bare metal + Kubernetes

The Challenge

Unsustainable Cloud Costs

AWS Monthly Cost Breakdown

EC2 Instances $800/month
RDS Database $300/month
Load Balancer $50/month
Data Transfer $150/month
Other Services $200/month
Total AWS Cost $1,500/month
Escalating Costs

Cloud costs were growing faster than revenue, making the business model unsustainable. Every new feature meant higher infrastructure costs.

Vendor Lock-in

Heavy reliance on AWS-specific services made it difficult to optimize costs or consider alternatives without major refactoring.

European Data Residency

Need for better GDPR compliance and data residency in Europe was becoming critical for business growth.

Over-provisioned Resources

Paying for resources that were underutilized, but AWS pricing model made it expensive to right-size without losing performance.

Technical Implementation

Bare Metal Kubernetes Platform

1. Cost Analysis & Infrastructure Design

Hetzner Architecture

Master Node (1x)
  • • AX41-NVMe (AMD Ryzen 5 3600)
  • • 64GB RAM
  • • 2x512GB NVMe SSD (RAID 1)
  • • Cost: €150/month
Worker Nodes (2x)
  • • AX41-NVMe (AMD Ryzen 5 3600)
  • • 64GB RAM each
  • • 2x512GB NVMe SSD (RAID 1)
  • • Cost: €300/month total

Network Architecture

Private Network

Hetzner vSwitch for secure inter-node communication

Floating IPs

High availability with automatic failover

WireGuard VPN

Secure remote access for administration

Load Balancing

MetalLB for bare metal load balancing

2. Kubernetes Platform Setup

Rancher RKE2 Deployment

High Availability
  • • HA control plane
  • • etcd replication
  • • Automatic failover
  • • Load balancing
Security
  • • CIS hardened
  • • Network policies
  • • RBAC enabled
  • • Pod security
Networking
  • • Cilium CNI
  • • eBPF performance
  • • Network policies
  • • Service mesh ready

Storage Solution with Rook/Ceph

We deployed Rook/Ceph for distributed storage, providing resilient and scalable block storage for stateful workloads on bare metal infrastructure.

Ceph Configuration
  • • 3 monitor nodes for quorum
  • • 2 manager instances
  • • SSL-enabled dashboard
  • • Dedicated NVMe storage devices
Resource Allocation
  • • 1TB NVMe per storage node
  • • 2-4 CPU cores per OSD
  • • 4-8GB memory per OSD
  • • Optimized for performance

3. AWS Service Replacements

Database Migration

RDS → CloudNativePG
  • • PostgreSQL operator on Kubernetes
  • • Automated backups to MinIO
  • • Point-in-time recovery
  • • Connection pooling with PgBouncer
ElastiCache → Redis Operator
  • • Master-slave replication
  • • Automated failover
  • • Persistence configuration
  • • Sentinel for HA

Service Replacements

S3 → MinIO
  • • S3-compatible API
  • • Distributed deployment
  • • Erasure coding
  • • Lifecycle policies
ALB → MetalLB + Nginx
  • • Bare metal load balancing
  • • Nginx ingress controller
  • • Let's Encrypt SSL
  • • Rate limiting & WAF

PostgreSQL High Availability Setup

We implemented CloudNativePG for PostgreSQL high availability, providing automatic failover, backup management, and monitoring integration.

Database Configuration
  • • 3-node cluster for HA
  • • 200 max connections
  • • Optimized memory settings
  • • 100GB storage per instance
  • • Ceph block storage integration
Backup Strategy
  • • 30-day retention policy
  • • S3-compatible backup target
  • • WAL archiving (7 days)
  • • Parallel backup streams
  • • Point-in-time recovery

4. Self-Hosted Monitoring Stack

Metrics

  • • Prometheus for collection
  • • Grafana dashboards
  • • Custom alerts
  • • Long-term storage

Logs

  • • Loki for aggregation
  • • Promtail collectors
  • • LogQL queries
  • • Retention policies

Alerts

  • • Alertmanager setup
  • • Slack integration
  • • On-call rotation
  • • Escalation policies

5. Migration Execution

Phase 1: Infrastructure Setup

Hetzner servers provisioning and Kubernetes installation

  • • Bare metal server setup
  • • Network configuration
  • • Kubernetes deployment
  • • Storage setup with Ceph
Phase 2: Service Deployment

Deploy open-source alternatives and test functionality

  • • PostgreSQL and Redis setup
  • • MinIO object storage
  • • Application deployment
  • • Load balancer configuration
Phase 3: Data Migration

Sync data from AWS to Hetzner infrastructure

  • • Database replication setup
  • • Object storage sync
  • • Application state migration
  • • Data validation
Phase 4: Traffic Cutover

Gradual traffic migration and AWS shutdown

  • • DNS preparation
  • • Traffic splitting
  • • Monitoring and validation
  • • AWS resource cleanup

6. Backup & Disaster Recovery

Backup Strategy

  • Velero for Kubernetes backup
  • Automated database backups to MinIO
  • Off-site backup to Backblaze B2
  • 30-day retention policy

Disaster Recovery

  • Documented recovery procedures
  • Regular DR drills
  • RTO: 4 hours, RPO: 1 hour
  • Infrastructure as Code for quick rebuild

Results Achieved

Dramatic Cost Reduction & Performance Gains

Monthly Cost Comparison

Previous AWS Costs

EC2 Instances $800
RDS Database $300
Load Balancer $50
Data Transfer $150
Other Services $200
Total $1,500

Current Hetzner Costs

Bare Metal Servers $450
Additional IPs/Traffic $50
Backup Storage $100
- -
- -
Total $600
60% Cost Reduction ($900/month saved)

Performance Benefits

Response Time
-30% faster
CPU Performance
Dedicated resources
Network Latency
-50% for EU users
Storage I/O
NVMe performance

Operational Benefits

Control
Full infrastructure control
Vendor Lock-in
None open source stack
Pricing
Predictable no surprises
GDPR
Compliant EU data residency
"We worked with Fizyonops on alternative infrastructure models to avoid high cloud costs. Thanks to the system they built on our own hardware, we saved over 50% of our infrastructure budget."

Emre Tekin

Founder, Extenship

Challenges Overcome

Building Managed Services on Bare Metal

Technical Challenges

Automated Failover

Implemented Keepalived with floating IPs for automatic failover without managed load balancers.

Managed Service Alternatives

Built comparable functionality using open-source operators and careful configuration.

High Availability

Achieved through careful architecture design and redundancy at every layer.

Solutions Implemented

Automation Everything

Ansible playbooks and GitOps for consistent deployments and configuration management.

Monitoring & Alerting

Comprehensive monitoring to catch issues before they impact availability.

Regular Maintenance

Automated updates and maintenance windows to keep systems secure and performant.

Key Takeaways

Lessons from Cloud to Bare Metal Migration

Cloud Isn't Always Cheaper

For predictable workloads, bare metal can offer significant cost savings while providing better performance and full control.

Open Source Maturity

Modern open-source tools can provide enterprise-grade functionality comparable to managed cloud services.

Automation is Critical

Comprehensive automation and monitoring are essential to achieve cloud-like reliability on bare metal infrastructure.

Want to Reduce Your Infrastructure Costs?

Let's analyze your current infrastructure and explore cost optimization opportunities.