Wdrażanie Amazon S3 dla blogów WordPress

amazon s3 wordpress

Uwaga: Od kiedy to napisaliśmy, przeszliśmy na koło zamachowe z Content Delivery Network obsługiwane przez StackPath CDN, znacznie szybszy CDN niż Amazon.378

Jeśli nie korzystasz z najwyższej klasy korporacyjnej platformy hostingowej, trudno jest uzyskać wydajność przedsiębiorstwa za pomocą takiego systemu CMS WordPress. Współdzielenie obciążenia, kopie zapasowe, nadmiarowość, replikacja i dostarczanie treści nie są tanie.

Wielu przedstawicieli IT przegląda platformy takie jak WordPress i korzysta z nich, ponieważ są wolny. Wolność jest jednak względna. Umieść WordPress na typowej infrastrukturze hostingowej, a kilkuset jednoczesnych użytkowników może doprowadzić do gwałtownego zatrzymania Twojej witryny. Aby wspomóc działanie mojego bloga, w tym tygodniu zmodyfikowałem instalację WordPressa i wypchnąłem wszystkie grafiki z Amazon S3 (Amazon Simple Storage Service). To sprawia, że ​​mój serwer po prostu wypycha HTML za pośrednictwem PHP / MySQL.

Amazon S3 zapewnia prosty interfejs usług sieciowych, który może być używany do przechowywania i pobierania dowolnej ilości danych, w dowolnym czasie, z dowolnego miejsca w sieci. Daje każdemu programiście dostęp do tej samej wysoce skalowalnej, niezawodnej, szybkiej i niedrogiej infrastruktury do przechowywania danych, której Amazon używa do prowadzenia własnej globalnej sieci witryn internetowych. Usługa ma na celu maksymalizację korzyści skali i przekazanie tych korzyści programistom.

Konwersja strony na Amazon S3 zajęła trochę pracy, ale oto podstawy:

  1. Zapisz się na Amazon Web Services.
  2. Załaduj dodatek do przeglądarki Firefox dla S3. Zapewnia to doskonały interfejs do zarządzania treścią w S3.
  3. dodaj wiadro, w tym przypadku dodałem www.martech.strefa.
  4. Dodaj CNAME do swojego rejestratora domeny, aby skierować subdomenę ze swojej witryny do Amazon S3 w celu wirtualnego hostingu.
  5. Pobierz i zainstaluj wtyczkę WordPress dla Amazon S3.
  6. Ustaw swój identyfikator klucza dostępu AWS i tajny klucz i kliknij aktualizuj.
  7. Wybierz subdomenę / zasobnik utworzony powyżej dla domeny Użyj tego wiadra ustawienie.

wp-amazon-s3-settings.png

Kolejne kroki były zabawną częścią! Nie chciałem po prostu obsługiwać przyszłych treści z S3, chciałem obsługiwać wszystkie treści, w tym reklamy, motywy i wcześniejsze pliki multimedialne.

  1. Utworzyłem foldery dla Reklamy, motywy, dodane w moim wiadrze na S3.
  2. Wykonałem kopię zapasową całej mojej aktualnej zawartości (plików graficznych i multimedialnych) w odpowiednich folderach.
  3. Zmodyfikowałem plik CSS w moim motywie, aby pobrać wszystkie obrazy z www.martech.zone/themes.
  4. Zrobiłem Wyszukiwanie i zamiana MySQL i zaktualizował każde odniesienie do treści multimedialnych, które mają być wyświetlane z subdomeny S3.
  5. Zaktualizowałem wszystkie odniesienia do obrazów dla reklam, które mają być wyświetlane z folderu reklam w subdomenie S3.

Odtąd muszę po prostu przesłać multimedia do S3, zamiast używać domyślnego okna dialogowego przesyłania obrazu dla WordPress. Wtyczka wykonuje fantastyczną robotę, umieszczając ikonę S3 w tej samej lokalizacji ikon przesyłania / wstawiania w panelu administracyjnym WordPress.

Przeniesienie wszystkich danych i uruchomienie na S3 przez kilka dni przyniosło teraz 0.12 dolara opłat za S3, więc nie martwię się o opłaty - być może kilka dolarów miesięcznie to będzie kosztować. Z drugiej strony, jeśli mam mnóstwo gości, powinienem być w stanie obsłużyć znacznie więcej niż obsługuje obecna platforma. Moja witryna ładuje stronę główną za około 40% czasu, w którym kiedyś, więc jestem całkiem zadowolony z przeprowadzki!

Najfajniejsze w tym posunięciu jest to, że nie wymagało to żadnego rozwoju!

