Skip to content

πŸ—œ Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ настройкС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π² S3

Notifications You must be signed in to change notification settings

lord-alfred/s3_backup

Repository files navigation

Π‘Π΅ΠΊΠ°ΠΏ Π΄Π°Π½Π½Ρ‹Ρ… с сСрвСров Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ S3

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² VK Cloud Storage S3

Π’ Π΄Π°Π½Π½ΠΎΠΉ инструкции описан ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» для создания автоматичСских Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ Π² S3, с использованиСм ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ VK Cloud Solutions (MCS) (ΠΏΡ€ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ сноровкС ΠΈ ΡƒΠΌΠ΅Π½ΠΈΠΈ эти знания ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° любоС совмСстимоС с S3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅). Данная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΏΠΎ нСскольким ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ для мСня ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  • ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅ΠΌΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ Ρ†Π΅Π½Ρ‹;
  • простота настройки ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ доступа (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ AWS – большС Π³ΠΎΠ΄Π° Ρ‚ΡƒΠ΄Π° Π±Π΅ΠΊΠ°ΠΏΠΈΠ», послС Π°Ρ€Π΅Π½Π΄Ρ‹ Π½ΠΎΠ²ΠΎΠ³ΠΎ сСрвСра ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· вспоминал всё снова);
  • высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π°ΠΏΠ»ΠΎΠ°Π΄Π°;
  • высокая Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ;
  • ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΊΠ΅Ρ‚.

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π±Π΅ΠΊΠ°ΠΏΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² S3), Π³Π»Π°Π²Π½ΠΎΠ΅ сам Ρ„Π°ΠΊΡ‚ наличия Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ. Но Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с S3 ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ :)

Π’ самом Π½Π°Ρ‡Π°Π»Π΅ стоит ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для использования S3 Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ сСрвСра, Ρ‚.ΠΊ. Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ S3 прСдоставляСтся Π² Π²ΠΈΠ΄Π΅ услуги, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· создания ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… VPS.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ДСйствия Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ VK Cloud Solutions

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ понятия

S3 – ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Π½Π΅Π³ΠΎ Π»ΡŽΠ±Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ доступа ΠΊ Π½ΠΈΠΌ Π² любоС врСмя.

Π‘Π°ΠΊΠ΅Ρ‚ – (ΠΏΠ΅Ρ€.: Π²Π΅Π΄Ρ€ΠΎ) ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ S3, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ диска, ΠΊΡƒΠ΄Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ нСсколько Ρ‚ΠΈΠΏΠΎΠ² Π±Π°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ†Π΅Π½Π΅.

Π’ΠΈΠΏ Π±Π°ΠΊΠ΅Ρ‚Π°: ГорячиС Π΄Π°Π½Π½Ρ‹Π΅ (Hotbox) – ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для хранСния Π±Π΅ΠΊΠ°ΠΏΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ часто Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ.

Π’ΠΈΠΏ Π±Π°ΠΊΠ΅Ρ‚Π°: Π₯ΠΎΠ»ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (Icebox) – ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для хранСния Π»ΠΎΠ³ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ. Варификация исходящСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (скачиваниС ΠΈΠ· S3) Ρƒ этого Ρ‚ΠΈΠΏΠ° Π±Π°ΠΊΠ΅Ρ‚Π° Π΄ΠΎΡ€ΠΎΠΆΠ΅ Ρ‡Π΅ΠΌ Ρƒ Hotbox.

ΠšΠ»ΡŽΡ‡ΠΈ – ΠΏΠ°Ρ€Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Access Key ID ΠΈ Secret Key), с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… осущСствляСтся доступ ΠΊ Π±Π°ΠΊΠ΅Ρ‚Ρƒ с сСрвСра. НСобходимо Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² сСкрСтС!

ACL – Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом ΠΊ рСсурсу (Π±Π°ΠΊΠ΅Ρ‚Ρƒ). Нам (ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ) Π½Π΅ пригодится.

Расчёт стоимости

