Automatic Resource Scaling Based on Load

Imagine: your e-commerce site on a Friday evening under load — CPU at 90%, latency rising, and you can't add servers manually in time. Or the opposite: on weekdays, servers idle while you pay for 80% unused capacity. Autoscaling solves both problems. We've set up horizontal scaling for 20+ projects

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1281
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1237
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    977
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1026
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1103
  • image_website-_0.webp
    Website development for Red Pear
    550

Imagine: your e-commerce site on a Friday evening under load — CPU at 90%, latency rising, and you can't add servers manually in time. Or the opposite: on weekdays, servers idle while you pay for 80% unused capacity. Autoscaling solves both problems. We've set up horizontal scaling for 20+ projects — from startups to enterprise. Below — real code, configs, and common mistakes.

Problems We Solve

Overspending on Resources in Quiet Times

Average web server CPU utilization is 15-20%. Holding capacity for peak means paying for 80% unused power. Autoscaling keeps minimum instances and adds new ones as load grows. For example, an e-commerce site with peak load 20k RPS normally runs 10 servers, though average load is 2k RPS. Autoscaling allows running 2 servers and adding as needed. For infrastructure cost optimization, savings amount to 30-40% of the budget. For one client (e-commerce with 20k RPS peak), implementation cut monthly expenses by $4,500. Cost savings: $4,500 per month.

Downtime During Sudden Spikes

A DDoS or viral post can multiply load tenfold in minutes. Without scaling, the site goes down. Our solution reacts within seconds using Target Tracking and a 60s scale-out cooldown.

Complexity of Manual Management

Even an experienced admin can't manually add servers in time. Automation eliminates human error.

How We Do It: Stack and Case Study

AWS Auto Scaling Group with Target Tracking

We use Terraform for infrastructure as code. Example configuration:

resource "aws_autoscaling_group" "app" { name = "app-asg" min_size = 2 max_size = 20 desired_capacity = 3 vpc_zone_identifier = var.private_subnet_ids launch_template { id = aws_launch_template.app.id version = "$Latest" } health_check_type = "ELB" health_check_grace_period = 60 target_group_arns = [aws_lb_target_group.app.arn] } # Target Tracking: keep CPU at 60% resource "aws_autoscaling_policy" "cpu_tracking" { name = "cpu-tracking" autoscaling_group_name = aws_autoscaling_group.app.name policy_type = "TargetTrackingScaling" target_tracking_configuration { predefined_metric_specification { predefined_metric_type = "ASGAverageCPUUtilization" } target_value = 60.0 scale_in_cooldown = 300 scale_out_cooldown = 60 } } 

Scale-out cooldown (60s) is shorter than scale-in (300s) — reacting quickly to growth, slowly removing resources.

Kubernetes HPA with Custom Metrics

Horizontal Pod Autoscaler combined with Prometheus Adapter allows scaling by custom metrics:

apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: app-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: app minReplicas: 2 maxReplicas: 50 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 60 - type: Pods pods: metric: name: http_requests_per_second target: type: AverageValue averageValue: "100" 

The http_requests_per_second metric comes from Prometheus via kube-state-metrics and Prometheus Adapter.

KEDA: Scaling by External Sources

KEDA (Kubernetes Event-Driven Autoscaling) scales pods by queue length from RabbitMQ, Kafka, SQS:

apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: queue-processor spec: scaleTargetRef: name: worker-deployment minReplicaCount: 1 maxReplicaCount: 30 triggers: - type: rabbitmq metadata: host: amqp://rabbitmq:5672/ queueName: tasks queueLength: "50" 

Scaling to zero when the queue is empty — saving resources.

Predictive Scaling

AWS Predictive Scaling forecasts load based on historical data (minimum 14 days) and adds resources proactively:

resource "aws_autoscaling_policy" "predictive" { name = "predictive" autoscaling_group_name = aws_autoscaling_group.app.name policy_type = "PredictiveScaling" predictive_scaling_configuration { mode = "ForecastAndScale" scheduling_buffer_time = 300 max_capacity_breach_behavior = "IncreaseMaxCapacity" metric_specification { target_value = 60 predefined_scaling_metric_specification { predefined_metric_type = "ASGAverageCPUUtilization" } predefined_load_metric_specification { predefined_metric_type = "ASGTotalNetworkIn" } } } } 

Scaling Method Comparison

Method Metrics Reaction Speed Complexity
AWS ASG + Target Tracking CPU, Network, Request Count 1-2 minutes Low
Kubernetes HPA CPU, Memory, Custom 30-60 seconds Medium
KEDA Queue Length, External 10-30 seconds Medium
Predictive Scaling Historical Trends Proactive High

How to Choose the Right Metric?

The metric is key to effective scaling. CPU lags, Request Rate needs a baseline, P95 is the most accurate but complex. In practice we use a combination of CPU + Request Rate. For async workers — Queue Depth. According to AWS Auto Scaling documentation (Amazon EC2 Auto Scaling) supports multiple metrics in one policy. Infrastructure costs drop by 35% with properly selected metrics.

What If Scaling Doesn't Trigger on Time?

Check cooldown (scale-out faster than scale-in), health check grace period. Sometimes the metric hasn't updated. We recommend a load test with k6: k6 run --vus 1000 --duration 10m script.js.

Process

  1. Analytics: analyze load profile, historical data, select metrics.
  2. Design: determine scaling type, tools (AWS ASG, K8s HPA, KEDA).
  3. Implementation: write IaC (Terraform/Pulumi), set up monitoring (CloudWatch, Prometheus).
  4. Testing: load testing, verify response time and downtime.
  5. Deploy: production rollout, alerts (SNS, PagerDuty).
  6. Support: monitor effectiveness, adjust thresholds.

What's Included

  • Architectural documentation
  • Infrastructure code (Terraform/Helm)
  • Monitoring and alerts
  • Load test case
  • Team training (1 session)

Implementation Timelines

Component Timeframe
ASG + Target Tracking (AWS) 2-3 days
HPA + Prometheus Adapter (K8s) 3-5 days
KEDA for queue-based workloads 2-3 days
Predictive Scaling 1-2 days (after 14 days of data)
Load testing + tuning 2-3 days

Cost is calculated individually after load audit. To get an accurate estimate and timeline, contact us.

Common Mistakes (click to expand)
  • Incorrect cooldown settings (flapping)
  • Scaling only by CPU (ignoring memory/network)
  • No health check during scale-in (dropping active sessions)
  • Too wide min/max range (risk of infinite scaling)

Our Experience

Over 5 years in high-load infrastructure. We've implemented horizontal scaling for 20+ projects — from startups to enterprise (e-commerce, fintech). We use proven solutions with SLA guarantees. Want to set up autoscaling? Get a consultation — we'll evaluate your project and propose the optimal solution.