Как синхронизировать файлы с Linux на Amazon S3 — CloudSavvy IT

Amazon S3.

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

Если вы просто хотите поделиться файлами между экземплярами EC2, вы можете использовать Том EFS и подключите его непосредственно к нескольким серверам, полностью исключив «облако». Но вы не должны использовать это для всего, потому что это намного дороже чем S3, даже с включенным нечастым доступом.

Ограничить доступ S3 к пользователю IAM

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

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

От Консоль управления IAM, сделайте нового пользователя и включите «Программный доступ».

Установите меню «Сведения о пользователе».

Вам будет предложено выбрать разрешения для этого пользователя. Создайте новую группу и назначьте ей разрешение «AmazonS3FullAccess».

Назначение групповых разрешений.

После этого вам дадут ключ доступа и секретный ключ. Запишите это; они понадобятся вам для аутентификации вашего сервера.

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

Синхронизация файлов с s3cmd

s3cmd утилита, предназначенная для облегчения работы с S3 из командной строки. Он не является частью интерфейса командной строки AWS, поэтому вам придется вручную установить его из диспетчера пакетов вашего дистрибутива. Для систем на основе Debian, таких как Ubuntu, это будет:

sudo apt-get install s3cmd

однажды s3cmd установлен, вам нужно связать его с пользователем IAM, которого вы создали для управления S3. Запустите конфигурацию с:

s3cmd --configure

Вас попросят указать ключ доступа и секретный ключ, которые вам дала консоль управления IAM. Вставьте их сюда. Есть еще несколько вариантов, таких как изменение конечных точек для S3 или включение шифрования, но вы можете оставить их все по умолчанию и просто выбрать «Y» в конце, чтобы сохранить конфигурацию.

Чтобы загрузить файл, используйте:

s3cmd put file s3://bucket

Замена «ведро» с вашим именем ведра. Чтобы получить эти файлы, запустите:

s3cmd get s3://bucket/remotefile localfile

И, если вы хотите синхронизировать весь каталог, запустите:

s3cmd sync directory s3://bucket/

Это скопирует весь каталог в папку на S3. При следующем запуске он будет копировать только те файлы, которые были изменены с момента последнего запуска. Он не удалит файлы, если вы не запустите его с --delete-removed вариант.

s3cmd sync не будет запускаться автоматически, поэтому, если вы хотите регулярно обновлять этот каталог, вам нужно будет регулярно запускать эту команду. Вы можете автоматизировать это с cron; Откройте свой crontab с crontab -eи добавьте эту команду в конец:

0 0 * * * s3cmd sync directory s3://bucket >/dev/null 2>&1

Это будет синхронизировать «каталог» с «ведром» один раз в день. Кстати, если crontab -e ты застрял в vim, вы можете изменить текстовый редактор по умолчанию с export VISUAL=nano;или что вы предпочитаете.

s3cmd имеет много подкоманд; вы можете скопировать между ведрами с cpпереместите файлы с mvи даже создавать и удалять сегменты из командной строки с mb а также rbсоответственно. использование s3cmd -h для полного списка.

Другой вариант: AWS CLI

за s3cmdЕсть несколько других параметров командной строки для синхронизации файлов с S3. AWS предоставляет свои инструменты вместе с AWS CLI. Вам понадобится Python 3+, и вы можете установить CLI из pip3 с:

pip3 install awscli --upgrade --user

Это установит aws команда, которую вы можете использовать для взаимодействия со службами AWS. Вам нужно будет настроить его так же, как s3cmd, что вы можете сделать с помощью:

aws configure

Вас попросят ввести ключ доступа и секретный ключ для вашего пользователя IAM.

Синтаксис для AWS CLI похож на s3cmd, Чтобы загрузить файл, используйте:

aws s3 cp file s3://bucket

Чтобы синхронизировать всю папку, используйте:

aws s3 sync folder s3://bucket

Вы можете копировать и даже синхронизировать между группами с помощью одних и тех же команд. Ты можешь использовать aws help для полного списка команд, или прочитайте ссылка на команду на их сайте.

Полные резервные копии: Restic, Duplicity

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

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

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

Это очень эффективно, но восстановление из резервной копии менее эффективно, так как процесс восстановления должен следовать цепочке изменений, чтобы прийти к окончательному состоянию данных. Restic Решает эту проблему, храня данные в зашифрованных блоках с дедупликацией, и сохраняет снимок каждой версии для восстановления. Таким образом, текущее состояние файлов легко ссылаться, и каждая ревизия все еще доступна.

Оба инструмента можно настроить для работы с AWS S3, а также с несколькими другими поставщиками систем хранения. В качестве альтернативы, если вы просто хотите создать резервную копию экземпляров EC2 на основе EBS, вы можете использовать добавочные снимки EBSХотя это дороже, чем резервное копирование вручную на S3.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *