Amazon S3 implementeren voor WordPress-blogs

amazon s3 wordpress

Opmerking: Sinds we dit hebben geschreven, zijn we sindsdien gemigreerd naar vliegwiel met een Content Delivery Network aangedreven door StackPath CDN, een veel snellere CDN dan Amazon.378

Tenzij u zich op een premium enterprise hostingplatform bevindt, is het moeilijk om zakelijke prestaties te krijgen met een CMS-achtig WordPress. Loadsharing, back-ups, redundantie, replicatie en levering van inhoud zijn niet goedkoop.

Veel IT-vertegenwoordigers bekijken platforms zoals WordPress en gebruiken ze omdat ze gratis. Gratis is echter relatief. Zet WordPress op een typische hostinginfrastructuur en een paar honderd gelijktijdige gebruikers kunnen uw site tot stilstand brengen. Om te helpen bij de prestaties van mijn blog, heb ik deze week mijn installatie van WordPress aangepast en alle grafische afbeeldingen van Amazon S3 (Amazon Simple Storage Service) gepusht. Dit laat mijn server over om HTML simpelweg te pushen via PHP / MySQL.

Amazon S3 biedt een eenvoudige webservices-interface die kan worden gebruikt om elke hoeveelheid gegevens op elk moment en overal op internet op te slaan en op te halen. Het geeft elke ontwikkelaar toegang tot dezelfde zeer schaalbare, betrouwbare, snelle en goedkope infrastructuur voor gegevensopslag die Amazon gebruikt om zijn eigen wereldwijde netwerk van websites te beheren. Het doel van de dienst is om schaalvoordelen te maximaliseren en deze door te geven aan ontwikkelaars.

Het kostte wat werk om de site voor Amazon S3 te converteren, maar hier zijn de basisprincipes:

  1. MELD U AAN VOOR Amazon Web Services.
  2. Laad de Firefox-add-on voor S3. Dit biedt u een geweldige interface voor het beheren van inhoud in S3.
  3. Voeg een emmer, in dit geval heb ik toegevoegd www.martech.zone.
  4. Voeg een CNAME toe aan uw domeinregistrar om een ​​subdomein van uw site naar Amazon S3 te laten verwijzen voor virtuele hosting.
  5. Download en installeer de WordPress-plug-in voor Amazon S3.
  6. Stel uw AWS-toegangssleutel-ID en geheime sleutel in en klik op bijwerken.
  7. Selecteer het subdomein / de bucket die u hierboven heeft gemaakt voor het Gebruik deze emmer instellen.

wp-amazon-s3-instellingen.png

De volgende stappen waren het leuke gedeelte! Ik wilde niet alleen toekomstige inhoud van S3 weergeven, ik wilde alle inhoud weergeven, inclusief advertenties, thema's en eerdere mediabestanden.

  1. Ik heb mappen gemaakt voor advertenties, thema'sen Upload in mijn emmer op S3.
  2. Ik heb een back-up gemaakt van al mijn huidige inhoud (afbeeldings- en mediabestanden) in de toepasselijke mappen.
  3. Ik heb mijn CSS-bestand in mijn thema aangepast om alle afbeeldingen uit te halen www.martech.zone/themes.
  4. Ik deed een MySQL zoeken en vervangen en elke verwijzing bijgewerkt naar media-inhoud die moet worden weergegeven vanuit het S3-subdomein.
  5. Ik heb alle afbeeldingsreferenties bijgewerkt voor advertenties die moeten worden weergegeven vanuit de advertentiemap op het S3-subdomein.

Vanaf nu hoef ik alleen maar media naar S3 te uploaden in plaats van het standaard dialoogvenster voor het uploaden van afbeeldingen voor WordPress te gebruiken. De plug-in doet fantastisch werk door een S3-pictogram op dezelfde locatie van Upload / Insert-pictogrammen in de WordPress-beheerder te plaatsen.

Het verplaatsen van alle gegevens en nu een paar dagen op S3 draaien heeft geresulteerd in $ 0.12 aan S3-kosten, dus ik maak me geen zorgen over de kosten - misschien is een paar dollar per maand wat het gaat kosten. Aan de positieve kant, als ik een heleboel bezoekers krijg, zou ik in staat moeten zijn om veel meer aan te kunnen dan de huidige platformhandvatten. Mijn site laadt de startpagina over ongeveer 40% van de tijd dat het vroeger was, dus ik ben best tevreden met de verhuizing!

Het leukste aan deze verhuizing is dat er eigenlijk geen ontwikkeling voor nodig was!

