RightScale's AWS gems provide robust, fast,
and secure Ruby interfaces to Amazon EC2, Amazon S3, Amazon SQS, and Amazon
SDB. The gems use Amazon's REST and query interfaces to provide full programmatic control.
An optional robust HTTP layer retries and clears transient errors.
These Gems have been used in production by RightScale since February 2007 and are continuously
improved and updated with any new features offered by Amazon. When we started with AWS we had
no choice but to write our own Gems and we're glad to make them available to the
Ruby community. The design goals for these gems are:
- Full programmmatic access to EC2, S3, SQS, and SDB.
- Complete error handling: all operations check for errors and
report complete
error information by raising an AwsError.
- Persistent HTTP connections with robust network-level retry
layer using
RightHttpConnection). This includes socket timeouts and
retries.
- Robust HTTP-level retry layer. Certain (user-adjustable)
HTTP errors returned
by Amazon's services are classified as temporary errors.
These errors are automaticallly retried using exponentially
increasing intervals.
The number of retries is user-configurable.
- Fast REXML-based parsing of responses (as fast as a
pure Ruby solution allows).
- Uses libxml (if available) for faster response parsing.
- Support for large S3 list operations. Buckets and key
subfolders containing
many (> 1000) keys are listed in entirety. Operations
based on list (like
bucket clear) work on arbitrary numbers of keys.
- Support for streaming GETs from S3, and streaming
PUTs to S3 if the data source is a file.
- Support for single-threaded usage, multithreaded
usage, as well as usage with multiple
AWS accounts.
- Support for both first- and second-generation SQS
(API versions 2007-05-01
and 2008-01-01). These versions of SQS are not
compatible.
- Test suite (requires AWS account to do "live"
testing).
RDoc for the following two gems is available off RubyForge:
- Right AWS gem providing access to EC2, S3, SQS Gen 1 and Gen 2, and SDB.
- Right HTTP Connection gem providing a persistent HTTP or HTTPS
connection with error retries. This is used by the Right AWS gems
These Gems are supported by RightScale Inc;
please email support@rightscale.com with requests
for help or suggestions. We will do our best to respond to bug reports quickly, of course we
always appreciate patches!
Thorsten von Eicken
Todd Bryan