Implementering av Amazon S3 for WordPress-blogger

amazon s3 wordpress

OBS: Siden vi skrev dette, har vi siden migrert til flywheel med en Content Delivery Network drevet av StackPath CDN, en mye raskere CDN enn Amazon.378

Med mindre du er på en førsteklasses enterprise hosting-plattform, er det vanskelig å oppnå bedriftsytelse med et CMS-lignende WordPress. Lastedeling, sikkerhetskopier, redundans, replikering og innholdslevering blir ikke billig.

Mange IT-representanter ser på plattformer som WordPress og bruker dem fordi de er gratis. Gratis er imidlertid relativt. Sett WordPress på en typisk hostinginfrastruktur, og et par hundre samtidige brukere kan stoppe nettstedet ditt. For å hjelpe til med bloggens ytelse, endret jeg denne uken installasjonen av WordPress ved å skyve all grafikken fra Amazon S3 (Amazon Simple Storage Service). Dette lar serveren min bare skyve HTML via PHP / MySQL.

Amazon S3 tilbyr et enkelt webtjenestegrensesnitt som kan brukes til å lagre og hente ut hvilken som helst datamengde, når som helst, hvor som helst på nettet. Det gir enhver utvikler tilgang til samme svært skalerbare, pålitelige, raske og rimelige datalagringsinfrastruktur som Amazon bruker for å kjøre sitt eget globale nettverk av nettsteder. Tjenesten tar sikte på å maksimere fordelene ved skalering og å overføre disse fordelene til utviklere.

Å konvertere nettstedet for Amazon S3 tok litt arbeid, men her er det grunnleggende:

  1. Meld deg på Amazon Web Services.
  2. Last inn Firefox-tillegget for S3. Dette gir deg et flott grensesnitt for administrering av innhold i S3.
  3. legge en bøtte, i dette tilfellet la jeg til www.martech.zone.
  4. Legg til et CNAME til domeneregistratoren din for å peke et underdomener fra nettstedet ditt til Amazon S3 for virtuell hosting.
  5. Last ned og installer WordPress-plugin for Amazon S3.
  6. Sett AWS Access Key ID og Secret Key, og klikk oppdater.
  7. Velg underdomenet / bøtta du opprettet ovenfor for Bruk denne bøtta innstilling.

wp-amazon-s3-settings.png

De neste trinnene var den morsomme delen! Jeg ville ikke bare vise fremtidig innhold fra S3, jeg ønsket å levere alt innhold, inkludert annonser, temaer og tidligere mediefiler.

  1. Jeg opprettet mapper for annonser, temaerog Opplastinger i bøtta mi på S3.
  2. Jeg sikkerhetskopierte alt mitt nåværende innhold (bilde- og mediefiler) til gjeldende mapper.
  3. Jeg endret CSS-filen min i temaet mitt for å hente alle bildene fra www.martech.zone/themes.
  4. Jeg gjorde en MySQL søk og erstatt og oppdatert hver referanse til medieinnhold som skal vises fra S3-underdomenet.
  5. Jeg oppdaterte alle bildereferanser for annonser som skal vises fra annonsemappen på S3-underdomenet.

Herfra og ut trenger jeg rett og slett å laste opp media til S3 i stedet for å bruke standard bildeopplastingsdialog for WordPress. Plugin gjør en fantastisk jobb med å sette et S3-ikon på samme sted som Last opp / sett inn ikoner i WordPress-administratoren.

Å flytte all data og kjøre på S3 i et par dager nå har resultert i $ 0.12 i S3-kostnader, så jeg er ikke bekymret for avgiftene involvert - kanskje noen få dollar i måneden er hva det vil koste. På plussiden, hvis jeg får massevis av besøkende, burde jeg være i stand til å håndtere mange flere enn dagens plattformhåndtak. Nettstedet mitt laster inn hjemmesiden om ca. 40% av tiden det pleide å, så jeg er ganske fornøyd med flyttingen!

Det fineste med dette trekket er at det faktisk ikke krever noen utvikling!

28 Kommentarer

  1. 1

    Hei,

    Jeg har en Amazon S3-konto, men etter å ha prøvd å finne ut av ting, forlot jeg den fordi den er for vanskelig. Gjør firefox-tillegget for S3 det mye enklere?

  2. 3

    Jeg bør legge til, du må peke din CNAME til den nye ditt_unique_cloudfront_distribution_name.cloudfront.net i stedet for til ditt_unike_underdomene.s3.amazonaws.com. Men etter det behandler du den akkurat som en vanlig S3-bøtte.

    Det koster mer når du bruker CloudFront-alternativet med høyere hastighet/lav ventetid. Hvis du bestemmer deg for at du heller vil bytte tilbake til standard S3-versjonen, er det bare å bytte CNAME for å peke tilbake til s3.amazonaws.com i stedet.

    For et år siden skrev jeghttp://www.carltonbale.com/tag/amazon-s3/"a noen blogginnlegg på Amaon S3 for alle som er interessert.

  3. 4

    Hvis du er ute etter enda mer av en hastighetsøkning, gjør Amazon S3 Bucket om til en Amazon CloudFront-bøtte, som skaper et ekte globalt multi-server, innholdsdistribusjonsnettverk med lav latens. Her er en link med alle detaljer: http://aws.amazon.com/cloudfront/faqs/

    Dessuten kan wp-supercache-pluginen gi enorme hastighetsøkninger på nettsteder med høy trafikk, da det reduserer CPU-belastningen og databaseanrop betraktelig.

    • 5

      Veldig kult, Carlton! Så det er veldig mye et distribuert nettverk som f.eks Akamai. Jeg var ikke klar over at de hadde det tilgjengelig! Jeg kan dra nytte av det etter å ha sett noen av kostnadene.

      Jeg har hatt caching med wp aktivert før, men jeg har noe dynamisk innhold, så jeg slet veldig med det siden det noen ganger cachede innhold som jeg faktisk ønsket å laste i sanntid.

      • 6

        Douglas,

        Fra beskrivelsen deres høres det ut som at Amazon gjør noe helt annet, sier de:

        "Amazon CloudFront bruker 14 edge-lokasjoner i store markeder over hele verden. Åtte er i USA (Ashburn, VA; Dallas/Fort Worth, TX; Los Angeles, CA; Miami, FL; Newark, NJ; Palo Alto, CA; Seattle, WA; St. Louis, MO). Fire er i Europa (Amsterdam; Dublin; Frankfurt; London). To er i Asia (Hong Kong, Tokyo).»

        De drar i utgangspunktet fordel av internett-utvekslinger for å utnytte deres nærhet til sluttbrukeren, der CDN-er som Akamai har servere mye nærmere sluttbrukeren vanligvis innenfor Internett-leverandørens nettverk.

        Amazons måte å gjøre det på er mye billigere og mer effektiv Akamai.

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

  4. 7

    Jeg vil ikke si at det er vanskelig å "få bedriftsytelse med et CMS som WordPress."

    Alt handler om hvordan du setter opp infrastrukturen eller måten du er vert for CMS.
    Måten selve CMS er blitt kodet på kan også spille en stor rolle i ytelsen, som Carlton påpekte med bruk av wp-supercache-plugin.

    Det hadde vært bedre om funksjonaliteten til wp-supercache-pluginen var innebygd i wordpress fra starten av – men det ville kreve om å skrive grensesnittet. Som er hva lightpress.org gjorde.

    Avlasting av statisk innhold til noe sånt som S3 er en god måte å avlaste behandling og levering fra hovedserveren. Det er en enkel og praktisk måte å benytte seg av Amazons infrastruktur for å gjøre tunge løft, men når du når en kretin-terskel, vil Amazon begynne å bli dyrt og det vil være billigere å gjøre det hjemme og gå med et CDN.

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

    ps
    Jeg har tenkt litt på den situasjonen, hvis bare 100 personer kom sammen og bidro hver måned med prisen på en anstendig server som de vanligvis ville betale for, kunne de bygge/sette sammen hostinginfrastruktur som kunne håndtere nesten hva som helst.

  5. 8

    $0.12 for de første par dagene med S3-tjenester. Vil du gå tilbake til emnet om noen måneder og vise litt statistikk over trafikk kontra kostnader? Det ville vært interessant å se hvordan kostnadene fordeler seg på unike besøkende og mot annonsekostnader eller andre input.

  6. 13
  7. 14

    Amazon S3 er en utrolig godt verdsatt tjeneste. Jeg er akkurat i ferd med å integrere det i et CMS. Det eneste problemet jeg har kommet over fra et utviklingsperspektiv, ikke et Amazon-tjenesteperspektiv, er at hvis du vil at brukeren din transparent skal laste opp filen direkte til S3 via POST, og du har et flerdelt skjema som inneholder tekst beregnet for din lokale database, sitter du fast. Du må enten dele den i to former, eller prøve å bruke ajax for å laste opp filen først, og ved suksess sende inn dataene lokalt.

    Hvis noen har en bedre løsning, gi meg gjerne beskjed :o)

    Ikke desto mindre garanterer kostnadsbesparelsene for å være vert for store høytrafikkfiler utviklingen av et slikt system.

    Grant

    Undertrykkelseslisteadministrasjonssystemer

  8. 15

    Hei,

    Flott skriving. Jeg har gått gjennom som du beskriver, men i administrasjonspanelet mitt der jeg laster opp bilder, ser jeg ingen S3-knapp. Jeg har lagt merke til at bildene mine, når de er lastet opp normalt ender opp på Amazon, betyr dette at jeg nå kan kopiere alle mine eksisterende bilder over og slette de på serveren?

    Og må jeg endre hvor bildene mine kommer fra, eller gjør plugin-en dette?

  9. 16

    Hei Scott,

    Du bør se et lite databasesøkende ikon til høyre for ditt typiske ikon. Det er ikonet for å dukke opp Amazon-vinduet. Jeg flyttet alt av wp-innhold/opplastinger til Amazon og sørget for at jeg hadde samme vei ... den eneste forskjellen var underdomenet. De var kl http://www... og nå er de på images.marketingtechblog.com. Etter at jeg kopierte alle bildene over til Amazon, brukte jeg PHPMyAdmin og gjorde et søk og erstattet for src=”https://martech.zone og erstattet det med src=”images.marketingtechblog.com. (https://martech.zone/wordpress/mysql-search-replace/)

    Håper det hjelper! Det er ikke sømløst, men det fungerer.

    Doug

  10. 17

    Hei Douglas, takk for det, jeg har oppdatert DB slik at alle bildene peker på bilder., men jeg ser at noen av tomlene (når de blir sett på via sideinfo) viser bildet fortsatt på www.

    Her er siden (www.gamefreaks.co.nz) – en, som også hadde et stort minneproblem for forsiden, startet først når vi byttet hosting, derfor ser jeg nå på å avlaste noe av vertspresset til S3. 😎

  11. 18
  12. 19
  13. 20
    • 21

      Den er kompatibel med den nyeste versjonen, men jeg liker ærlig talt ikke måten den fungerer på – du må skifte og laste alle bilder til S3 med en annen prosess. Vi kan faktisk bygge en mer robust CDN (Content Delivery Network)-integrasjon med WP som synkroniserer i stedet for å kreve en annen prosess.

  14. 22
  15. 23

    Vet du om dette fungerer med "Eksterne bøtter" også? Jeg vil sette opp dette for en blogg til en venn av meg og la ham bruke en bøtte i AWS-kontoen min (jeg har allerede opprettet en brukerkonto for ham og ga ham tilgang til en av bøttene mine ved å bruke Amazon IAM-verktøyene).

  16. 24
  17. 25
    • 26

      Celia, gå til AWS-hjemmet http://aws.amazon.com/ og under «Min konto/konsoll»-rullegardinmenyen, velg «Sikkerhetslegitimasjon». Logg på hvis du trenger det. Derfra blar du ned til tilgangslegitimasjon, og du vil se tilgangsnøkkel-ID-ene dine oppført. Kopier en av disse for nøkkel-ID-en for denne plugin-en, og klikk deretter på "Vis"-koblingen for å se den lengre hemmelige tilgangsnøkkelen. Kopier det og lim det inn i plugin-innstillingene også. Du bør være klar etter det!

  18. 27
  19. 28

Hva tror du?

Dette nettstedet bruker Akismet for å redusere spam. Lær hvordan kommentaren din behandles.