4. Зачем нам нужен cloud storage?
Снижаем стоимость эксплуатации
Можем использовать совместно с CDN
Снижаем нагрузку на web-узлы
«Легкий» сайт – легко переезжать и бэкапить
Синхронизация контента между множественными web-
узлами
Ускоряем рендеринг страниц в браузере
5. Amazon S3
Собственный CDN
Разные типы хранилищ (наличие
Reduced Redundancy Storage – RRS)
Возможность использования BitTorrent
SDK: Java, .NET, PHP, Ruby, iOS, Android
S3tools, s3fs, сторонние клиенты
6. Google Cloud Storage
OAuth 2.0
Возможность использования Google
account в ACL
SDK (Google App Engine): Java, Python
GSUtil, Google Storage FS, сторонние
клиенты
10. Поддержка в популярных CMS
Плагины Внешние модули
Медиа, бэкапы Медиа, бэкапы
«StorageQloud for «CDN», «CloudFlare», «Backu
WordPress», «BackWPup», «Am p and Migrate»
azon S3 Uploads»
Расширения Встроенный
Медиа, бэкапы, статический модуль, поддержка на
контент уровне ядра
«JA Amazon Поддержка во всех модулях
S3», «jomCDN», «XCloner-Backup Возможность
and Restore» использования в сторонних
модулях
12. Как сделать правильно?
API хранилища для «прозрачной» работы с файлами
API для разработчиков (не используем стандартные функции
для работы с файлами)
Избегаем «диких» файлов
Простое подключение хранилищ
Правила для выбора при работе с несколькими хранилищами
«Прозрачность» для всех модулей системы
13. Как сделать правильно?
Таблица с данными обо всех подключенных хранилищах
Таблица со списком файлов, и указанием, где они хранятся
(можно сразу хранить дополнительную информацию)
Не используем file_size, getimagesize и т.п. – сохраняем все
данные при аплоаде
Отлов «диких» файлов через обработку 404
14. Как сделать красиво?
http://s3.amazonaws.com/bucket/file.ext
http://bucket.s3.amazonaws.com/file.ext
Используем CNAME
Название бакета – в виде субдомена (files.domain.ru)
files.domain.ru. IN CNAME s3.amazonaws.com.
http://files.domain.ru/file.ext
17. Использование нескольких хранилищ
Одновременно можно хранить
разные файлы в разных «облачных
хранилищах». Например, все
файлы «весом» больше 100 Мб
перемещать в «облако» Google
Storage, а все видео - в Amazon S3.
18. Облачное хранилище в масштабируемом проекте
HTTP / HTTPS
Elastic Load Balancing
Web 1 Web 2
… Web N
CloudWatch + Auto Scaling
19. Облачное хранилище в масштабируемом проекте
Elastic
Load Balancing
Web 1 Web 2
… Web N S3 Web 1 Web 2
… Web N
Датацентр 1 DB репликация DB Датацентр 2
20. Веб-ноды – «расходный материал»
На веб-нодах нет Сервер Новый
обновлений образ AMI
пользовательского контента
Read only (возможно, кроме tmp)
Обновления, аварии – убираем
лишние Web 1
Изоляция пользователей друг от Elastic
друга Web 2
Load
Balancing
Web N
21. Создание нового аккаунта
Новый IAM пользователь
Получаем AccessKey, SecretKey
Права внутри одной директории:
PutObject
GetObject
DeleteObject