28 reacties

  1. 1

    Hoi,

    Ik heb een Amazon S3-account, maar nadat ik geprobeerd had dingen uit te zoeken, heb ik het verlaten omdat het te moeilijk is. Maakt de Firefox-add-in voor S3 het een stuk eenvoudiger?

    • 2

      Hallo Ramin,

      De Firefox-add-on was echt een belangrijk onderdeel van de puzzel. Je moet absoluut een bucket op zijn plaats hebben voordat de plug-in werkt - dus dat maakt het een fluitje van een cent.

      Doug

  2. 3

    Ik zou moeten toevoegen dat je je CNAME naar het nieuwe moet verwijzen uw_unieke_cloudfront_distributienaam.cloudfront.net in plaats van naar uw_uniek_subdomein.s3.amazonaws.com. Maar daarna behandel je het net als een normale S3-emmer.

    Het kost meer bij het gebruik van de CloudFront-optie met hogere snelheid / lage latentie. Als je besluit dat je liever terugschakelt naar de standaard S3-versie, verander dan gewoon je CNAME zodat deze terugverwijst naar s3.amazonaws.com.

    Ongeveer een jaar geleden schreef ikhttp://www.carltonbale.com/tag/amazon-s3/"a enkele blogposts op Amaon S3 voor iedereen die geïnteresseerd is.

  3. 4

    Als je op zoek bent naar nog meer snelheid, verander je Amazon S3 Bucket dan in een Amazon CloudFront-bucket, waarmee je een echt wereldwijd contentdistributienetwerk met lage latentie en meerdere servers creëert. Hier een link met alle details: http://aws.amazon.com/cloudfront/faqs/

    Ook kan de wp-supercache-plug-in enorme snelheidsverhogingen opleveren op sites met veel verkeer, omdat het de CPU-belasting en database-oproepen aanzienlijk vermindert.

    • 5

      Heel cool, Carlton! Het is dus in feite een gedistribueerd netwerk zoals Akamai. Ik wist niet dat ze dat beschikbaar hadden! Ik kan hiervan profiteren als ik enkele van de kosten heb gezien.

      Ik heb eerder caching gehad met wp ingeschakeld, maar ik heb wat dynamische inhoud, dus ik worstelde er echt mee omdat het soms inhoud in de cache zou opslaan die ik eigenlijk in realtime wilde laden.

      • 6

        Douglas,

        Uit hun beschrijving klinkt het alsof Amazon iets heel anders doet, ze zeggen:

        “Amazon CloudFront maakt gebruik van 14 edge-locaties in grote markten wereldwijd. Acht zijn in de Verenigde Staten (Ashburn, VA; Dallas / Fort Worth, TX; Los Angeles, CA; Miami, FL; Newark, NJ; Palo Alto, CA; Seattle, WA; St. Louis, MO). Vier zijn in Europa (Amsterdam; Dublin; Frankfurt; Londen). Twee zijn in Azië (Hong Kong, Tokio). "

        Ze profiteren in feite van internetuitwisselingen om hun nabijheid tot de eindgebruiker te benutten, terwijl CDN's zoals Akamai servers hebben die veel dichter bij de eindgebruiker liggen, meestal binnen het netwerk van de ISP.

        Amazones manier om het te doen is een stuk goedkoper en effectiever Akamai.

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

  4. 7

    Ik zou niet zeggen dat het moeilijk is om "bedrijfsprestaties te krijgen met een CMS zoals WordPress."

    Het hangt allemaal af van hoe u uw infrastructuur opzet of de manier waarop u uw CMS host.
    De manier waarop het CMS zelf is gecodeerd, kan ook een grote rol spelen in de prestaties, zoals Carlton opmerkte bij het gebruik van de wp-supercache-plug-in.

    Het zou beter zijn geweest als de functionaliteit van de wp-supercache-plug-in vanaf het begin in wordpress was ingebouwd - maar daarvoor zou de front-end opnieuw moeten worden geschreven. Wat is wat lightpress.org deed.

    Het laden van statische inhoud naar iets als S3 is een goede manier om de verwerking en levering van de hoofdserver te ontlasten. Het is een gemakkelijke en handige manier om de Amazons-infrastructuur aan te boren om het zware werk te doen, maar zodra je een cretin-drempel bereikt, wordt Amazon duur en wordt het goedkoper om het in huis te doen en met een CDN te gaan.

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

    Ps
    Ik heb een tijdje over die situatie nagedacht, als maar 100 mensen bij elkaar zouden komen en elke maand de prijs zouden bijdragen van een fatsoenlijke server waarvoor ze normaal zouden betalen, dan zouden ze een hostinginfrastructuur kunnen bouwen / samenstellen die bijna alles aankan.

  5. 8

    $ 0.12 voor de eerste paar dagen van S3-services. Zou u het onderwerp over een paar maanden opnieuw willen bekijken en enkele statistieken over verkeer versus kosten laten zien? Het zou interessant zijn om te zien hoe de kosten worden uitgesplitst naar unieke bezoekers en afgezet tegen advertentiekosten of andere inputs.

  6. 13
  7. 14

    Amazon S3 is een ongelooflijk goed gewaardeerde service. Ik ben net bezig het in een CMS te integreren. Het enige probleem dat ik ben tegengekomen vanuit een ontwikkelingsperspectief, niet vanuit een Amazon-serviceperspectief, is dat als je wilt dat je gebruiker het bestand transparant rechtstreeks uploadt naar S3 via POST en je een uit meerdere delen bestaand formulier hebt dat tekst bevat die bestemd is voor je lokale database, je zit vast. U moet het ofwel in twee vormen scheiden, of u kunt ajax gebruiken om het bestand eerst te uploaden en vervolgens de gegevens lokaal in te dienen.

    Als iemand een betere oplossing heeft, laat het me dan weten: o)

    Desalniettemin rechtvaardigen de kostenbesparingen voor het hosten van grote bestanden met veel verkeer de ontwikkeling van een dergelijk systeem.

    Grant

    Beheersystemen voor onderdrukkingslijsten

  8. 15

    Hoi,

    Geweldig schrijven. Ik ben doorgegaan zoals je beschrijft, maar in mijn admin-paneel waar ik afbeeldingen upload, zie ik geen S3-knop. Ik heb gemerkt dat mijn afbeeldingen, wanneer ze normaal worden geüpload, op Amazon terechtkomen, betekent dit dat ik nu al mijn bestaande afbeeldingen kan kopiëren en de afbeeldingen op de server kan verwijderen?

    En moet ik aanpassen waar mijn afbeeldingen vandaan komen of doet de plug-in dit?

  9. 16

    Hoi Scott,

    Rechts van uw typische pictogram zou u een klein database-uitziend pictogram moeten zien. Dat is het pictogram om het Amazon-venster te openen. Ik heb alle wp-content / uploads naar Amazon verplaatst en ervoor gezorgd dat ik hetzelfde pad had ... het enige verschil is het subdomein. Ze waren bij http://www... en nu staan ​​ze op images.marketingtechblog.com. Nadat ik alle afbeeldingen naar Amazon had gekopieerd, heb ik PHPMyAdmin gebruikt en heb ik gezocht en vervangen naar src = ”http://martech.zone en deze vervangen door src =” images.marketingtechblog.com. (https://martech.zone/wordpress/mysql-search-replace/)

    Hoop dat dat helpt! Het is niet naadloos, maar het werkt.

    Doug

  10. 17

    Hey Douglas, bedankt daarvoor, ik heb de DB geüpdatet zodat alle afbeeldingen naar afbeeldingen verwijzen., Maar ik zie een aantal van de duimen (wanneer bekeken via de pagina info) toont de iamge nog steeds op www.

    Hier is de site (www.gamefreaks.co.nz) - een, alos met een groot geheugenprobleem voor de voorpagina, begon pas toen we de hosting verschoven, vandaar dat ik er nu naar kijk om een ​​deel van de hostingdruk naar S3 te verplaatsen. 😎

  11. 18
  12. 19
  13. 20
    • 21

      Het is compatibel met de nieuwste versie, maar ik hou echt niet van de manier waarop het werkt - je moet alle afbeeldingen naar S3 verplaatsen en laden met een ander proces. We kunnen zelfs een robuustere CDN-integratie (Content Delivery Network) bouwen met WP die synchroniseert in plaats van een ander proces vereist.

  14. 22
  15. 23

    Weet u of dit ook werkt met "Externe emmers"? Ik wil dit instellen voor een blog van een vriend van mij en hem een ​​bucket in mijn AWS-account laten gebruiken (ik heb al een gebruikersaccount voor hem aangemaakt en hem toegang gegeven tot een van mijn buckets met behulp van de Amazon IAM-tools).

  16. 24
  17. 25
    • 26

      Celia, ga naar het AWS-huis http://aws.amazon.com/ en selecteer in het dropdown-menu 'Mijn account / console' de optie 'Beveiligingsreferenties'. Log in als dat nodig is. Blader vanaf daar omlaag naar Toegangsreferenties en u ziet uw toegangssleutel-ID's vermeld. Kopieer een van deze voor de sleutel-ID voor deze plug-in en klik vervolgens op de link "Weergeven" om de langere geheime toegangssleutel te zien. Kopieer dat en plak het ook in de plug-in-instellingen. Daarna zou je helemaal klaar moeten zijn!

  18. 27
  19. 28

Wat denk je?

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.