Amazon s3 – sposób na tani hosting plików aplikacji.

Amazon s3 (Simple Storage Service) jest usługą online, która umożliwia składowanie danych na przestrzeni dyskowej serwerów Amazon. W zależności od potrzeb, dane mogą być składowane w USA bądź też w Europie. Usługa s3 wyposarzona jest w API dzięki któremu w prosty sposób można operować na składowanych zasobach.

Usługa ta jest niesamowicie tania, opłaty pobierane są od:

  • zajmowanego miejsca – $0.18 za 1GB / miesiąć
  • zużytego transferu – $0.10 za 1GB transferu IN, $0.10 – $0.17 za 1GB transferu OUT
  • liczby request’ów – $0.012 za 1,000 request’ów PUT, POST, LIST, $0.012 za 10,000 requesty GET i wszelkie inne

Jak widać opłaty są śmiesznie niskie, w przypadku serwisu posiadającego duże ilości multimediów (zdjęcia, wideo etc..) i generującego spory ruch dużo taniej wyjdzie korzystanie z s3 niż korzystanie z jakiegokolwiek hostingu.

Dzięki kalkulatorowi możemy zaplanować i przewidzieć przyszłe koszta i tak możemy wyliczyć, że miesięczny koszt przetrzymywania 10GB i 100GB tranferu kosztować będzie w okolicach $17. Tanio prawda?

Dodatkowo korzystając z usługi Amazon nie trzeba martwić się o utratę danych, bądź ich czasową niedostępność. Infrastruktura s3 jest naprawdę znakomita, jak do tej pory nie było żadnych przypadków przerw w działaniu, a szybkość działania jest naprawdę imponująca.

Jak korzystać?

Aby zacząć korzystać z s3 należy utworzyć konto a następnie aktywować usługę poprzez autoryzację karty kredytowej. Polecam zaznajomić się z obszernym artykułem opisującym filozofie działania Amazon Web Services.

Powstało wiele bibliotek ułatwiających pracę z API s3, na wyróżnienie zasługuje class.s3.php.
Poniżej prościutki przykład użycia tej klasy:

//tworzymy obiekt klasy s3 przekazując identyfikatory naszego konta
$s3 = new S3($AMAZON_KEY, $AMAZON_PRIVATE_KEY);

//tworzymy folder
if( !$s3->bucketExists( 'FOLDER' ) ) {
	$result = $s3->createBucket( 'FOLDER' );
}

//wgrywamy plik
$result = $s3->putObject( 'FOLDER', 'DIST_FILE_NAME', 'PATH_TO_FILE', true );

//od tej chwili możemy się odwoływać do wgranego pliku poprzez http
//http://s3.amazonaws.com/FOLDER/DIST_FILE_NAME

//odczytujemy informacje wgranego obiektu
$objectData = $s3->getObjectInfo( 'FOLDER', 'DIST_FILE_NAME' );

if( !$result ) {
  print $s3->_error ;
}

//kasowanie elementow folderu
$s3->recursiveDelete( 'FOLDER', '' );

Uwaga, klasa ta wymaga dostępu do curl’a bash’owego.
W przypadku gdy funkcja shell_exec() jest zablokowana należy skorzystać z innej biblioteki np. phps3tk.

update 2008-12-19:
Znalazłem bardzo przydatny plugin do Firefox’a Amazon S3 Firefox Organizer(S3Fox), który umożliwia zarządzanie danymi na Amazon s3 z poziomu przeglądarki.

Plugin S3Fox umożliwia praktycznie wszystkie operacje na Amazon S3 jakie udostępnia API: przeglądanie, tworzenie/kasowanie/modyfikowanie folderów, wgrywanie i kasowanie zasobów oraz zarządzanie prawami dostępu do danych.

Dodatkowo generuje log z wykonanych czynności oraz wiele ułatwień. Dzięki niemu możemy przetestować poprawność naszych mechanizmów php’owych, oraz w przypadku jednorazowego upload’u zaoszczędzić czas na pisanie skryptów.

Strona domowa projektu S3Fox.

14 komentarzy do “Amazon s3 – sposób na tani hosting plików aplikacji.”

  1. Wczoraj pół dnia serwis s3 był niedostępny. Hostowane pliki zwracały błąd 503 Http/1.1 Service Unavailable. Dzisiaj w nocy problem został rozwiązany.
    Był to pierwszy pad s3 od lutego. Jak widać nic nie oprze się chwilowym błędom i padom.

  2. stary artykuł – w międzyczasie padów amazona było już kilka, w tym jeden taki poważniejszy kilkugodzinny. Jak widać nic nie jest w 100% pewne. Co oczywiście nie zmienia faktu, że to jest bardzo dobra oferta.

  3. @Tomik – Dzięki!
    super serwer, polecam – zmniejszyłem obciążenie serwera z Wordpresem i przyspieszyłem jego działanie!

    Teraz wypuszczam konkurs i kursy Video – idealne rozwiązanie i tańsze niż płacić w Home czy hekko za dobrego VPS’a

  4. Witam,
    Jest możliwość opłacania hostingu Amazon S3 za pomocą przelewu. (nie korzystając z kart kredytowych ?)

  5. Pisze własny skrypt hostingu plików i mam problem z rejestrem pełnych pobierań, by gromadzić środki na koncie użytkownika (premie do wypłaty), tak jak to jest na rapidshare, hotfile czy piggyshare.com. Czy ma ktoś jakis pomysł jak to rozwiązać? Jak zarejestrować pobranie załego pliku (nie połowy), czyli po wejściu na strone np. http://piggyshare.com/file/%5Bnazwa pliku do pobrania] rozpoczynam pobieranie i po jego zakończeniu zapisuje informacje o dodaniu danej kwoty za pobranie właścicielowi konta z plikiem.

  6. Czesc,

    w Polsce tez mamy platforme cloud computingu, ktora oferuje usluge kompatybilna z Amazon S3.
    Wlasnie przerabiamy razem wtyczki S3 moich blogow i bedziemy testowac rozwiazanie.

    Tiktalik.com, konkretnie chodzi mi o ich usluge Tiktalik Files – http://www.tiktalik.com/files.html
    Sa duzo tansi niz Amazon,

    napisze jak to wyszlo,

    A

  7. ja nie wierzę w te bezpłatne już, kiedyś sie nabrałam i wzięłam, bo jeszcze nie wiedział o co chodzi, namęczyłam sie z reklamami. Teraz już od kilku lat biorę w ddr, jest to hosting SSD z PHP 7, poza tym sa różne konta które moge sobie wybrać i cenowo też sie różnią.

  8. Jes to dobre rozwiązanie jak ktoś ma prostą stronę html. Tworząc coś bardziej zaawansowanego potrzebny jest prawdziwy hosting.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *