Det är nu fyra dagar sedan som Bloggy tog ett första steg till att bli en ”del av molnet”-tjänst. Det första steget innebär att alla statiska objekt ligger på Amazon CloudFront-tjänsten.
Eftersom jag hade gjort en implementation till Bloggy tidigare som använde sig av SimpleCDN så var det trivialt att byta ut två rader kod så att Bloggy istället använde sig av Amazon CloudFront.
Den PHP-implementation jag använder är denna: undesigned.org.za/2007/10/22/amazon-s3-php-class
Och den kod som jag använder mig för att ladda upp ett objekt i PHP är följande:
require_once "S3.class.php";
$s3 = new S3('accessKey', 'secretKey');
$s3->putObjectFile('file.doc', 'cf.bloggy.se', 'docs/file.doc', S3::ACL_PUBLIC_READ);
Detta förutsätter att jag redan innan skapat en CloudFront bucket med hjälp av s3cmd:
$ s3cmd --configure
Tips: Använder du Amazon S3 istället så bör du lägga till raden ”bucket_location = EU” i din ~/.s3cfg om du vill att dina buckets ska skpas i europa.
$ ./s3cmd mb s3://cloudfront.bloggy.se
Bucket 's3://cloudfront.bloggy.se/' created
$ ./s3cmd cfcreate s3://cloudfront.bloggy.se
Distribution created: Origin: s3://cloudfront.bloggy.se/
DistId: cf://E3VE9DJIVFQYO3
DomainName: d1bq8ovpea0j10.cloudfront.net
CNAMEs:
Comment: http://cloudfront.bloggy.se.s3.amazonaws.com/
Status: InProgress
Enabled: True Etag:
E2N0AVZ9F1WJZL
$
Som ovan visar så är Status: InProgress och efter några minuter så visas Status: Deployed.
Om du vill använda ditt eget domännamn exempelvis cloudfront.bloggy.se (DNS != bucketnamn) så måste detta sättas som CNAME parameter på den bucketen eller så använder du
Andra bra kommandon: s3cmd ls samt s3cmd cfinfo för att visa dina buckets samt status.
För att sedan synkronisera statiska objekt såsom CSS-filer så behöver du enbart göra enligt följande:
$ ./s3cmd sync /var/www/bloggy.se/docs/css/ s3://cloudfront.bloggy.se
Efter fyra dagar så ser min förbrukning/dollars ut så här (klicka på bilden):
Jag har tidigare jämfört Amazon S3 med CloufFront.