n8n Otomasyon

AWS ECS Fargate Üzerinde Kendi Sunucunuzda n8n: Yük Testi Sonuçları

Aylık 35 dolarlık bir n8n kurulumu ne kadar trafik kaldırabilir? n8n'i AWS ECS Fargate üzerinde en ucuz yapılandırmayla dağıttık ve webhook yük testleri yaptık.

İlker Ulusoy 2026-02-28 10 dk dk okuma

Aylık 35 dolarlık bir n8n kurulumu ne kadar trafik kaldırabilir? n8n'i AWS ECS Fargate üzerinde mümkün olan en ucuz yapılandırmayla dağıttık ve webhook yük testleri yaparak bunu öğrendik.

Kurulum

BileşenÖzellikAylık Maliyet
ECS Fargate0.25 vCPU, 512MB RAM, ARM64~$9
RDS PostgreSQL 17db.t4g.micro, 20GB GP3~$12
Application Load Balancerinternet-facing, HTTPS~$8
Diğer (ECR, Secrets, Logs)minimal~$1
Toplam~$31-35

Mimari: Public subnet'te tek Fargate task, ACM sertifikalı ALB, SSL ile RDS, %70 CPU/Memory eşiğinde 1-3 task arası otomatik ölçeklendirme.

Test Aracı

hey — HTTP yük üreteci. Tüm testler bir webhook endpoint'ine istek gönderdi:

POST https://workflow.example.com/webhook/...
Content-Type: application/json
Body: {"test": true}

Test 1: Smoke Test (1 eşzamanlı)

hey -n 10 -c 1
MetrikDeğer
İstekler10
Ort. Gecikme185ms
p50145ms
p90550ms
En Hızlı143ms
En Yavaş550ms
Hata Oranı%0

Sonuç: Temel yanıt süresi ~145ms. 550ms'lik sapma muhtemelen ilk soğuk isteğin SSL handshake yükünden kaynaklanıyor.

Test 2: Hafif Yük (5 eşzamanlı, 30 saniye)

hey -n 100 -c 5 -z 30s
MetrikDeğer
Toplam İstek367
İstek/sn12.2
Ort. Gecikme410ms
p50315ms
p90501ms
p951.32s
p991.71s
Hata Oranı%0

Sonuç: Sıfır hatayla 12 istek/sn kaldırıyor. p50, 315ms'nin altında kalıyor ki bu 0.25 vCPU'luk bir örnek için mükemmel. p95'in 1.3s'ye çıkması ara sıra garbage collection duraklamaları veya Node.js event loop çekişmesini gösteriyor — bu seviye için beklenen davranış.

Gecikme Dağılımı

Hafif Yük Dağılımı
  0.15s - 0.31s  ████████████████████████████████████████  167 (%46)
  0.31s - 0.46s  ██████████                                 37 (%10)
  0.62s - 0.78s  █                                           5 (%1)
  0.78s - 1.71s  ██                                         22 (%6)

İsteklerin %83'ü 460ms altında tamamlanıyor. Uzun kuyruk (780ms üzeri %6) muhtemelen n8n'in iş akışı yürütme motorunun veritabanı migrasyonları veya dahili bakım işlemleri çalıştırdığı yer.

Test 3: Orta Yük (20 eşzamanlı, 60 saniye)

hey -n 500 -c 20 -z 60s
MetrikDeğer
Toplam İstek865
İstek/sn14.0
Ort. Gecikme1.43s
p501.19s
p902.39s
p952.46s
p992.66s
Hata Oranı%0

