Использование S3 для загрузки означает ли повторную загрузку всех файлов при создании резервных копий?

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

Но если Discourse архивирует все файлы при создании резервной копии, означает ли это, что каждый раз при создании резервной копии Discourse заново скачивает весь бакет загрузок S3?

И сталкивался ли кто-нибудь с проблемами ограничения пропускной способности при этом?

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

Это произойдет только при включении настройки сайта include_s3_uploads_in_backups. По умолчанию она отключена.

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

Это руководство по сохранению резервных копий в S3 и их архивированию в Glacier имеет смысл, когда резервная копия представляет собой один ZIP-файл. Но, насколько я понимаю, в Glacier плата взимается за файл, поэтому стоимость резко возрастет для распакованных резервных копий бакетов.

Я новичок в AWS, поэтому любая помощь будет очень полезна. Спасибо!

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

https://iolap.com/2020/04/06/how-to-avoid-hidden-amazon-glacier-charges/

Это зависит от множества факторов. Сколько денег вы готовы потратить? Для каких сценариев вам нужны резервные копии? Ошибки в программном обеспечении, удар астероида по дата-центрам Amazon, злой администратор, удаляющий файлы из S3…

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

Я провел дополнительное расследование и поговорил с людьми.

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

В нашем случае для сайта, не основанного на Discourse, мы используем awscli для синхронизации бакетов (aws s3 sync) между разными регионами в разных аккаунтах. Таким образом, даже если один аккаунт будет скомпрометирован и бакет удалён, или если астероид упадёт и уничтожит дата-центр Amazon (надеюсь, этого не случится), мы сможем восстановить данные из другого бакета. При синхронизации затраты должны быть не слишком высокими, так как синхронизируются только новые или изменённые файлы.

Хотя, конечно, остаётся риск компрометации обоих аккаунтов в короткий промежуток времени с последующим удалением бакетов или закрытием AWS компанией Amazon — оба сценария крайне маловероятны. Но если что-то подобное всё же произойдёт, вы сможете просто сыграть в лотерею, выбрав номера, которые, по вашему мнению, не выпадут :slight_smile: