93
0
0
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
Назад

Создаем корпоративное S3-хранилище: практические рекомендации

Время чтения 4 минуты
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
93
0
0
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники

Привет, меня зовут Антон Аплемах, я генеральный директор российского объектного хранилища Platformcraft. В статье расскажу, какие преимущества имеет S3-хранилище по сравнению с традиционными облачными решениями, о чем важно помнить при создании корпоративного S3, какие ошибки возникают при настройке хранилища и как их избежать.

Создаем корпоративное S3-хранилище: практические рекомендации

Особенности S3-хранилища

S3 используется для автоматических бэкапов, сбора данных для анализа, хранения архивов, приложений или статических файлов с сайтов.

S3 имеет плоскую структуру хранения, которая дает системе ряд особенностей:

  • Возможность работать с неструктурированными данными — можно хранить и искать файлы без ограничения по их типам. Например, статистические данные, резервные копии, скрипты. При этом объектное хранилище не подходит для структурированных данных.
  • Каждому фрагменту данных присваиваются метаданные, которые содержат информацию для преобразования, извлечения и загрузки данных, а также их интерпретации в хранилище.
  • Хранилище легко масштабируется горизонтально — в кластер добавляют узлы, поэтому нагрузка на отдельные серверы снижается. Кроме того, оно не перегружает архитектуру и не требует частых настроек. Это особенно важно для компаний, у которых данные разнородные и растут хаотично.
  • Структура может стать ограничением для больших данных без правильной организации.

Облачное хранилище в масштабируемом объекте

S3 поддерживается множеством сторонних программ, например консольными клиентами AWS CLI и S3cmd, файловыми браузерами Cyberduck, WinSCP, GeeseFS. Большинство современных систем совместимо с S3-протоколом и может интегрироваться с объектным хранилищем из коробки. В итоге не нужно создавать дорогие и сложные кастомные решения, поскольку взаимодействие через API уже стандартизировано.

Ключевые факторы, которые нужно учитывать при проектировании S3 для компании

При разработке корпоративного S3 наиболее важны объемы данных, профиль и тип нагрузки, а также надежность и доступность хранения.

Тип и профиль нагрузки

Если система высоконагруженная — предполагается частая запись и обработка большого количества объектов в секунду, то можно выбрать диски SSD. Они дороже, но окупаются при интенсивной нагрузке за счет меньшего времени простоя. Еще лучше использовать NVMe, которые записывают до миллиона операций в секунду. Если нагрузка невелика и данные требуют редкого доступа, можно использовать HDD. Они подходят для архивных данных или редко запрашиваемых резервных копий, так как стоят дешевле и обеспечивают значительные объемы хранения.

Эффективное управление данными в S3 строится на их разделении по уровням горячего и холодного хранения. Горячее хранение включает в себя данные, к которым требуется быстрый доступ: рабочие файлы, медиаконтент, часто используемые архивы. Такие данные размещаются на SSD- или NVMe-дисках, что дает высокую скорость обработки и мгновенный доступ. Для менее актуальных или редко используемых данных применяется холодное хранение. Эти данные переносятся на более экономичные HDD, что существенно снижает стоимость хранения, особенно при больших объемах.

Компании могут комбинировать горячее и холодное хранилище в рамках S3 и создавать экономически выгодные схемы, где часто используемые данные всегда под рукой, а архивы и резервные копии не занимают дорогие ресурсы. Эта стратегия позволяет компаниям не перегружать основное хранилище, но такое разделение необязательно, например у нас его нет.

Баланс между стоимостью и скоростью

Выбор типа дисков напрямую влияет на стоимость хранения. Например, в октябре 2024 года за 42 000 рублей можно было купить HDD емкостью 22 ТБ, а SSD — всего 2 ТБ. Выбор зависит от необходимого объема, скорости доступа и интенсивности запросов.

