Amazon S3 + Phrozn + rsync
Ho sempre creduto che S3 sia il vero servizio rivoluzionario di Amazon. E’ anche vero che quando si parla di S3 si parla di contenuti statici. Per questo ho analizzato Phrozn per la gestione di siti web statici che ammetto anche alimentazioni dinamiche (staticizzate dallo strumento Phrozn).
Non è possibile montare un disco virutale che sia un bucket S3. Questo per indicare che il contenuto staticizzato sarebbe da inviare ad S3 tramite un secondo applicato. Questo è sicuramente scomodo in quando dobbiamo sviluppare un supporto software che faccia la copia di tutti i file generati verso il bucket in questione.
Con una semplice ricerca però possiamo subito vedere che rsync e s3fs (progetto opensource) possono risolvere in modo elegante e veloce il problema.
Grazie a s3fs possiamo subito montare il bucket S3 in locale:
/usr/bin/s3fs mybucket /mnt
A questo punto possiamo utilizzare rsync per inviare il contenuto staticizzato di Phrozn in modo semplice ed automatizzato
#!/usr/bin/env bash phr up && rsync -avz --delete public_html/ /mnt
Se mettiamo in cron (hourly/daily/etc.) questo semplice script possiamo inviare il portale staticizzato periodicamente verso S3 e di conseguenza verso il nostro dominio (example.walterdalmut.com/tweets/index.html).
(fate attenzione che gli script non includono il posizionamento assoluto necessario per un corretto funzionamento [chiamati manualmente in questo esempio])
