Прихована ціна PutMetricData
Знайшов щойно цікаву діру в бюджеті. Виявилося, що один сервіс витрачав кількасот доларів не просто на CloudWatch, а саме на операцію PutMetricData. (Витрати на журнали та метрики взагалі вражають, особливо коли до того ти жалкував підписатися на платний план якогось New Relic.)
Причина дуже проста: десятки мільйонів викликів. Метрика надсилалася після кожного запиту, за прямолінійною логікою: виміряли значення — зберегли в CloudWatch.
Кумедно, що офіційна сторінка цін відверто бреше про справжню вартість цих запитів, бо на ній згадується ціна в $0.01/1M запитів. Фактично ж вона складає $0.01 за тисячу запитів. От тільки що уважно передивлявся реальні витрати та вони сходяться ідеально з цією формулою. За що окремо прикро!
Річ у тім, що PutMetricData це пакетний API. Та може за один запит приймати до 1000 значень метрик. Я б радив зробити виключення з YAGNI та завжди уважно ставитися до API, які пропонують пакетне надсилання даних. Бо скоріше за все, воно не просто щоб ти міг надіслати не одне значення, а два, якщо захочеться. Ні, сервіс хоче, щоб ти дійсно збирав запити в пакети на своєму боці.
Бо їм дорого виходить. Найбільш очевидний наслідок — зіткнутися з обмеженнями частоти. Ну це не так страшно. Але з хмарним хостингом також може очікувати отака різниця в ціні. Адже з пакетним надсиланням замість $100 будеш платити 10 центів — які ніхто не й не помітить. Різниця в три порядки — це вам не жарти!