Шокираща сметка за трафик между AZ
Нашите Kubernetes услуги бяха приказливи. Прекалено приказливи. Трансфер на данни между AZ: $8K/месец.
Архитектурата:
- 20 микросървиси
- Разпределени в 3 AZ (добре за HA)
- Услугите се извикват често
- Всяка заявка: средно 5 между-услугови извиквания
Математиката:
- Трансфер на данни между AZ: $0.01/GB (във всяка посока)
- 2/3 от извикванията пресичат граници на AZ
- Среден размер на заявка: 50KB
- 1M заявки/ден × 5 извиквания × 50KB × 2/3 между-AZ
- = ~160GB/ден между-AZ = ~$50/ден = $1,500/месец на услуга
Разгледани решения:
- ❌ Единичен AZ: Губи високата достъпност
- ✅ Маршрутизиране съобразено с топологията: Предпочитане на same-AZ pods
- ✅ Намаляване на размерите на payload (компресия, пагинация)
- ✅ Групиране на API извиквания където е възможно
- ✅ Service mesh с locality-aware балансиране на натоварването
Резултат: 60% намаление на между-AZ трафика с Istio locality-aware маршрутизиране.
Урок: Високата достъпност има цена. Знайте каква е.