Inhoudsopgave van: Amazon S3 goedkope uploads opslag
Categorie: Plugin , The quest for speed | Tags: amazon, cloud, doorstuur, foto's, massa, opslag, s3, sync, syncen, upload, uploads
Heb je een grote uploads map? Echt gigabytes groot? Of groeit de opslag ervan erg snel? Dan kan het interessant zijn om eens te kijken naar Amazon S3 opslag van je uploads map.
Let op: als je non-publieke data niet-encrypted opslaat bij Amazon ben je in overtreding van de GDPR ( AVG ).
Lees dit eerst
Dit artikel is bedoeld om Amazon S3 opslag te gebruiken voor je uploads map. Dat hoeft niet altijd sneller te gaan bij het laden van bestanden maar heeft wel de volgende voordelen:
- Amazon S3 opslag is zeer goedkoop, zeer grote kans dat het goedkoper is dan je huidige webruimte.
- Amazon is een Amerikaans bedrijf, en is bekend van de Amazon marktplaats. Los daarvan bieden ze ook infrastructuur en clouddiensten aan zoals S3 opslag.
- De enige kosten die je minimaal maakt zijn die van de opslag bij Amazon en het dataverkeer. Bereken ze hier: http://calculator.s3.amazonaws.com/index.html De plugins en code om je bestanden daar te krijgen zijn gratis, tenzij je een upgrade koopt voor meer gemak.
- Je eigen backups (en die van je webhost) van je site gaan veel sneller, dan je hoeft geen gigabytes aan uploads meer te zippen, op te slaan en naar een secundaire backup locatie te sturen. Overigens heeft Amazon ook opties (kost geld) om je bestanden in meerdere datacenters (regio's) op te slaan en te voorzien van versiebeheer.
- Dit artikel voorziet ook in het simpel uploaden van alle bestaande uploads naar Amazon, maar gaat daarbij wel uit van serverbeheer (kennis). Als je dit niet kunt of je webhost voorziet daar ook niet in, kun je een betaalde upgrade kopen om dit zelf via je website te doen: https://deliciousbrains.com/wp-offload-s3/#features Nota bene: voor gebruik met WPML is overigens ook een betaalde upgrade nodig of aardig wat commandline werk
- Als aanvulling: met AWS-CLI kun je onderstaand ook voor elkaar krijgen zonder een WordPress plugin (scheelt je weer WP load).
- Dit artikel gaat er van uit dat je ruimte wil besparen en raad daarom aan om nieuwe uploads NA het uploaden naar amazon van de eigen server te verwijderen. Wil je dat niet, dan moet je zelf kijken wat je het fijnst vindt.
Onze WordPress hostingpakketten kunnen allemaal met Amazon S3 overweg
De Amazon bestands-bucket setup
- Log in op je amazon (aws) console
- Maak een nieuwe bucket aan, bijvoorbeeld "klantnaams3opslag" en denk ook goed na over welke regio je dat wil doen
- Zet static hosting aan, met index op index.html, noteer het web endpoint
- Stel de rechten in:
- Gebruik deze inline json policy zodat iedereen de bestanden mag zien:{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::klantnaams3opslag/*"
}
]
} - Grantee: me (zo laten)
- Opioneel: Grantee: AWS user: List, upload/delete
- Gebruik deze inline json policy zodat iedereen de bestanden mag zien:{
- Maak in IAM een nieuwe user aan met access keys, bewaar deze goed
Maak voor die user een inline custom policy aan (naam statichostingklantnaam) en koppel deze aan de user- {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::klantnaams3opslag",
"arn:aws:s3:::klantnaams3opslag/*"
]
}
]
}Optioneel mits je een plugin gebruikt die alle buckets qua naam wil weten voeg je dit nog toe (bovenaan)
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
- {
WordPress setup met de AWS plugins van Deliciousbrains
- Installeer Amazon Web Services: https://wordpress.org/plugins/amazon-web-services/ die heb je nodig om te kunnen communiceren met Amazon
- Installeer WP Offload S3 : https://wordpress.org/plugins/amazon-s3-and-cloudfront/ dit is de plugin die via de AWS plugin de S3 connectie verzorgt
- AWS access keys toevoegen aan je wp-config bestand
- Bezoek S3 opties: Regel je subdomein (dus niet alleen aanvinken, maar ook zorgen dat je DNS/subdomein bij amazon uit gaat komen). Belangrijk: niet aannemen dat het ineens gaat werken, maar test het voor je live gaat.
- Bezoek S3 opties: Check: Delete files from server
Klaar! Je nieuwe foto's, uploads en bestanden komen nu in de Amazon opslag terecht
Dit is het, helemaal klaar! Tenzij er uploads bestaan die nog naar Amazon gestuurd moeten worden, zie dan hieronder of zie bovenaan voor een optie om dit via de plugin in WordPress te regelen.
Hulp vragen om dit voor mij op te zetten
Optioneel: CLI, om huidige files al op amazon s3 te zetten
Let op: enkel voor techneuten
- Zorg dat je AWS-CLI hebt draaien, zie http://docs.aws.amazon.com/cli/latest/userguide/installing.html
- Ga naar je user home dir op je source machine
- Maak aws.ini aan, pas de keys (xxx) aan en je region
- [default]
aws_access_key_id=<default access key>
aws_secret_access_key=<default secret key>
# Optional, to define default region for this profile.
region=us-west-1
[profile myuser]
aws_access_key_id=xxx
aws_secret_access_key=xxx
region=eu-central-1
- [default]
- Maak s3sync.sh aan
- #!/bin/bash
export AWS_CONFIG_FILE=/home/myuser/aws.ini
cd /home/myuser/public_html/wp-content/uploads
aws –profile myuser s3 sync . s3://klantnaams3opslag/wp-content/uploads/
Let op, voor "profile" moet 2x een "min" teken
Handleiding: https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
- #!/bin/bash
- bash s3sync.sh om de bestanden te syncen naar Amazon S3, en doe iets leuks ondertussen (hangt af van je server uplink en of er veel bestanden staan)
- optioneel, pas je sync commando aan om een andere object storage class te gebruiken om je opslagkost te verlagen, link: https://aws.amazon.com/s3/storage-classes/
Als je dit artikel leuk vond, dan moet je deze speciaal geselecteerde artikelen ook lezen!