Для подсчёта стоимости хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ΠΎΠΌ, Π²Ρ‹Π±Ρ€Π°Π² услугу Β«ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Β» (Cloud Storage). Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ поля для Π²Π²ΠΎΠ΄Π° количСства запросов ΠΈ объСма исходящСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½ΠΎ ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° страницС Ρ‚Π°Ρ€ΠΈΡ„ΠΎΠ².

Π― ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° "ГорячиС Π΄Π°Π½Π½Ρ‹Π΅", ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² стоимости хранСния Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ, Π° Π²ΠΎΡ‚ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ скачивания ΠΈΠ· S3 для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° с "Π₯ΠΎΠ»ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ" – Π²Ρ‹ΡˆΠ΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ большим Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ, Π² случаС Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠΏΠΈΠΈ.

Π’Π°ΠΊΠΆΠ΅, Π½Π° своём ΠΎΠΏΡ‹Ρ‚Π΅ ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ для бэкапов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Ρ‡ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ "запросов" (ΠΈΠ· Ρ‚Π°Ρ€ΠΈΡ„ΠΎΠ²), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ суммарно ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ сильно Π½ΠΈΠΆΠ΅ Ρ‡Π΅ΠΌ само Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ большиС Ρ„Π°ΠΉΠ»Ρ‹ (Π±ΠΎΠ»Π΅Π΅ 32Π“Π‘), Ρ‚ΠΎ ΠΈΠ·-Π·Π° Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° части.

К соТалСнию, с 1‑го апрСля планируСтся ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Ρ†Π΅Π½ (Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π½Ρ‹ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ ΠΈ Ρ‚Π°Ρ€ΠΈΡ„Π°Ρ…). ΠžΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½ΠΎΠ²ΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ссылкС. Как ΠΌΠ½Π΅ каТСтся, ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ – Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅, ΠΈ Ρ†Π΅Π½Ρ‹ всё Π΅Ρ‰Ρ‘ выглядят Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ расчёта

НапримСр, планируСтся Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ бэкапы ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° послСдниС 2 дня (Π² суммС 200 Π“Π‘) Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Β«HotboxΒ» (горячиС Π΄Π°Π½Π½Ρ‹Π΅). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ расчёта Π½Π° мСсяц (ΠΏΠΎ Π½ΠΎΠ²Ρ‹ΠΌ Ρ†Π΅Π½Π°ΠΌ):

  • ОбъСм Π΄Π°Π½Π½Ρ‹Ρ… (Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅): 200 Π“Π‘ * 2.1 β‚½ = 420 β‚½
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, входящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ: бСсплатно
  • Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅, исходящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ: 100 Π“Π‘ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли 1 Ρ€Π°Π· Π² мСсяц Π½Π°Π΄ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ) * 1.2 β‚½ = 120 β‚½
  • Запросы 1-Π³ΠΎ Ρ‚ΠΈΠΏΠ° (PUT, META, LIST): 25 (тысячи, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) * 0.295 β‚½ (Π·Π° 1000 запросов) = 7.37 β‚½
  • Запросы 2-Π³ΠΎ Ρ‚ΠΈΠΏΠ° (GET ΠΈ Π΄Ρ€.): 2 (тысячи, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ) * 0.295 β‚½ (Π·Π° 1000 запросов) = 0.59 β‚½
  • Запросы DELETE: бСсплатно

Π˜Ρ‚ΠΎΠ³ΠΎ: 547.96 β‚½ Π² мСсяц

Аналогичный расчёт для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Β«IceboxΒ» (Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅):

  • ОбъСм Π΄Π°Π½Π½Ρ‹Ρ… (Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅): 200 Π“Π‘ * 1.92 β‚½ = 384 β‚½
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, входящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ: бСсплатно
  • Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅, исходящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ: 100 Π“Π‘ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли 1 Ρ€Π°Π· Π² мСсяц Π½Π°Π΄ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ) * 1.92 β‚½ = 192 β‚½
  • Запросы 1-Π³ΠΎ Ρ‚ΠΈΠΏΠ° (PUT, META, LIST): 25 (тысячи, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) * 0.295 β‚½ (Π·Π° 1000 запросов) = 7.37 β‚½
  • Запросы 2-Π³ΠΎ Ρ‚ΠΈΠΏΠ° (GET ΠΈ Π΄Ρ€.): 2 (тысячи, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ) * 0.59 β‚½ (Π·Π° 1000 запросов) = 1.18 β‚½
  • Запросы DELETE: бСсплатно