Кроме того, на стоимость влияет выбор типа хранения — горячее или холодное. Его можно определить, если проанализировать частоту доступа к данным, например с помощью системы Data Access Governance (DAG).

Чтобы оценить будущие потребности в хранении данных и избежать переплат, бизнес-аналитики должны взаимодействовать с подразделениями. Важно узнать у них, какие данные будут храниться, как часто будут загружаться и как будут использоваться. Еще стоит заложить резерв на развитие на основании роста бизнеса и объема данных.

Отказоустойчивость и высокая доступность

В этом помогут различные инструменты:

  • Плагины и утилиты для интеграции с локальными папками, например Windows Handy Backup или SmartSync, упростят резервное копирование и синхронизацию данных S3.
  • Логи помогут администраторам отслеживать, кто и когда получал доступ к определенным объектам или бакетам. Это обеспечит безопасность и соблюдение политики доступа.
  • Бакеты в S3 позволят логически разделить данные и управлять доступом и жизненным циклом файлов. Отдельные бакеты для различных задач помогут структурировать данные и сразу адаптировать их под конкретные нужды бизнеса.

Для отказоустойчивости и высокой доступности нужно распределять данные между несколькими дата-центрами. Например, записывать информацию в два из трех, чтобы подтвердить успешное сохранение, а в третий добавлять в фоновом режиме. Это гарантирует, что при выходе из строя одного из дата-центров доступ к данным останется в штатном режиме. При отказе сразу двух ЦОДов система сохранит доступ к критически важным данным.

Наше оборудование находится в трех географически независимых ЦОДах Tier III в Москве, скоро появится четвертый дата-центр — в Ярославле. Подключено несколько интернет-провайдеров, поэтому сервис продолжит работать, даже если отключится интернет. ЦОДы имеют SLA 99,99%.

Минимизация рисков потерь данных

Безопасность данных в S3 можно обеспечить, если использовать контроль доступа, шифрование и защиту контента. Кроме того, важно учитывать юридические и нормативные требования. Например, в России — стандарты ФСТЭК или ФСБ.

Контроль доступа. Использование bucket policies и ACLs, а также настройка LifeCycle помогают установить доступ на уровне отдельных объектов и бакетов и защитить конфиденциальную информацию. Еще стоит использовать IAM-политики, чтобы снизить риски несанкционированного доступа.

Важно также не забывать о логировании и мониторинге доступа. С помощью S3 Access Logs компании могут отслеживать все операции с данными, выявлять подозрительную активность и реагировать на возможные инциденты. В сочетании с безопасным управлением ключами и ограничением публичного доступа эти меры создают надежную защиту для данных в S3.

Шифрование. С помощью Server-Side Encryption (SSE) данные автоматически шифруются при записи в S3, а при необходимости их можно прочитать только с помощью ключей, доступ к которым контролируется. Альтернатива — клиентское шифрование, где компании полностью контролируют процесс шифрования.

Мы поддерживаем Key Management System (KMS) — украденные данные нельзя прочитать, потому что нужен ключ из этой системы. У клиентов есть свои KMS. Мы можем подключить их софт к своему хранилищу и работать с ним.

Защита контента. Например, у Platformcraft изолируются учетные записи, а также используются логин и пароль, JWT Token для API, s3-credentials для S3. Внутри самой учетной записи можно создать дополнительных пользователей с ограничениями прав чтения или записи, доступа к определенным директориям, сервисам, API.

Масштабируемость

Если объемы данных и рабочие нагрузки растут, может понадобиться большая производительность и емкость хранения. Поэтому S3 должно легко масштабироваться, чтобы можно было без простоев добавлять дополнительные ресурсы.

Чем больше компания, тем сложнее управлять данными. Один из ключевых моментов — лимит на листинг объектов в бакете: вы можете получить максимум 10 000 элементов за один запрос. Это усложнит доступ к большим объемам данных. Чтобы было легче ориентироваться в массивах данных, нужны дополнительные механизмы, например пагинация.

