Implementering af Amazon S3 til WordPress-blogs

amazon s3 wordpress

Bemærk: Siden vi skrev dette, er vi siden migreret til Svinghjul med en Content Delivery Network drevet af StackPath CDN, en meget hurtigere CDN end Amazon.378

Medmindre du har en førsteklasses virksomhedshostingsplatform, er det svært at opnå virksomhedsydelse med et CMS-lignende WordPress. Load sharing, sikkerhedskopier, redundans, replikering og indholdslevering er ikke billig.

Mange it-repræsentanter ser platforme som WordPress og bruger dem, fordi de er gratis. Gratis er dog relativ. Sæt WordPress på en typisk hostinginfrastruktur, og et par hundrede samtidige brugere kan stoppe dit websted. For at hjælpe med min blogs præstationer ændrede jeg denne uge min installation af WordPress ved at skubbe al grafikken fra Amazon S3 (Amazon Simple Storage Service). Dette efterlader min server til simpelthen at skubbe HTML via PHP / MySQL.

Amazon S3 giver en simpel webtjenestegrænseflade, der kan bruges til at gemme og hente enhver datamængde, når som helst, hvor som helst på nettet. Det giver enhver udvikler adgang til den samme meget skalerbare, pålidelige, hurtige og billige datalagringsinfrastruktur, som Amazon bruger til at køre sit eget globale netværk af websteder. Tjenesten sigter mod at maksimere stordriftsfordele og videregive disse fordele til udviklere.

At konvertere webstedet til Amazon S3 tog lidt arbejde, men her er de grundlæggende:

  1. Tilmeld dig Amazon Web Services.
  2. Indlæs Firefox-tilføjelsesprogrammet til S3. Dette giver dig en god grænseflade til styring af indhold i S3.
  3. Føj til spand, i dette tilfælde tilføjede jeg www.martech.zone.
  4. Føj et CNAME til din domæneregistrator for at pege et underdomæne fra dit websted til Amazon S3 til virtuel hosting.
  5. Download og installer WordPress-plugin til Amazon S3.
  6. Indstil dit AWS-adgangsnøgle-id og hemmelige nøgle, og klik på opdatering.
  7. Vælg det underdomæne / bucket, du oprettede ovenfor til Brug denne spand indstilling.

wp-amazon-s3-settings.png

De næste trin var den sjove del! Jeg ville ikke bare servere fremtidigt indhold fra S3, jeg ville gerne vise alt indhold, inklusive annoncer, temaer og tidligere mediefiler.

  1. Jeg oprettede mapper til annoncer, temaerog Uploads i min spand på S3.
  2. Jeg sikkerhedskopierede alt mit nuværende indhold (billed- og mediefiler) til de relevante mapper.
  3. Jeg ændrede min CSS-fil i mit tema for at trække alle billeder fra www.martech.zone/temaer.
  4. Jeg gjorde en MySQL søg og erstat og opdateret hver henvisning til medieindhold, der skal vises fra S3-underdomænet.
  5. Jeg opdaterede alle billedreferencer for annoncer, der skal vises fra annoncemappen på S3-underdomænet.

Herfra og ud er jeg simpelthen nødt til at uploade medier til S3 i stedet for at bruge standardbilleduploaddialogen til WordPress. Pluginet gør et fantastisk stykke arbejde med at placere et S3-ikon på samme placering som Upload / Insert-ikoner i WordPress-administratoren.

At flytte alle dataene og køre på S3 i et par dage nu har resulteret i $ 0.12 i S3-afgifter, så jeg er ikke bekymret for de involverede gebyrer - måske et par dollars om måneden koster det. På plussiden, hvis jeg får masser af besøgende, skal jeg være i stand til at håndtere mange flere end de nuværende platformhåndtag. Mit websted indlæser hjemmesiden om ca. 40% af den tid, det plejede, så jeg er ganske tilfreds med flytningen!

Det bedste ved dette skridt er, at det faktisk ikke krævede nogen udvikling!

