Web Server Design Week 16 Old Dominion University Department of Computer Science CS 495/595 Spring 2007 Michael L. Nelson <mln@cs.odu.edu> 4/23/07
Amazon S3 “Simple Storage Service” Premise: http://aws.amazon.com/s3 part of a family of Amazon Web Services (AWS), including “Elastic Compute Cloud (EC2)” and “Simple Queueing Service (SQS)” Premise: cheap, remote storage service accessible via http no initial fee, no maintenance fee $0.15 per GB/month storage, $0.20 per GB transferred private/public X read/write access available
Core Concepts Registration: Bucket Object AWS access key ID semantic free name space for your account Secret access key used to authenticate to AWS Bucket namespace for referencing your objects; must be globally unique you can have 1-100 buckets per AWS access key buckets hold 0 or more objects Object files (placed in buckets); up to 5GB in a single object “key” is the identifier for the object placed in a bucket
Access Points 3 different URLs for REST access: Where: For more info: http://s3.amazonws.com/bucket/key http://bucket.s3.amazonws.com/key http://bucket/key Where: bucket = your namespace key = identifier of the object in the bucket For more info: http://docs.amazonwebservices.com/AmazonS3/2006-03-01/VirtualHosting.html
Examples: These are the same (& real): http://s3.amazonaws.com/doc/2006-03-01/AmazonS3.wsdl http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl These would be the same (but not real): http://s3.amazonaws.com/MichaelNelsonFords/1966/Fairlane427 http://michaelnelsonfords.s3.amazonaws.com/1966/Fairlane427 http://fords.michaelnelson.org/1966/Fairlane427
Authenticating to AWS Can authenticate to AWS via: “Authorization” http header using the AWS authentication scheme cf. “Basic” & “Digest in RFC-2616 URL arguments http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAuthentication.html HMAC: Keyed-Hashing for Message Authentication RFC-2104: http://www.ietf.org/rfc/rfc2104.txt
A Tour of the REST API for S3 http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAPI.html