Π˜Ρ‚ΠΎΠ³ΠΎ: 584.55 β‚½ Π² мСсяц

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ссли Ρ€Π°Π· Π² мСсяц Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° – Π²Ρ‹Π³ΠΎΠ΄Ρ‹ ΠΎΡ‚ использования Icebox Π½Π΅Ρ‚. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц, Π° Ρ€Π°Π· Π² Π³ΠΎΠ΄, Ρ‚ΠΎ нСкая экономия всё ΠΆΠ΅ получится.

ΠŸΠ΅Ρ€Π΅Π΄ созданиСм Π±Π°ΠΊΠ΅Ρ‚Π° стоит Π²Π·Π²Π΅ΡΠΈΡ‚ΡŒ всС "Π·Π°" ΠΈ "ΠΏΡ€ΠΎΡ‚ΠΈΠ²" ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°. Π₯ΠΎΡ‚ΡŒ Π½Π° MCS ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Π±Π°ΠΊΠ΅Ρ‚Π° послС Π΅Π³ΠΎ создания, Π½ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… S3-совмСстимых Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… такая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ доступна Π½Π΅ всСгда.

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

НСобходимо Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° https://mcs.mail.ru/, Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ (ΡΠΏΠΈΡˆΠ΅Ρ‚ΡΡ 500 Ρ€ΡƒΠ±Π»Π΅ΠΉ Π½Π° баланс). ПослС этого Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π±Π°ΠΊΠ΅Ρ‚Ρ‹.

Π‘Ρ‚ΠΎΠΈΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π±ΠΈΠ»Π»ΠΈΠ½Π³ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² – ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ просто ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ всё Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°ΠΊΠ΅Ρ‚Π°

Для создания Π±Π°ΠΊΠ΅Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ страницу ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² Π±ΠΎΠΊΠΎΠ²ΠΎΠΌ мСню ΠΏΡƒΠ½ΠΊΡ‚ Β«ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ -> Π‘Π°ΠΊΠ΅Ρ‚Ρ‹Β» ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π½Π° скринС ссылкС:

Главная страница MCS

ПослС этого ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ откроСтся список Π±Π°ΠΊΠ΅Ρ‚ΠΎΠ², Π³Π΄Π΅ Π²Π²Π΅Ρ€Ρ…Ρƒ Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π°ΠΊΠ΅Ρ‚Π° – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ»Π°Ρ†Π½ΡƒΡ‚ΡŒ ΠΏΠΎ Π½Π΅ΠΉ. ПослС этого откроСтся ΠΏΠΎΠΏΠ°ΠΏ, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти:

  • НазваниС Π±Π°ΠΊΠ΅Ρ‚Π° – ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½Π° латинском (с использованиСм Ρ†ΠΈΡ„Ρ€, символа Ρ‚ΠΈΡ€Π΅, подчёркивания ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ).
  • Класс хранСния – Ρ‚ΠΈΠΏ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°: Hotbox ΠΈΠ»ΠΈ Icebox.
  • Настройка ACL ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – всСгда Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Β«privateΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈ Ρƒ ΠΊΠΎΠ³ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ вас Π½Π΅ Π±Ρ‹Π»ΠΎ доступа ΠΊ Π±Π°ΠΊΠ΅Ρ‚Ρƒ. Π‘Π»ΡƒΡ‡Π°ΠΉ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ всСму Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ – ΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎ Π½Π΅ рассматриваСтся :)

ПослС этого созданный Π±Π°ΠΊΠ΅Ρ‚ отобразится Π² спискС.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° доступа

НуТно ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ созданный Π±Π°ΠΊΠ΅Ρ‚, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«ΠšΠ»ΡŽΡ‡ΠΈΒ» ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° – Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ). Для Π½Π°ΡˆΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ "ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ доступ" ΠΈ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ прСфикс, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это ограничСния Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ для Π±Π°ΠΊΠ΅Ρ‚Π°

