Mentionsy

Rób WordPressa
Rób WordPressa
16.09.2025 08:50

187 - WordPress i Amazon S3 - historia o tym jak przeniosłem 150 000 plików do chmury i podniosłem bezpieczeństwo

Poznaj zalety przeniesienia plików z dysku serwera do chmury. W tym odcinku wyjaśniam, co to jest Amazon S3, jak wygląda struktura przechowywania danych w bucketach i jak bezpiecznie zintegrować tę usługę z Twoim WordPressem. Dodatkowo, dowiesz się, jak sprawnie przeprowadziłem proces migracji 150 000 plików do chmury Amazona i dlaczego to rozwiązanie okazało się kluczowe dla optymalizacji, bezpieczeństwa i wydajności pewnego projektu.

Sponsorzy odcinka (1)

Cyberfolks post-roll

"z kodem podcast otrzymacie 20% rabatu na usługę hostingu WordPress"

Szukaj w treści odcinka

Znaleziono 28 wyników dla "Amazon"

Dzisiaj temat, który chodził mi po głowie od dosyć długiego czasu, natomiast wtedy był to troszkę inny kontekst, ale tak się zdarzyło, że w ostatnich tygodniach pracowałem nad pewną migracją, gdzie wykorzystałem właśnie coś takiego jak Amazon S3.

I tak jak wspomniałem już na początku odcinka, jednym z rozwiązań, które możemy wykorzystać jest Amazon S3.

przenoszenie plików po pewnym czasie do jakiejś innej klasy tego storage'u amazonowego bądź np.

Amazon w Europie ma kilka tych lokalizacji jak oczywiście na całym świecie czy to Stany, Azja itd.

Ja tutaj będę się posługiwał nomenklaturą Amazona i tą S3 od Amazona bo akurat tego użyłem tego rozwiązania użyłem przy moim ostatnim wdrożeniu.

Natomiast w pewnym stopniu można powiedzieć, że ta S3 stała się takim branżowym standardem i mamy choćby od Cloudflare'a usługę, która jest kompatybilna z S3, czyli de facto nawet jeśli mamy coś przygotowane pod to API Amazona, pod S3, no to na rynku jest wiele innych providerów, którzy dostarczają, można powiedzieć, usługę na bardzo podobnym

Do głównych zalet tego rozwiązania możemy zaliczyć przede wszystkim niezawodność, ponieważ Amazon np.

Oczywiście łatwość integracji, bo mamy tutaj zarówno dużo gotowych wtyczek, które możemy użyć, ale też Amazon dostępnie swoje SDK w większości popularnych języków programowania, więc jeśli potrzebujemy zrobić coś bardziej niestandardowego, no to wtedy możemy użyć takiego SDK i zaprogramować coś na własną rękę.

Amazon S3 poradzi sobie bez problemu zarówno z takim

I myślę, że też próg wejścia jest dosyć niski, ponieważ do testów nawet możemy użyć konta, które daje nam jakieś darmowe limity na wykorzystanie tych usług Amazona, więc jeśli chcemy sobie poklikać, potestować, zobaczyć z czym to się je, to bez podpinania karty nawet możemy sobie przetestować te usługi, zobaczyć jak to działa w praktyce.

Jeśli chcielibyście sobie policzyć, mniej więcej oszacować te koszty, to albo musicie zajrzeć do cenników Amazona, wrzucić to w jakiegoś Excela i policzyć według waszych potrzeb.

Ale Amazon też ma kalkulatory na swoich stronach, gdzie możemy wybrać sobie właśnie to, jakiej klasy ten storage potrzebujemy, ile go potrzebujemy.

Dzięki czemu w momencie ładowania strony już te zdjęcia lecą sobie bezpośrednio z serwerów Amazona i to można powiedzieć dzieje się wszystko automatycznie to znaczy i ta wysyłka i potem ta podmiana to wszystko.

Cloudflare, o którym mówiłem w jednym z ostatnich odcinków, albo podobnego rozwiązania, ale od Amazona, czyli CloudFront i wtedy możemy sobie zrobić taką konfigurację, gdzie S3 odpowiada za przechowywanie tych wszystkich plików, czyli za zagromadzenie ich tak jak dysk naszego serwera, a na poziomie CloudFronta, czy tam Cloudflare'a, czy jeszcze innych tego typu rozwiązań możemy dostarczać te treści na

Amazona czy jakiegoś innego wendora który dostarcza nam taką usługę.

I tutaj pomyślałem od razu o integracji właśnie rozwiązania typu Amazon S3.

Tak jak mówiłem wcześniej, Amazon ma dostępne SDK, również dla PHP, więc wziąłem takie SDK oficjalne Amazonowe, czyli miałem gotową bibliotekę do zarządzania tymi plikami, do wysyłania, krótko mówiąc do komunikacji z API Amazona, przy czym właśnie z tym API w zasadzie nie musiałem nic robić, bo ta biblioteka dawała mi

I dopiero potem WP Kron wysyłał je do Amazona.

Oczywiście w PostMeta zapisywał odpowiednie dane, odpowiednie ścieżki, gdzie te pliki są, tak abym mógł potem w systemie łatwo obsłużyć to i podlinkować te pliki już właśnie za pomocą linków do Amazona.

Więc tu na tym etapie mamy powiedzmy połowę roboty zrobionej, no bo te pliki lecą już do Amazona, no ale okej, mieliśmy takie założenie, że

Wcześniej wyglądało to tak, że ten pechat na naszym serwerze to obsługiwał, a teraz musimy zrobić tak, żebyśmy mogli podlinkować te pliki z Amazona.

Nikt nie jest w stanie się do nich dobrać, czyli jakby wszyscy są zbanowani z definicji, to jest zresztą chyba domyślna polityka, która jest nakładana przez Amazona w momencie tworzenia takiego bucketa, czyli jakby wszyscy mają zakaz dostępu i o coś takiego nam chodziło.

Po pytajniku doklejony jakiś tam odpowiedni, odpowiednio długi ciąg znaków, jakiś tam hash, token, coś co po prostu mówi Amazonowi, że OK, mogę pokazać ten plik i te linki można generować z jakimś tam odpowiednim czasem ważności.

I właśnie na tej podstawie wysyłamy do Amazona link do pliku który chcemy wygenerować tzw.

No bo teoretycznie mogłem to zrobić w podobny sposób, jak były te pliki pobierane z dysku, czyli za pomocą PHP podawać ten plik do mojej przeglądarki, tylko nie czytać go z dysku, tylko po prostu wczytać go z serwerów Amazona.

fakturę do zapłacenia no to to jest też przechowywany w S3 od Amazona z tego co pamiętam.

Określić też klientowi potencjalne faktury, które będzie Amazon nam wystawiał za przechowywanie tych danych, więc w praktyce jeszcze te koszty okazały się dużo, dużo niższe niż zakładałem.

Tu jeszcze warto wspomnieć to, że pliki w chmurze Amazona są szyfrowane i w momencie pobierania ich są odszyfrowywane i przesyłane do przeglądarki, więc to jest też dodatkowe zabezpieczenie, że nie leżą po prostu te pliki tak jak wcześniej to było na naszym serwerze.