Amazon Simple Storage Service (dále jen S3) je služba spadající do kategorie cloud, která nabízí velmi levné uskladnění vašich dat. Služba je sice cílena především na vývojáře webových aplikací, to ale neznamená, že ji nemůžeme použít i k zálohování osobních stanic a serverů, což bude obsahem tohoto článku.
Vytvoření Amazon účtu a pronajmutí S3 služby je bezplatné a trvá jen několik málo minut. Potřeba je pouze platební karta s povolenými internetovými platbami.
Jakmile máme S3 pronajmuté, je načase vytvořit takzvaný "bucket", tedy jakýsi kontejner, do kterého budeme moci nahrávat data. Těchto bucketů můžeme mít neomezeně mnoho. Při vytváření bucketu je třeba zvolit, kde má být bucket fyzicky umístěn. Na výběr máme USA, USA-západ (Kalifornie) a Evropu (Irsko).
Pro vytvoření bucketu bohužel Amazon přímo neposkytuje žádný nástroj. Naštěstí ale existuje velmi snadné řešení - rozšíření pro Firefox nazvané S3Fox. Po jeho instalaci budete požádání o zadání Access Key a Secret Key, obě tyto položky najdete ve svém Amazon účtu v sekci Security Credentials. Nový bucket se pak vytváří vpravo tlačítkem pro vytvoření složky, přičemž název bucketu musí být unikátní napříč celým S3.
Se samotnou službou S3 se pracuje pomocí SOAP a REST rozhraní, což může na první pohled vypadat jako dost velký problém. Nabízené ceny za překonání těchto potíží ale stojí. Projektů zabývajících se transformací rozhraní S3 do něčeho pro administrátory lépe použitelného (WebDAV, virtuální filesystém, FTP) existuje mnoho. Rozpoznat ale ty, které už dozrály do stabilního stavu, není vůbec lehké. My zde vyzkoušíme možnosti nástroje s3cmd, který je součástí projektu S3 tools a který je patrně jako jediný obsažen v repozitářích debianích distribucí.
Nástroj s3cmd
Jelikož je v repozitářích dost neaktuální verze nástroje, stáhneme si raději současnou verzi, rozbalíme archiv a nainstalujeme příkazem (musíme se nacházet v rozbalené složce):
python setup.py install
Nástroj pak vyvoláme příkazem s3cmd. Před prvním použitím je ale třeba zavolat ho s přepínačem --configure a zadat přihlašovací údaje. Jak nástroj pracuje se můžeme dozvědět z manuálových stránek (příkaz man s3cmd) nebo z webové dokumentace. Základní syntaxe je:
s3cmd (get|put|del) file s3://bucket/path
Osobně jsem si napsal jednoduchý shellový skript, který lokálně uložené archivy zálohy nahraje do S3 a lokální soubory smaže.
#!/bin/bash
s3cmd put /backup/* s3://mybucket/ && rm /backup/*
Časté problémy
Pokud nástroj při pokusu o nahrání dat na server zahlásí jakousi chybu týkající se času, znamená to, že je potřeba změnit čas našeho stroje na stejný jako má server S3. Pokud tedy například máme bucket v Irsku, musíme změnit časovou zónu našeho stroje na UTC(např. Londýnský čas). To provedeme příkazem:
dpkg-reconfigure tzdata
Volitelně můžeme také nainstalovat balík ntpdate, který se postará o automatickou synchronizaci času s NTP servery.
Pisete ze nabizene ceny za prekonani uskali stoji... ale v porovnani s pronajatym serverem ci umisteni serveru kamkoli do serverovny vyjde mnohem levneji... alespon na prvni pohled.