ПослС создания ΠΊΠ»ΡŽΡ‡Π° отобразятся Access Key ID ΠΈ Secret Key, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ… Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ (Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅) ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСкрСтС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ дСйствия с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π°ΠΊΠ΅Ρ‚Π°. Π’ случаС ΡƒΡ‚Π΅Ρ€ΠΈ – всСгда ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ.

На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ MCS (VK Cloud Solutions) ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ созданиС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ: ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊ Π±Π°ΠΊΠ΅Ρ‚Ρƒ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступа ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π±Π°ΠΊΠ΅Ρ‚Π°ΠΌ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ AWS S3 – Ρ‚Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ нСсколько ΠΊΡ€ΡƒΠ³ΠΎΠ² Π°Π΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ доступа созданных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ риск Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Ρƒ Ρ‡ΡƒΡ‚ΡŒ большС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Ρ‡Π΅ΠΌ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Если Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ S3-совмСстимоС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ‚ΠΎ я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвСра свой Π±Π°ΠΊΠ΅Ρ‚ ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Π΅ΠΊΠ°ΠΏΠΈΡ‚ΡŒ всё Π² ΠΎΠ΄Π½Ρƒ ΠΊΡƒΡ‡Ρƒ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? Всё ΠΎΡ‡Π΅Π½ΡŒ просто: Π² случаС ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвСра – Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² S3 с Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвСров.

ДСйствия Π½Π° сСрвСрС

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ самоС врСмя ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ тСхничСской части :)

Установка aws-cli

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ сСрвСру, ΠΎΡ‚ΠΊΡƒΠ΄Π° планируСтся Π΄Π΅Π»Π°Ρ‚ΡŒ Π±Π΅ΠΊΠ°ΠΏΡ‹ ΠΏΠΎ SSH ΠΎΡ‚ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (root) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ubuntu, для Π΄Ρ€ΡƒΠ³ΠΈΡ… ОБ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ):

# УстанавливаСм зависимости
apt install -y curl unzip

# Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π°Ρ€Ρ…ΠΈΠ²
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

# РаспаковываСм Π°Ρ€Ρ…ΠΈΠ²
unzip awscliv2.zip

# ЗапускаСм установщик
./aws/install

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ‡Ρ‚ΠΎ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ вСрсия)
/usr/local/bin/aws --version

Π’ случаС возникновСния ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ошибок – смотритС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ страницу ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½Π° mcs.

Настройка доступа ΠΊ Π±Π°ΠΊΠ΅Ρ‚Ρƒ

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΠ½ΠΊΡƒΡŽ Π³Ρ€Π°Π½ΡŒ: Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипт для создания Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΎΡ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² систСмС (Π½Π΅ ΠΎΡ‚ root), Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ Π½Π° Π½Π΅Π³ΠΎ.

НСобходимо ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° доступа» Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ сСрвСра Π±Ρ‹Π» доступ ΠΊ Π±Π°ΠΊΠ΅Ρ‚Ρƒ. ДСлаСтся это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ способом:

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ„Π°ΠΉΠ» с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ
mkdir -p ~/.aws

# ЗаписываСм ΠΊΠ»ΡŽΡ‡ΠΈ Π² Ρ„Π°ΠΉΠ»
echo "[default]
aws_access_key_id = Access_Key_ID
aws_secret_access_key = Secret_Key
" > ~/.aws/credentials

ВмСсто Access_Key_ID ΠΈ Secret_Key Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ значСния.

Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° для Π΄Ρ€ΡƒΠ³ΠΈΡ… S3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ стоит Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π³ΠΈΠΎΠ½ (Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° region Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ создан Π±Π°ΠΊΠ΅Ρ‚, Π½ΠΎ Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² этом Π½Π΅Ρ‚ нСобходимости.

Π­Π½Π΄ΠΏΠΎΠΈΠ½Ρ‚Ρ‹

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ aws-cli настроСна Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с AWS S3, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ endpoint URL. К соТалСнию, ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ этой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ эндпоинты Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, поэтому придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ алиасы ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ эндпоинт Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный endpoint:

Π’ΠΈΠΏ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Endpoint URL
ГорячиС Π΄Π°Π½Π½Ρ‹Π΅ (Hotbox) https://hb.bizmrg.com/
Π₯ΠΎΠ»ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (Icebox) https://ib.bizmrg.com/

Он прописываСтся Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ --endpoint-url, ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±Π°ΠΊΠ΅Ρ‚Π°
/usr/local/bin/aws s3 ls s3://BUCKET_NAME/ --endpoint-url=https://hb.bizmrg.com

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π² S3

Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ достигли самой Π²Π°ΠΆΠ½ΠΎΠΉ части, Ρ€Π°Π΄ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всё Π·Π°Ρ‚Π΅Π²Π°Π»ΠΎΡΡŒ :)

Для бэкапа Ρ„Π°ΠΉΠ»ΠΎΠ²/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скрипт (создайтС Π΅Π³ΠΎ Ρƒ сСбя Π½Π° сСрвСрС Π² Ρ„Π°ΠΉΠ»Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .sh, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: backup_dir.sh):

#!/bin/bash
set -euo pipefail

### Настройки

# Имя Π±Π°ΠΊΠ΅Ρ‚Π°, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅ΠΊΠ°ΠΏΡ‹
S3_BUCKET='my-backup-bucket'

# Endpoint URL (Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: Hotbox, горячиС Π΄Π°Π½Π½Ρ‹Π΅)
S3_ENDPOINT='https://hb.bizmrg.com'

# ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Π΅ΠΊΠ°ΠΏΠΈΡ‚ΡŒ
BACKUP_DIR='/path/to/important_dir'

# ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π°Ρ€Ρ…ΠΈΠ²Ρ‹.
# Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с S3,
# поэтому ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² - ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠΏΠ°Π΄ΡƒΡ‚ ΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.
# ΠŸΡƒΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π‘Π•Π— слСша Π½Π° ΠΊΠΎΠ½Ρ†Π΅!
SYNC_DIR='/backups/dir1'

# ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ создаваСмых Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ²
ARCHIVE_PREFIX='data'

### Основной код

# ВрСмя создания бэкапа
DATE="$(date +%Y-%m-%d_%H-%M)"

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для синхронизации, Ссли ΠΎΠ½Π° Π΅Ρ‰Ρ‘ Π½Π΅ сущСствуСт
mkdir -p "${SYNC_DIR}"

# УдаляСм всС Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ для синхронизции, Π΄Π°Ρ‚Π° измСнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… большС 7 Π΄Π½Π΅ΠΉ
find "${SYNC_DIR}/${ARCHIVE_PREFIX}*" -mtime +7 -exec rm {} \;

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π°Ρ€Ρ…ΠΈΠ² ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΠΈ для Π±Π΅ΠΊΠ°ΠΏΠ° Π² ΠΏΠ°ΠΏΠΊΠ΅ для синхронизации
tar -czf "${SYNC_DIR}/${ARCHIVE_PREFIX}_${DATE}.tar.gz" "${BACKUP_DIR}"

# Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΏΠΊΡƒ с S3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ.
# Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ `--delete` – ΠΎΠ½ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚,
# Ρ‡Ρ‚ΠΎ Ссли Π² исходной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (SYNC_DIR) Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Π² S3,
# Ρ‚ΠΎ ΠΎΠ½ удалится Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.
/usr/local/bin/aws s3 sync --delete "${SYNC_DIR}" "s3://${S3_BUCKET}" --endpoint-url="${S3_ENDPOINT}"

ПослС создания Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° сСрвСрС (с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ настроСк) для удобства ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅:

chmod +x backup_dir.sh

Для Π½Π°Ρ‡Π°Π»Π° – ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот скрипт ΠΈΠ· консоли ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ (Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄):

# Ссли Π΄Π°Π»ΠΈ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
./backup_dir.sh

# Π˜Π›Π˜ Ссли ΠΏΡ€Π°Π² Π½Π΅ Π΄Π°Π²Π°Π»ΠΈ
bash backup_dir.sh

Если Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ошибки, Ρ‚ΠΎ скрипт сообщит ΠΎΠ± этом. Если ошибок Π½Π΅Ρ‚, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΉΡ‚ΠΈ Π² Π±Π°ΠΊΠ΅Ρ‚ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΠ² ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ залился (для спокойствия ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ этот Π°Ρ€Ρ…ΠΈΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ содСрТимоС соотвСтствуСт вашим оТиданиям).

