Паттерны доступа к данным и модели согласованности

Использование хранилищ данных в AWS

Dunieski Otano

AWS Solutions Architect

Проблема универсального решения

  • Каталог товаров: тысячи операций чтения в секунду, редкие обновления
  • Корзина: частые операции записи
  • Система заказов: потеря данных недопустима
  • Разные паттерны доступа требуют разных стратегий хранения

пользователи

Использование хранилищ данных в AWS

Временное и постоянное хранилище

  • Постоянное хранилище: данные сохраняются после перезапуска

    • Хранится на диске, до явного удаления
    • Примеры AWS: DynamoDB, S3, RDS, OpenSearch
    • Использование: данные пользователей, транзакции, файлы, записи

    persistent

  • Временное хранилище: данные теряются при перезапуске
    • Хранится в памяти, временный по природе
    • Примеры AWS: ElastiCache, EC2 Instance Store
    • Использование: данные сессий, кэш, временные вычисления

ephemeral

Использование хранилищ данных в AWS

Нагрузка с преобладанием чтения или записи

  • Ориентация на чтение: много чтений, мало записей
    • Примеры: каталог товаров, записи блога
    • Лучший выбор: DynamoDB, S3 с кэшированием
  • Ориентация на запись: частые обновления
    • Примеры: IoT-датчики, данные кликстрима
    • Лучший выбор: DynamoDB с автомасштабированием
  • Сбалансированная: равное соотношение чтения и записи
    • Примеры: посты и комментарии в соцсетях
    • Лучший выбор: DynamoDB со сбалансированной ёмкостью

bars

Использование хранилищ данных в AWS

Модели согласованности на практике

  • Строгая согласованность: всегда возвращает актуальные данные
    • Медленнее, но точнее
    • Использование: финансовые данные, учёт запасов
  • Согласованность в конечном счёте: может вернуть устаревшие данные
    • Быстрее, но возможны кратковременные задержки
    • Использование: профили пользователей, описания товаров
  • Консоль DynamoDB: параметр ConsistentRead

 

table_query

Использование хранилищ данных в AWS

Знакомство с сервисами в консоли AWS

  • Консоль DynamoDB: таблицы, элементы, запросы
  • Консоль S3: бакеты, объекты, свойства
  • Консоль ElastiCache: Redis/Memcached, узлы, метрики
  • Каждый сервис организует ресурсы по-своему

services

Использование хранилищ данных в AWS

Подбор сервисов под паттерны доступа

  • Преобладание чтения + согласованность в конечном счёте = DynamoDB, S3
  • Преобладание записи + высокая пропускная способность = DynamoDB
  • Уровень кэширования = ElastiCache
  • Полнотекстовый поиск = OpenSearch

consistency

Использование хранилищ данных в AWS

Давайте потренируемся!

Использование хранилищ данных в AWS

Preparing Video For Download...