Если объем данных и требования к доступу растут, может понадобиться более сложная архитектура. Поэтому важна гибкость в управлении данными и возможность поддерживать разнообразные типы информации. Это требует продвинутых механизмов безопасности и контроля доступа, таких как IAM-политики и bucket policies.

В S3 можно легко добавлять новое оборудование по мере роста объема данных и требований бизнеса. При необходимости можно просто увеличить кластер — подключить новые серверы и хранилища, чтобы получить высокую доступность и производительность. Такой подход позволяет эффективно распределять нагрузку и быстро обрабатывать увеличенные объемы данных и запросов.

Какие ошибки возникают при настройке S3 и как их избежать

При настройке S3 есть типичные ошибки, которые могут снизить безопасность, а также привести к ненужным расходам или проблемам с доступом.

Неправильная настройка эндпойнтов. Неверный выбор региона или DNS-имени может замедлить работу или вызвать ошибки доступа к данным. Поэтому всегда проверяйте, правильно ли указаны регион и DNS-имя в формате bucketname.s3.region.site.

Дублирование ключей доступа. Использовать один ключ для всех операций рискованно и неудобно при обновлении паролей или изменении доступа для разных сервисов. Всегда создавайте минимум два ключа для объектных хранилищ и используйте их в разных контекстах или для различных задач.

Неправильный выбор версии авторизации. Версия авторизации 2 для S3 устаревшая и уже не поддерживается в большинстве современных сервисов и актуальных стандартов безопасности. Из-за ее использования могут возникнуть проблемы с доступом к данным, особенно если часть инфраструктуры работает только с версией 4.

Всегда проверяйте, какая версия авторизации поддерживается вашим сервисом и инструментами. Рекомендую использовать только версию 4, поскольку она соответствует более высоким стандартам безопасности и лучше интегрируется с современными системами.

Ошибки в настройке прав доступа. Если администраторы устанавливают слишком широкие права доступа к бакетам, безопасность данных серьезно снижается. Кроме того, если нет гранулярных правил для разных групп пользователей или приложений, мониторинг доступа практически невозможен. Поэтому всегда устанавливайте минимально необходимые права и используйте bucket policies, чтобы настроить доступ для разных групп пользователей.

Игнорирование Lifecycle Management. Некоторые компании не используют правила Lifecycle Management, из-за чего в горячем хранилище накапливается много холодных данных. Это повышает расходы и снижает производительность, особенно при высоких нагрузках на хранилище.

Рекомендую настраивать правила Lifecycle Management для автоматического перемещения неактивных данных на более дешевые уровни хранения или для удаления старых данных.

Неправильная работа с версиями объектов. Версионность (versioning) в бакете часто приводит к неконтролируемому росту объема данных, поскольку старые версии объектов накапливаются в хранилище. Без политик на удаление старых версий это может привести к дополнительным затратам и перегрузке.

Поэтому, если вы включаете версионность, настройте правила для автоматического удаления или архивации старых версий, чтобы избежать избыточных данных.

Логирование без мониторинга. Если игнорировать настройки логирования, в компании будет недостаток данных для аудита и не получится отследить потенциальные инциденты. В итоге фирма может упустить важные моменты в безопасности или обслуживании. Поэтому стоит включить логирование и настроить его так, чтобы фиксировались все доступы и изменения в бакетах.

Заключение

Построение S3 — длительный и трудоемкий процесс, при котором нужно учитывать дальнейший рост компании, ее потребности, опрашивать различные подразделения. Но в результате вы сможете создать устойчивое и экономически эффективное решение, которое может увеличивать объемы данных и справляться с разнообразными корпоративными задачами. Кроме того, надо учитывать квалификацию и опыт специалистов, которые будут развертывать и обслуживать on-premise-сервис S3. А со стороны разработчика ПО выбирать решения с поддержкой и обновлением.

Комментарии0
Тоже интересно
Комментировать
Поделиться
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники