Amazon provides a fantastic suite of web services that enables developers to create dynamic and robust applications. Although these tools are incredibly powerful, they can be complicated to use. RightScale is dedicated to providing powerful and intuitive solutions and ways to take full advantage of Amazon's Web Services. Deploying on AWS can save you time, money and manpower to build and maintain more traditional systems. Deploying on RightScale will magnify your return on investment, cut your time to market, and reduce the resources needed to manage your hosting. Before we show you how we make it easier, lets cover some of the basics of the services that Amazon provides. If you want additional info, take a look at Amazon's AWS page.
EC2 introduces a new paradigm for web hosting. By allowing developers to scale their number of machines up or down within minutes, it offers the capability to create distributed and scalable applications that run in the cloud. EC2 is flexible, reliable, secure, and most importantly cheap! By only paying for the resources that you actually use, you can bring your multi-server application to market much cheaper than ever before, and maintain an extremely high level of quality and availability. Let's take a look at some of the basic concepts of how this service works. For more information visit the EC2 site.
An Amazon Machine Image (AMI) is a packaged environment that contains a configured Linux operating system. RightScale supports and suggests using our own custom RightImages. They are designed specifically for use on EC2 through RightScale, and contain a lightweight server installation with a suite of necessary tools prepackaged. We publish the scripts we use to make them so you can see how they work and even modify, building your own to suit your particular needs.
Instance Types
Amazon currently provides three different instance types of varying computing power. The small instance runs on a 32-bit system, and both the large and extra-large instances run on a 64-bit system. They each have different levels of computing power and hardware resources. See EC2 Instance Types.
SSH Keys
When you launch an image, you specify a particular SSH-key to associate with that image. This allows you to gain access to your machines without using passwords. This is the recommended and most secure way to communicate with your instances. RightScale uses this key to configure and monitor your instances. You should not modify this key or your instances will no longer be able to communicate with the RightScale dashboard and you won't be able to use key features.
Access Key IDs
Amazon issues two kinds of Access Key IDs to authenticate requests between instances. Your public Access Key identifies you as the originator of a request, but is not encrypted. Your Secret Access Key is used to calculate a specific request signature that authenticates you as the true user for services that require authentication on your instances. As the name suggests, this key should be kept private.
Security Groups
To provide the most security possible, Amazon has implemented Security Groups. This provides functionality similar to a traditional firewall, but has some additional features. You have the ability to filter traffic based on IP (a specific address or a subnet), packet types (TCP, UDP or ICMP), and ports (or a range of ports). You can also grant access to an entire security group. This allows your trusted machines to access each other without having to open ports to the public.
Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites. The service aims to maximize benefits of scale and to pass those benefits on to developers. Take a look at Amazon's S3 site.
Amazon Simple Queue Service (Amazon SQS) offers a reliable, highly scalable hosted queue for storing messages as they travel between computers. By using Amazon SQS, developers can simply move data between distributed application components performing different tasks, without losing messages or requiring each component to be always available. More info is on the SQS site.
Amazon SimpleDB is a web service for running queries on structured data in real time. This service works in close conjunction with EC2 and S3, collectively providing the ability to store, process and query data sets in the cloud. These services are designed to make web-scale computing easier and more cost-effective for developers.
Traditionally, this type of functionality has been accomplished with a clustered relational database that requires a sizable upfront investment, brings more complexity than is typically needed, and often requires a DBA to maintain and administer. In contrast, Amazon SimpleDB is easy to use and provides the core functionality of a database - real-time lookup and simple querying of structured data - without the operational complexity. Amazon SimpleDB requires no schema, automatically indexes your data and provides a simple API for storage and access. This eliminates the administrative burden of data modeling, index maintenance, and performance tuning. SDB is intentionally feature poor and specific architecture considerations must be made before adopting SDB. Read more about SDB on the SDB site.