Если всё ΠΎΠΊ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ этот Ρ„Π°ΠΉΠ» Π² crontab для запуска ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ. НС стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² cron для Ρ‚ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Ρ€Π°Π½Π΅Π΅ прописывали ΠΊΠ»ΡŽΡ‡ΠΈ.

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ MySQL Π² S3

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ рассмотрСно созданиС Π±Π΅ΠΊΠ°ΠΏΠΎΠ² Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… MySQL с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°ΠΌΠΏΠ°, Ρ‡Ρ‚ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Π΅ΠΊΠ°ΠΏΠΎΠ² Π‘Π” Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π΄Π° ΠΈ Π½Π° Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ мСньшС рСсурсов). Но Ссли Ρƒ вас Π΄Π°Π½Π½Ρ‹Π΅ Π² Π±Π°Π·Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊΠΎΠΉ способ. Π’ ΠΈΠ½ΠΎΠΌ случаС – стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ wal-g.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .sh, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: backup_db.sh):

#!/bin/bash
set -euo pipefail

### Настройки

# Имя Π±Π°ΠΊΠ΅Ρ‚Π°, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅ΠΊΠ°ΠΏΡ‹
S3_BUCKET='my-backup-db-bucket'

# Endpoint URL (Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: Hotbox, горячиС Π΄Π°Π½Π½Ρ‹Π΅)
S3_ENDPOINT='https://hb.bizmrg.com'

# ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π² Π‘Π”, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ запускаСтся mysqldump
MYSQL_USER='root'

# ΠŸΠ°Ρ€ΠΎΠ»ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
MYSQL_PWD='passw0rd'

# Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°ΠΌΠΏΠΈΡ‚ΡŒ
MYSQL_DB='cooldb'

# ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π°Ρ€Ρ…ΠΈΠ²Ρ‹.
# Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с S3,
# поэтому ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² - ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠΏΠ°Π΄ΡƒΡ‚ ΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.
# ΠŸΡƒΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π‘Π•Π— слСша Π½Π° ΠΊΠΎΠ½Ρ†Π΅!
SYNC_DIR='/backups/mysql'

# ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ создаваСмых Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ²
ARCHIVE_PREFIX='db'

### Основной код

# ВрСмя создания бэкапа
DATE="$(date +%Y-%m-%d_%H-%M)"

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для синхронизации, Ссли ΠΎΠ½Π° Π΅Ρ‰Ρ‘ Π½Π΅ сущСствуСт
mkdir -p "${SYNC_DIR}"

# УдаляСм всС Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ для синхронизции, Π΄Π°Ρ‚Π° измСнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… большС 7 Π΄Π½Π΅ΠΉ
find "${SYNC_DIR}/${ARCHIVE_PREFIX}*" -mtime +7 -exec rm {} \;

# УдаляСм Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с Π΄Π°ΠΌΠΏΠ°ΠΌΠΈ (Ссли Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ запуск Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ)
# ΠΈ создаСм Π΅Ρ‘ Π·Π°Π½ΠΎΠ²ΠΎ
rm -rf "${SYNC_DIR}/_current"
mkdir -p "${SYNC_DIR}/_current"

# Π”Π°ΠΌΠΏΠΈΠΌ Π²Π½Π°Ρ‡Π°Π»Π΅ схСму Π‘Π”
mysqldump -u "${MYSQL_USER}" -p${MYSQL_PWD} --quote-names --create-options --force --no-data --databases "${MYSQL_DB}" > "${SYNC_DIR}/_current/dump.sql"

# А ΠΏΠΎΡ‚ΠΎΠΌ Ρ‚ΡƒΠ΄Π° ΠΆΠ΅ Π΄ΠΎΠ·Π°Π»ΠΈΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅
mysqldump -u "${MYSQL_USER}" -p${MYSQL_PWD} --quote-names --no-create-info  --force --databases "${MYSQL_DB}" >> "${SYNC_DIR}/_current/dump.sql"