Komentarze 28

  1. 1

    Cześć,

    Mam konto Amazon S3, ale po próbie rozwiązania problemu po prostu je opuściłem, ponieważ jest to zbyt trudne. Czy dodatek do Firefoksa dla S3 znacznie to ułatwia?

    • 2

      Cześć Ramin,

      Dodatek do Firefoksa był naprawdę kluczowym elementem układanki. Musisz mieć absolutnie wiadro na miejscu, zanim wtyczka zacznie działać - dzięki czemu jest to bardzo proste.

      Doug

  2. 3

    Powinienem dodać, że będziesz musiał skierować swój CNAME na nowy twoja_unique_cloudfront_distribution_name.cloudfront.net zamiast do twoja_unique_subdomain.s3.amazonaws.com. Ale potem traktujesz to jak zwykłe wiadro S3.

    Kosztuje więcej, gdy używasz opcji CloudFront o wyższej prędkości / niskim opóźnieniu. Jeśli zdecydujesz, że wolisz wrócić do standardowej wersji S3, po prostu zmień CNAME, aby wskazywał z powrotem na s3.amazonaws.com.

    Około rok temu pisałemhttp://www.carltonbale.com/tag/amazon-s3/"a kilka postów na blogu na temat Amaon S3 dla wszystkich zainteresowanych.

  3. 4

    Jeśli chcesz jeszcze bardziej zwiększyć prędkość, zamień swoje wiadro Amazon S3 w wiadro Amazon CloudFront, które tworzy prawdziwie globalną sieć dystrybucji treści z wieloma serwerami i małymi opóźnieniami. Tutaj link ze wszystkimi szczegółami: http://aws.amazon.com/cloudfront/faqs/

    Ponadto wtyczka wp-supercache może zapewnić ogromny wzrost szybkości w witrynach o dużym natężeniu ruchu, ponieważ znacznie zmniejsza obciążenie procesora i wywołania bazy danych.

    • 5

      Bardzo fajnie, Carlton! Jest to więc bardzo rozproszona sieć, taka jak Akamai. Nie zdawałem sobie sprawy, że mieli to dostępne! Mogę skorzystać po obejrzeniu niektórych kosztów.

      Wcześniej miałem włączone buforowanie z wp, ale mam pewną zawartość dynamiczną, więc naprawdę się z tym zmagałem, ponieważ czasami buforował zawartość, którą tak naprawdę chciałem załadować w czasie rzeczywistym.

      • 6

        Douglas,

        Z ich opisu wynika, że ​​Amazon robi coś zupełnie innego, mówią:

        „Amazon CloudFront korzysta z 14 skrajnych lokalizacji na głównych rynkach świata. Osiem znajduje się w Stanach Zjednoczonych (Ashburn w stanie Wirginia; Dallas / Fort Worth w Teksasie; Los Angeles w Kalifornii; Miami na Florydzie; Newark w stanie New Jersey; Palo Alto w Kalifornii; Seattle w stanie Waszyngton; St. Louis w stanie Missouri). Cztery z nich znajdują się w Europie (Amsterdam; Dublin; Frankfurt; Londyn). Dwie z nich znajdują się w Azji (Hongkong, Tokio) ”.

        Zasadniczo wykorzystują giełdy internetowe, aby zwiększyć swoją bliskość z użytkownikiem końcowym, podczas gdy CDN, takie jak Akamai, mają serwery znacznie bliżej użytkownika końcowego, zwykle w sieci ISP.

        Sposób Amazonki to dużo tańszy i efektywniejszy Akamai.

        Rogerio - http://www.itjuju.com/

  4. 7

    Nie powiedziałbym, że trudno jest „uzyskać wydajność przedsiębiorstwa za pomocą systemu CMS takiego jak WordPress”.

    Wszystko zależy od tego, jak skonfigurujesz swoją infrastrukturę lub jak hostujesz swój CMS.
    Sposób, w jaki sam CMS został zakodowany, może również odgrywać dużą rolę w jego wydajności, jak zauważył Carlton, używając wtyczki wp-supercache.

    Byłoby lepiej, gdyby funkcjonalność wtyczki wp-supercache została wbudowana w wordpress od samego początku - ale wymagałoby to ponownego napisania interfejsu. Które są Czym lightpress.org nie.

    Przeładowanie statycznej zawartości na coś takiego jak S3 to dobry sposób na odciążenie przetwarzania i dostarczania z głównego serwera. Jest to łatwy i wygodny sposób na skorzystanie z infrastruktury Amazonek w celu wykonania ciężkiego podnoszenia, ale gdy osiągniesz próg kretyński, Amazon zacznie rosnąć i taniej będzie robić to na miejscu i korzystać z CDN.

    Rogerio - http://www.itjuju.com/

    Ps
    Przez chwilę zastanawiałem się nad tą sytuacją, gdyby tylko 100 osób zebrało się i co miesiąc wpłacało cenę przyzwoitego serwera, za który normalnie płaciliby, mogliby zbudować / złożyć infrastrukturę hostingową, która poradziłaby sobie prawie wszystko.

  5. 8

    0.12 USD za pierwsze kilka dni korzystania z usług S3. Czy wrócisz do tego tematu za kilka miesięcy i pokażesz statystyki dotyczące ruchu w porównaniu z kosztami? Ciekawie byłoby zobaczyć, jak rozkłada się koszt na unikalnych użytkowników i koszty reklamy lub inne dane wejściowe.

  6. 13
  7. 14

    Amazon S3 to niezwykle ceniona usługa. Jestem w trakcie integrowania go z systemem CMS. Jedynym problemem, na który natknąłem się z perspektywy programistycznej, a nie z perspektywy usługi Amazon, jest to, że jeśli chcesz, aby użytkownik w przejrzysty sposób przesłał plik bezpośrednio do S3 za pośrednictwem POST i masz formularz wieloczęściowy, który zawiera tekst przeznaczony dla twojego lokalnego baza danych, utknęłaś. Musisz albo rozdzielić go na dwa formularze, albo spróbować najpierw przesłać plik za pomocą ajax, a następnie, po pomyślnym zakończeniu, przesłać dane lokalnie.

    Jeśli ktoś ma lepsze rozwiązanie, daj mi znać: o)

    Niemniej jednak oszczędność kosztów związanych z hostingiem dużych plików o dużym natężeniu ruchu uzasadnia opracowanie takiego systemu.

    Dotacja

    Systemy zarządzania listami wykluczeń

  8. 15

    Cześć,

    Świetnie napisać. Przeszedłem przez to, jak opisujesz, ale w moim panelu administracyjnym, w którym przesyłam obrazy, nie widzę przycisku S3. Zauważyłem, że moje obrazy po załadowaniu normalnie trafiają na Amazon, czy to oznacza, że ​​mogę teraz skopiować wszystkie moje istniejące obrazy i usunąć te na serwerze?

    Czy muszę modyfikować, skąd pochodzą moje obrazy, czy też wtyczka to robi?

  9. 16

    Cześć Scott,

    Po prawej stronie typowej ikony powinna pojawić się mała ikona wyglądająca jak baza danych. To ikona, aby wyświetlić okno Amazon. Przeniosłem wszystkie pliki wp-content / uploady do Amazon i upewniłem się, że mam tę samą ścieżkę… jedyną różnicą jest subdomena. Byli na http://www... a teraz są pod adresem images.marketingtechblog.com. Po skopiowaniu wszystkich obrazów do Amazon, użyłem PHPMyAdmin, wyszukałem i zastąpiłem src = ”http://martech.zone i zamieniłem go na src =” images.marketingtechblog.com. (https://martech.zone/wordpress/mysql-search-replace/)

    Mam nadzieję, że to pomoże! Nie jest to płynne, ale działa.

    Doug

  10. 17

    Hej Douglas, dzięki za to, zaktualizowałem bazę danych, więc wszystkie obrazy wskazują na obrazy., Ale widzę, że niektóre kciuki (patrząc przez informacje o stronie) pokazują iamge nadal na www.

    Oto strona (www.gamefreaks.co.nz) - a, również z poważnymi problemami z pamięcią na stronie głównej, zaczęła się dopiero po przeniesieniu hostingu, dlatego teraz rozważam przeniesienie części obciążenia związanego z hostingiem na S3. 😎

  11. 18
  12. 19
  13. 20
    • 21

      Jest kompatybilny z najnowszą wersją, ale szczerze mówiąc nie podoba mi się sposób, w jaki działa - musisz przesuwać i ładować wszystkie obrazy do S3 w innym procesie. Możemy faktycznie zbudować solidniejszą integrację CDN (Content Delivery Network) z WP, która synchronizuje, a nie wymaga innego procesu.

  14. 22
  15. 23

    Czy wiesz, czy to działa również z „zasobnikami zewnętrznymi”? Chcę ustawić to dla bloga mojego przyjaciela i pozwolić mu korzystać z wiadra na moim koncie AWS (utworzyłem już dla niego konto użytkownika i dałem mu dostęp do jednego z moich wiader za pomocą narzędzi Amazon IAM).

  16. 24
  17. 25
    • 26

      Celia, idź do domu AWS http://aws.amazon.com/ i w menu „Moje konto / konsola” wybierz „Poświadczenia bezpieczeństwa”. Zaloguj się, jeśli potrzebujesz. Następnie przewiń w dół do opcji Poświadczenia dostępu, a zobaczysz listę swoich identyfikatorów kluczy dostępu. Skopiuj jeden z identyfikatorów klucza dla tej wtyczki, a następnie kliknij link „Pokaż”, aby zobaczyć dłuższy tajny klucz dostępu. Skopiuj to i wklej również do ustawień wtyczki. Po tym wszystko powinno być gotowe!

  18. 27
  19. 28

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.