Scaling Web Sites By Sharding And Replication Hl2008 Rus
Tupitsyn High Load
1. Amazon Web Services:
инструменты обеспечения
масштабируемости и
отказоустойчивости
Дмитрий Тупицын
dt@nevesomo.com
HighLoad++
2008
2. Структура доклада
Преимущества EC2
Проблемы EC2
Дополнительные службы
Simple Storage Service (S3)
SimpleDB (SDB)
Simple Queue Services (SQS)
Языки и библиотеки
4. Простота
Простой интерфейс к EC2 и другим службам
Просто запускать сервера
Время запуска/останова инстанции (обычно)
меньше 1 минуты
Не нужен системный администратор
Нет проблем с сетью и железом
5. Минимизация затрат
Временное добавление серверов
Пиковая нагрузка зачастую в 10 и более раз выше
средней но длится 13 часа в сутки
Повышенная нагрузки во время PRакций или сезоных
изменений
Сервера для инфраструктурных,периодических задач
(бакап, подсчет статиситки)
Временное отключение серверов
Часть времени (ночью, выходные) сервера
простаивают
6. Переход к фактической
нагрузке
Обычно:
Параметр пиковая нагрузка
Задача – минимизация количества серверов во время
пиковой нагрузки
В облаках:
Параметр – фактическая загрузка
Задача – минимизация серверов во время всего цикла
работы системы
7. Снижение рисков
Не требуется больших финансовых вливаний в
инфраструктуру
Особенно важно для нефинансируемых стартапов
Бизнес модель работает?
(ДА) Быстро добавляем сервера
(НЕТ) Не тратимся на аренду
9. Что изменилось?
Все проблемы с сетью и железом решаются
отключением проблемных и запуском новых
серверов
При выключении сервера теряются все его
данные не сохраненные во внешние службы (S3 и
т.д.)
Новый сервер имеет неизвестный заранее IP
адрес (как внешний так и внутренний)
10. Проблема:
Потеря данных серверов
Диски сервера
/dev/sda1 10Gb / (image образ системы)
/dev/sda2 147Gb /mnt (временный диск)
/ при запуске копируется из image
/mnt – при запуске всегда чистый
При остановке сервера/instance ничего не
сохраняется!!!
11. Решение 1:
Simple Storage Service (S3)
Самое простое решение
Неограниченный объем хранилища
Доступен как из EC2 так и ”снаружи”
Цена: 0.15$Гб + $ за количество запросов
Недостаток
чтобы избежать потерь данных при ”падении”
серверов необходимо часто реплицировать данные на
S3
Медлено работает с большим количеством файлов
12. Решение 2:
Elastic Block Store (EBS)
Монтируется как блочное устройство
Размер от 1Гб до 1Тб
Механизм создания снэпшотов в S3
Снэпшоты инкрементальные
Данные реплицируются между несколькими
серверами в одном датацентре (S3в разных)
Цена: 0.1$/Гб + 0.1$ за 1М операций
13. Проблема:
Изменение IP адресов
ip remap средствами EC2
Ограничение 5 адресов. Можно увеличить
Фиксированный ip стоит 0.01$/час ~ 7.2$/месяц
Традиционные методы
Развернуть свой DNS сервер
Развернуть свой Proxy сервер
14. Проблема:
Расположение
дата-центров
США
Европа
России нет
Это может стать серьезным препятствием для
сервисов нацеленных на российский рынок
16. Simple Storage Service (S3)
Простой интерфейс
Масштабируемость
Неограниченный объем хранилища и размер
отдельных файлов
Высокая скорость доступа
Отказоустойчивость
Репликация данных в различных датацентрах
17. Применение S3
Хранилище (файлы, фотки ..)
Бекапы
Images – образы машин
Снэпшоты EBS
Хранение состояний серверов
Эмуляция файловой системы – плохая идея
(используйте EBS)
Медленно работает с большим количеством
маленьких файлов
20. Преимущества SDB над БД
Простота
Нет формата данных
Нет индексирования
Большие объемы (до 10Гб в домене, до 100
доменов/таблиц)
Не требуется администрировать
Масштабируемость
Отказоустойчивость
21. Недостатки SDB
Примитивные запросы
Нет связей между таблицами
Латентность
Запись распростроняется не мгновенно. При большом
объеме задержка до нескольких секунд
Только лексикографический порядок
Для текстового поиска придется строить свой
индекс
22. Пример использования SDB
Хранение информации о системе в целом
Адреса серверов
Состояния серверов
Измерения производительности серверов
Логи системы
Время запуска/останова серверов
Обнаруженные ошибки
Время поступление и время обработки заданий
23. Simple Queue Services
(SQS)
Неограниченное количество очередей и
сообщений
Сообщения текстовые до 8Кб
Хранятся 4 дня
24. Зачем SQS?
Уменьшает связность между серверами
поставщиками заданий и обработчиками
Ассинхронность
Легко масштабировать
Аналогия паттерн цепочка ответственности
Сохранность связи
При падении сервера сообщение не потеряется
Аналоги – Java Message Service, Microsoft Message
Queuing
25. Передача тяжелых
сообщений
Максимальная длинна сообщения 8Кб
Можно использовать ссылки вместо данных
SimpleDB ( ItemID=3752 )
S3 ( storage/images/img436.jpg )
Сервера и данные на нем (server3, /var/storage/user342)
26. Выводы по службам
Для гибкого управления серверной
инфраструктурой требутся некоторый слой
промежуточного ПО
Можно создавать свое промежуточное ПО
Придется самостоятельно обеспечивать
масштабируемость и отказоустойчивость
Проще воспользоваться службами Amazon (S3,
SDB, SQS ...)