AWS offers multiple deployment architectures for Koha, ranging from simple single-server setups to enterprise-grade high-availability configurations. This guide compares available options to help you select the appropriate architecture for your library’s size, budget, and reliability requirements.
Architecture Options at a Glance
| Aspect | Basic (Single) | Standard (Multi-Tier) | Enterprise (HA) |
|---|---|---|---|
| EC2 Instances | 1 | 2-3 | 4+ with Auto Scaling |
| Database | Local MySQL | RDS MySQL | RDS Multi-AZ Aurora |
| Storage | EBS only | EBS + EFS | EBS + EFS + S3 |
| Load Balancer | None | Optional | Application Load Balancer |
| Availability | Single-AZ | Single-AZ | Multi-AZ |
| Estimated Cost/Month | $50-$100 | $150-$300 | $400-$800+ |
| Ideal For | <2,500 patrons | 2,500-10,000 patrons | 10,000+ patrons |
| Setup Complexity | Low | Medium | High |
| Uptime Target | 95-98% | 98-99% | 99.5-99.9% |
Basic Architecture: Single EC2 Instance
Design Overview
Internet → EC2 Instance (Koha + MySQL + Apache + Zebra)
↓
EBS Volume
All components run on a single EC2 instance with data stored on an attached EBS volume.
Internet → EC2 Instance (Koha + Apache)
↓
RDS MySQL (Managed Database)
Components
- 1-2 EC2 instances (application tier)
- RDS MySQL instance (db.t3.medium)
- Elastic Load Balancer (optional)
- S3 bucket for backups and file storage
- CloudWatch for monitoring
Improvements Over Basic
Managed Database (RDS):
- Automated backups
- Point-in-time recovery
- Automated patching
- Better performance tuning
- Easier scaling
Separation of Concerns:
- Database independent of web server
- Can upgrade/restart web server without DB downtime
- Easier to scale each tier independently
Cost Estimate
- EC2 (t3.medium): $30/month
- RDS (db.t3.medium): $60/month
- EBS storage: $20/month
- Load balancer (if used): $20/month
- Total: ~$130-$200/month
Best For
✅ Libraries with 5,000-25,000 patrons
✅ Organizations wanting managed database benefits
✅ Planning for future growth
✅ Better uptime requirements
Enterprise Deployment: High Availability
Architecture
Internet → Route 53 (DNS)
↓
Application Load Balancer
↓ ↓
EC2 (AZ-1) EC2 (AZ-2) ← Auto-scaling group
↓ ↓
RDS MySQL (Multi-AZ with read replica)
↓
ElastiCache (Memcached for sessions)
↓
S3 (File storage) + CloudFront (CDN)
Components
- Auto Scaling Group: 2-10 EC2 instances
- Application Load Balancer (ALB)
- RDS Multi-AZ: Automatic failover
- ElastiCache: Session/data caching
- S3 + CloudFront: Asset delivery
- Route 53: DNS with health checks
- CloudWatch + SNS: Monitoring/alerts
Features
High Availability:
- Multi-AZ deployment (survives datacenter outage)
- Automatic failover for database
- Load balancer distributes traffic
- No single point of failure
Scalability:
- Auto-scaling based on load
- Handles traffic spikes automatically
- Read replicas for heavy reporting
Performance:
- Memcached for caching
- CloudFront CDN for static assets
- Optimized database queries
Cost Estimate (Medium Library)
- EC2 instances (2x t3.large): $150/month
- RDS Multi-AZ (db.t3.large): $200/month
- Load Balancer: $25/month
- ElastiCache: $50/month
- S3 + CloudFront: $20/month
- Total: ~$445-$600/month
Best For
✅ Large libraries or consortia (25K+ patrons)
✅ Mission-critical operations
✅ Budget for professional infrastructure
✅ High traffic (100K+ monthly sessions)
✅ Require 99.95%+ uptime
Using AWS Marketplace (Easiest Option)
KohaSupport AWS Marketplace AMI provides one-click deployment:
- Pre-configured Koha installation
- Optimized for AWS
- Choose Basic or Advanced at launch
- Built-in backup automation
- Professional support available
Launch via:
- Visit AWS Marketplace - Koha
- Search “Koha Library System”
- Subscribe and launch
- Follow CloudFormation wizard
See detailed guide: How to Deploy Koha with CloudFormation
Decision Matrix
Choose Basic if:
- Small library (<5K patrons)
- Limited budget
- Simple requirements
- Small IT staff
- Can tolerate occasional downtime
Choose Advanced if:
- Medium library (5K-25K patrons)
- Want managed database
- Planning growth
- Better uptime needed
- Can allocate $200-$400/month
Choose Enterprise if:
- Large library or consortium (25K+)
- Mission-critical system
- High traffic volume
- Budget for HA infrastructure
- Require 99.95%+ uptime SLA
Migration Path
Most libraries follow this progression:
Year 1: Basic (single instance)
Year 2-3: Advanced (add RDS)
Year 4+: Enterprise (full HA if needed)
You can upgrade without data loss by:
- Taking snapshot of current instance
- Launching new architecture
- Migrating database
- Testing thoroughly
- Switching DNS
Cost Optimization Tips
- Use Reserved Instances: Save 30-50% vs on-demand
- Right-size Resources: Monitor and adjust instance types
- Automate Backups: Use S3 Lifecycle policies to archive old backups
- Use Spot Instances: For development/testing environments
- Clean Up Unused Resources: Stop instances when not needed
Conclusion
AWS offers flexibility to match infrastructure to needs:
- Basic deployment works great for most small-medium libraries
- Advanced deployment adds reliability without excessive complexity
- Enterprise deployment provides enterprise-grade infrastructure for large operations
Don’t over-architect early. Start simple, monitor performance, and upgrade when genuinely needed. The beauty of cloud infrastructure is the ability to scale incrementally.
Need help designing or deploying Koha on AWS? We specialize in AWS-based Koha deployments from simple to complex. Contact us for a free consultation.
Related Articles: