Amazon Cognito часто стає несподіваною статтею витрат у хмарному бюджеті. Багато розробників починають з безкоштовного рівня, але з часом рахунок зростає через неправильно обрані тарифні плани або неефективні операції з даними. Важливо розуміти, що Cognito тарифікується за кількістю активних користувачів на місяць (MAU), а не лише за трафік. Рішення, прийняті на етапі створення пулу, мають довгостроковий вплив на фінансові показники проекту.
За замовчуванням нові пули створюються на рівні Essentials, який коштує майже втричі дорожче за Lite. Якщо ваш додаток не використовує розширені функції, такі як passkeys або керований інтерфейс входу, ви переплачуєте за непотрібні можливості. Перевірка поточного тарифного плану — це найшвидший спосіб оптимізувати витрати. Завжди визначайте рівень доступу в коді інфраструктури, щоб уникнути використання дорожчих налаштувань за замовчуванням.
Найбільші несподіванки виникають через визначення MAU. Користувач вважається активним, якщо з ним виконується будь-яка операція, включаючи оновлення атрибутів або адміністративні запити. Наприклад, пакетні завдання, що зчитують дані всіх користувачів через AdminGetUser, перетворюють неактивних користувачів на платних MAU. Краще зберігати атрибути у власній базі даних і оновлювати їх через тригери Lambda, замість того щоб щоразу звертатися до Cognito.
Міграція користувачів також може стати фінансовою пасткою. Використання AdminCreateUser для масового перенесення облікових записів призводить до миттєвого нарахування плати за всіх користувачів, навіть якщо вони не повернуться. Використання тригера Migrate User дозволяє створювати користувачів лише тоді, коли вони дійсно входять у систему. Це значно знижує витрати, проте потребує правильного налаштування потоків автентифікації, оскільки тригер не працює з деякими методами, наприклад, SRP.
Для міжсерверної взаємодії (M2M) Cognito стягує плату за кожен успішний запит токена. Якщо сервіси запитують новий токен перед кожним викликом API, рахунок швидко зростає. Кешування токенів та правильне налаштування часу їх життя дозволяють суттєво зменшити кількість запитів. Обирайте тривалість дії токена свідомо, щоб знайти баланс між безпекою та вартістю обслуговування інфраструктури.
Нарешті, SMS-повідомлення для MFA та відновлення пароля тарифікуються окремо через Amazon SNS. Це часто ігнорується при плануванні бюджету, що призводить до непередбачуваних витрат, особливо при атаках ботів. Встановлення лімітів витрат в SNS та використання WAF для захисту точок входу допоможуть уникнути зловживань. Регулярний аудит налаштувань та використання бюджетних сповіщень AWS дозволять вчасно виявити аномалії та контролювати витрати на Cognito.
🔗 Першоджерело: Читати оригінал