Sonuç: 20 eşzamanlı kullanıcıda hâlâ sıfır hata. Verim 14 istek/sn'ye çıktı ancak gecikme belirgin şekilde arttı — ortalama 410ms'den 1.43s'ye yükseldi. 0.25 vCPU artık açıkça doymuş durumda; bimodal dağılım iki küme gösteriyor: biri 1.1-1.3s civarında (isteklerin %56'sı), diğeri 2.3-2.5s civarında (isteklerin %19'u).

Gecikme Dağılımı

Orta Yük Dağılımı (0.25 vCPU)
  0.36s - 0.85s  ████                                        5 (%1)
  0.85s - 1.33s  ██████████████████████████████████████████ 612 (%71)
  1.33s - 1.81s  ████                                       50 (%6)
  1.81s - 2.29s  ██                                         32 (%4)
  2.29s - 2.77s  █████████████                             166 (%19)

Bimodal desen, tüm worker thread'ler meşgulken Node.js event loop'un istekleri kuyruğa aldığını gösteriyor. İkinci küme (2.3-2.5s), işlenmeden önce tam bir döngü beklemek zorunda kalan istekleri temsil ediyor.

Test 4: Yükseltme Sonrası (20 eşzamanlı, 0.5 vCPU)

0.25 vCPU / 512MB'den 0.5 vCPU / 1GB'a yükselttikten sonra aynı orta yük testini tekrarladık.

hey -n 500 -c 20 -z 60s
MetrikDeğer
Toplam İstek2117
İstek/sn35.1
Ort. Gecikme568ms
p50514ms
p90705ms
p951.07s
p991.32s
Hata Oranı%0

CPU'yu ikiye katlamak 2.5 kat verim artışı ve %60 gecikme azalması (1.43s'den 568ms'ye) sağladı. Bimodal dağılım ortadan kalktı — isteklerin %83'ü artık 622ms altında tamamlanıyor.

Gecikme Dağılımı

Orta Yük Dağılımı (0.5 vCPU)
  0.29s - 0.46s  ████████████████                               485 (%23)
  0.46s - 0.62s  ████████████████████████████████████████████  1274 (%60)
  0.62s - 0.79s  ██████                                         196 (%9)
  0.79s - 0.95s  █                                                27 (%1)
  0.95s - 1.28s  ███                                              99 (%5)
  1.28s - 1.94s  █                                                35 (%2)

Dağılım artık unimodal — kuyruk efektleri yok. Node.js event loop, tüm istekleri biriktirmeden işlemek için yeterli CPU alanına sahip.

Yükseltme Öncesi ve Sonrası

20 Eşzamanlı Kullanıcıda 0.25 vCPU vs 0.5 vCPU

Metrik0.25 vCPU0.5 vCPUİyileşme
İstek/sn14.035.1+%150
Toplam İstek (60s)8652117+%145
Ort. Gecikme1.43s568ms-%60
p501.19s514ms-%57
p902.39s705ms-%70
p992.66s1.32s-%50
Hata Oranı%0%0aynı

Temel Bulgular

Seviyeye Göre Kapasite

Eşzamanlı KullanıcıVerimOrt. Gecikmep90p99Durum
1 (0.25 vCPU)5.4 istek/sn185ms550ms-Rahat
5 (0.25 vCPU)12.2 istek/sn410ms501ms1.71sRahat
20 (0.25 vCPU)14.0 istek/sn1.43s2.39s2.66sCPU doymuş
20 (0.5 vCPU)35.1 istek/sn568ms705ms1.32sRahat

Otomatik Ölçeklendirme Davranışı

ECS servisi, CPU kullanımı > %70 ve Bellek kullanımı > %70 eşiklerine göre 1'den 3 task'a ölçeklendirmeye yapılandırılmış durumda.

0.5 vCPU seviyesi ve 3 çalışan task ile teorik kapasite sürdürülebilir ~105 istek/sn'ye ulaşıyor.

Daha İyi Performans İçin Queue Modu

Bu testler n8n'in varsayılan tek süreç modunda yapıldı. Eğer queue modunu etkinleştirirseniz, n8n webhook işlemeyi iş akışı yürütmesinden Redis destekli bir kuyruk kullanarak ayırır. Ana örnek API ve webhook alımını yönetirken, özel worker örnekleri yürütmeleri eşzamansız olarak işler. Bu mimari, yük altında verimi ve gecikmeyi önemli ölçüde iyileştirir — webhook yanıtı kuyruğa aldıktan hemen sonra döner ve worker'lar bağımsız olarak ölçeklendirilebilir. Sürekli trafik bekleyen üretim dağıtımları için queue modu önerilen yapılandırmadır.

Maliyet vs Performans

Ölçülen Maliyet-Performans Seviyeleri

Aylık MaliyetYapılandırmaÖlçülen KapasiteGecikme (p90)
~$351x 0.25 vCPU, 512MB14 istek/sn20 eşzamanlıda 2.39s
~$401x 0.5 vCPU, 1GB35 istek/sn20 eşzamanlıda 705ms
~$40-551-3x 0.5 vCPU (otomatik ölçek)~105 istek/sn<1s

0.5 vCPU seviyesi ayda sadece ~$5 daha fazlaya mal oluyor ancak %70 daha düşük p90 gecikmeyle 2.5 kat daha fazla verim sunuyor. Kendi sunucunuzda barındırılan n8n için en iyi fiyat/performans seviyesi budur.

Ne Zaman Ölçeklendirmeli?

  • p95 gecikme sürekli 2 saniyenin üzerinde
  • Hata oranı %1'in üzerinde
  • ECS otomatik ölçeklendirme sık sık maksimumda (3 task)
  • RDS CPU kredileri tükeniyor (CloudWatch CPUCreditBalance kontrol edin)

Sonuç

ECS Fargate (0.5 vCPU, 1GB) üzerinde aylık 40 dolarlık bir n8n kurulumu, 20 eşzamanlı kullanıcıda 700ms altı p90 gecikmeyle sürdürülebilir 35 istek/sn kaldırıyor — ve sıfır hata. Minimal $35 seviyesinden (0.25 vCPU) 0.5 vCPU'ya yükseltme, ayda sadece $5 daha fazlasına 2.5 kat verim artışı sağladı.

Temel içgörü: bu kurulum asla istek düşürmüyor. Aşırı yük altında onları kuyruğa alıp daha yavaş yanıt veriyor, ancak tüm test seviyelerinde %0 hata oranını koruyor. 3 task'a otomatik ölçeklendirmeyle ani yük kapasitesi ~105 istek/sn'ye ulaşıyor.

Dakikada 2.000'den az webhook çağrısı işleyen ekipler için 0.5 vCPU seviyesi, maliyet ve güvenilirlik arasındaki en ideal noktadır.

35 istek/sn
Sürdürülebilir Verim
0.5 vCPU, 20 eşzamanlı
%0
Hata Oranı
Tüm test seviyelerinde
705ms
p90 Gecikme
20 eşzamanlı kullanıcıda
$40/ay
Toplam Maliyet
ECS + RDS + ALB

Stack: n8n 2.9.4 | ECS Fargate (ARM64/Graviton, 0.5 vCPU, 1GB) | RDS PostgreSQL 17 | ALB + ACM | AWS CDK


n8n Dağıtımınızda Yardıma mı İhtiyacınız Var?

n8n'i AWS'de kurmak, performansı optimize etmek veya queue moduna geçiş planlamak olsun — biz bu süreçlerden geçtik ve hedefinize daha hızlı ulaşmanıza yardımcı olabiliriz.

İletişime Geçin