# Если Π½ΡƒΠΆΠ½ΠΎ, Ρ‚ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ 2 ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ:
# https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π°Ρ€Ρ…ΠΈΠ² ΠΈΠ· Π΄Π°ΠΌΠΏΠ° Π² ΠΏΠ°ΠΏΠΊΠ΅ для синхронизации
tar -czf "${SYNC_DIR}/${ARCHIVE_PREFIX}_${DATE}.tar.gz" "${SYNC_DIR}/_current"

# УдаляСм Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с Π΄Π°ΠΌΠΏΠΎΠΌ
rm -rf "${SYNC_DIR}/_current"

# Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΏΠΊΡƒ с S3 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ.
# Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ `--delete` – ΠΎΠ½ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚,
# Ρ‡Ρ‚ΠΎ Ссли Π² исходной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (SYNC_DIR) Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Π² S3,
# Ρ‚ΠΎ ΠΎΠ½ удалится Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.
/usr/local/bin/aws s3 sync --delete "${SYNC_DIR}" "s3://${S3_BUCKET}" --endpoint-url="${S3_ENDPOINT}"

Π”Π°Π»Π΅Π΅ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ: Π΄ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, провСряСм Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ Ссли всё Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚ΠΎ добавляСм Π² cron.

Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ PostgreSQL Π² S3

Π‘ΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я написал ΠΏΠΎΡ‡Ρ‚ΠΈ 2 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄: WAL-G: бэкапы ΠΈ восстановлСниС Π‘Π£Π‘Π” PostgreSQL. Π’ Π½Π΅ΠΉ рассказано ΠΎ способС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ крутится Ρƒ мСня Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ всё это врСмя ΠΈ Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ ΠΏΠΎΠ΄Π²Ρ‘Π». ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ pg_dump/pg_dumpall, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π² Π‘Π” ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ ΠΈ Π²Ρ‹ Π½Π΅ Π±ΠΎΠΈΡ‚Π΅ΡΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ кусок ΠΈΠ· Π½ΠΈΡ… :)

ЕдинствСнноС Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ: Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» /var/lib/postgresql/.walg.json Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ эндпоинт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с MCS:

    "AWS_ENDPOINT": "https://hb.bizmrg.com",

ВосстановлСниС ΠΈΠ· Π±Π΅ΠΊΠ°ΠΏΠ°

Π’ΡƒΡ‚ всё просто: Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, зайдя Π² интСрфСйсС VK Cloud Solutions Π² Π±Π°ΠΊΠ΅Ρ‚) ΠΈ выполняСтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° сСрвСрС:

# Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ data_2022-01-01_00-00.tar.gz
/usr/local/bin/aws s3 cp s3://BUCKET-NAME/data_2022-01-01_00-00.tar.gz /path/to/save/ --endpoint-url=https://hb.bizmrg.com

# Π Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΡ‚Π΅ Π΅Π³ΠΎ
tar -xzf /path/to/save/data_2022-01-01_00-00.tar.gz

# И ΡƒΠΆΠ΅ дальшС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ»ΠΈ запускаСтС mysql с Π΄Π°ΠΌΠΏΠΎΠΌ :)

Π Π°Π·Π½ΠΎΠ΅

  1. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±Π°ΠΊΠ΅Ρ‚Π°:
/usr/local/bin/aws s3 ls s3://BUCKET_NAME/ --endpoint-url=https://hb.bizmrg.com
  1. АрхивированиС большого Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π² S3 Π±Π΅Π· сохранСния Π°Ρ€Ρ…ΠΈΠ²Π° Π½Π° дискС:
tar -cv huge_file.log | /usr/local/bin/aws s3 cp - s3://BUCKET_NAME/archive_name.tar.gz --endpoint-url=https://hb.bizmrg.com
  1. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°:
/usr/local/bin/aws s3 rm s3://BUCKET_NAME/filename.tar.gz --endpoint-url http://hb.bizmrg.com

Автор

Lord_Alfred

Π‘Π»ΠΎΠ³: https://t.me/lord_Alfred

About

πŸ—œ Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ настройкС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π² S3

Topics

Resources

Stars

Watchers

Forks