28 Kommentarer

  1. 1

    Hej,

    Jeg har en Amazon S3-konto, men efter at have forsøgt at finde ud af tingene, forlod jeg den bare, fordi den er for vanskelig. Gør Firefox addin til S3 det meget lettere?

    • 2

      Hej Ramin,

      Firefox-tilføjelsen var virkelig et nøgleelement i puslespillet. Du skal absolut have en spand på plads, før pluginet fungerer - så det gør det et øjeblik.

      Doug

  2. 3

    Jeg skal tilføje, du bliver nødt til at pege dit CNAME på det nye dit_unikke_cloudfront_distribution_name.cloudfront.net i stedet for at dit_unikke_underdomæne.s3.amazonaws.com. Men derefter behandler du det ligesom en normal S3-spand.

    Det koster mere, når du bruger CloudFront-indstillingen med højere hastighed / lav latens. Hvis du beslutter dig for hellere at skifte tilbage til standard S3-versionen, skal du bare skifte din CNAME for at pege tilbage til s3.amazonaws.com i stedet.

    For omkring et år siden skrev jeghttp://www.carltonbale.com/tag/amazon-s3/"a få blogindlæg på Amaon S3 til alle interesserede.

  3. 4

    Hvis du leder efter endnu mere hastighedsforøgelse, skal du gøre din Amazon S3 Bucket til en Amazon CloudFront-bucket, som skaber et ægte globalt multi-server-indholdsdistributionsnetværk med lav latens. Her et link med alle detaljer: http://aws.amazon.com/cloudfront/faqs/

    Wp-supercache-pluginet kan også give enorme hastighedsforøgelser på websteder med høj trafik, da det i høj grad reducerer CPU-belastning og databaseopkald.

    • 5

      Meget sejt, Carlton! Så det er meget et distribueret netværk som f.eks Akamai. Jeg var ikke klar over, at de havde det tilgængeligt! Jeg kan drage fordel efter at have set nogle af omkostningerne.

      Jeg har haft cache med wp aktiveret før, men jeg har noget dynamisk indhold, så jeg kæmpede virkelig med det, da det nogle gange ville cache indhold, som jeg faktisk ville indlæse i realtid.

      • 6

        Douglas,

        Fra deres beskrivelse lyder det som om Amazon gør noget helt andet, de siger:

        ”Amazon CloudFront bruger 14 kantplaceringer på store markeder over hele verden. Otte 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 Asien (Hong Kong, Tokyo). ”

        Deres dybest set udnytter internetudvekslinger for at udnytte deres nærhed til slutbrugeren, hvor som CDN'er som Akamai har servere meget tættere på slutbrugeren normalt inden for internetudbyderens netværk.

        Amazons måde at gøre det på er meget billigere og mere effektivt Akamai.

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

  4. 7

    Jeg vil ikke sige, at det er svært at "få virksomhedsydelse med et CMS som WordPress."

    Det hele handler om, hvordan du konfigurerer din infrastruktur eller den måde, du hoster dit CMS på.
    Den måde, hvorpå CMS selv er blevet kodet, kan også spille en stor rolle i dets præstationer, som Carlton påpegede ved hjælp af wp-supercache-pluginet.

    Det ville have været bedre, hvis funktionaliteten af ​​wp-supercache-pluginet var indbygget i wordpress fra starten - men det ville kræve, at frontend'en skulle skrives om. Hvilket er hvad lightpress.org gjorde.

    Fra at indlæse statisk indhold til noget som S3 er en god måde at aflaste behandling og levering fra hovedserveren. Det er en nem og bekvem måde at udnytte Amazons infrastruktur til at gøre det tunge løft, men når du når en cretin-tærskel, begynder Amazon at blive dyr, og det vil være billigere at gøre det internt og gå med et CDN.

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

    Ps
    Jeg har tænkt lidt over den situation, hvis kun 100 mennesker mødtes og hver måned bidrog med prisen på en anstændig server, som de normalt ville betale for, kunne de bygge / sammensætte hostinginfrastruktur, der kunne håndtere næsten alt.

  5. 8

    $ 0.12 for de første par dage af S3-tjenester. Vil du besøge emnet igen om et par måneder og vise nogle statistikker over trafik versus omkostninger? Det ville være interessant at se, hvordan omkostningerne fordeler sig på unikke besøgende og mod annonceomkostninger eller andre input.

  6. 13
  7. 14

    Amazon S3 er en utrolig godt værdsat tjeneste. Jeg er lige ved at integrere det i et CMS. Det eneste problem, jeg er stødt på fra et udviklingsperspektiv, ikke et Amazon-serviceperspektiv, er, at hvis du vil have din bruger til at uploade filen transparent til S3 via POST, og du har en formular med flere dele, der indeholder tekst, der er bestemt til din lokale database, du sidder fast. Du skal enten adskille den i to former, eller prøv at bruge ajax til at uploade filen først og derefter indsende data lokalt efter succes.

    Hvis nogen har en bedre løsning, er du velkommen til at fortælle mig: o)

    Ikke desto mindre berettiger omkostningsbesparelserne til hosting af store filer med høj trafik udviklingen af ​​et sådant system.

    Grant

    Suppression List Management Systems

  8. 15

    Hej,

    Fantastisk skriv op. Jeg er gået igennem, som du beskriver, men i mit adminpanel, hvor jeg uploader billeder, kan jeg ikke se en S3-knap. Jeg har bemærket, at mine billeder, når de uploades normalt ender på Amazon, betyder det, at jeg nu kan kopiere alle mine eksisterende billeder over og slette dem på serveren?

    Og skal jeg ændre, hvor mine billeder kommer fra, eller gør plugin dette?

  9. 16

    Hej Scott,

    Du skal se et lille ikon, der ser database ud til højre for dit typiske ikon. Det er ikonet til at dukke op i Amazon-vinduet. Jeg flyttede alt wp-indhold / uploads til Amazon og sørgede for, at jeg havde den samme vej ... den eneste forskel var underdomænet. De var ved http://www... og nu er de på images.marketingtechblog.com. Efter at jeg havde kopieret alle billederne til Amazon, brugte jeg PHPMyAdmin og søgte og erstattede efter src = ”http://martech.zone og erstattede den med src =” images.marketingtechblog.com. (https://martech.zone/wordpress/mysql-search-replace/)

    Håber det hjælper! Det er ikke problemfrit, men det fungerer.

    Doug

  10. 17

    Hej Douglas, tak for det, jeg har opdateret DB, så alle billeder peger på billeder., Men jeg ser nogle af tommelfingrene (når man ser på dem via sideinfoen) viser iamge stadig på www.

    Her er siden (www.gamefreaks.co.nz) - alos, der har et stort hukommelsesproblem til forsiden, startede først, når vi skiftede hosting, og derfor kiggede jeg nu på at aflaste noget af hostingpresset til S3. 😎

  11. 18

    ved du, om det er muligt bare at uploade til S3 uden at det også gemmer en kopi på den lokale server?

    tnx

  12. 19

    Hej Scott, S3-pluginet giver sin egen sti direkte til Amazon, så filen lagres IKKE lokalt.

  13. 20
    • 21

      Det er kompatibelt med den nyeste version, men jeg kan ærligt talt ikke lide den måde, den fungerer på - du skal skifte og indlæse alle billeder til S3 med en anden proces. Vi kan faktisk opbygge en mere robust CDN (Content Delivery Network) integration med WP, ​​der synkroniserer snarere end kræver en anden proces.

  14. 22
  15. 23

    Ved du, om dette også fungerer med "Eksterne skovle"? Jeg vil oprette dette til en blog af en af ​​mine venner og lade ham bruge en spand i min AWS-konto (jeg har allerede oprettet en brugerkonto til ham og gav ham adgang til en af ​​mine spande ved hjælp af Amazon IAM-værktøjerne).

  16. 24
  17. 25
    • 26

      Celia, gå til AWS hjem http://aws.amazon.com/ og vælg "Sikkerhedsoplysninger" under rullemenuen "Min konto / konsol". Log ind, hvis du har brug for det. Derefter skal du rulle ned til adgangsoplysninger, og du vil se dine adgangsnøgle-id'er anført. Kopier en af ​​dem til nøgle-id'et til dette plugin, og klik derefter på linket "Vis" for at se den længere hemmelige adgangsnøgle. Kopier det og indsæt det også i plugin-indstillingerne. Du skal være klar efter det!

  18. 27
  19. 28

Hvad mener du?

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.