Cloud Platforms: Amazon EC2—Extremely Scalable Cloud Computing Environment
Amazon EC2 overview and pros
Amazon Elastic Compute Cloud (EC2) is a part of the Amazon Web Services offering that provides an extremely scalable virtual computing environment. It allows for working with virtual machines and application images based on the Amazon Machine Images technology. Amazon EC2 is basically an Amazon’s own data center, with WS or REST API on top of that it allows users to deploy their images on Amazon’s computers. It also provides various services, such as S3 or SimpleDB, that are available as long as a user runs on their infrastructure (again, as WS or REST APIs). Amazon EC2 provides scalability for Windows Server, Red Hat, OpenSolaris, Fedora, openSUSE, Gentoo, Oracle, Ubuntu Linux, and Debian-based applications.
Pros
The platform offers the following advantages:
- Amazon EC2 provides flexibility of running in the cloud any application written with any language or framework.
- EC2’s handy pricing models works, touching upon the differences between paying either per hour and purchasing Reserved Instances with a fixed price.
- Among the platform’s advantages should be mentioned the absence of lock-in (compared to GAE), existence of enterprise-grade services (such as Amazon S3), and its rich third-party management application ecosystem. Finally, how Amazon EC2 embodies traditional cloud computing idea is also among its pros: full freedom and no restrictions to run any application, any language, and any framework or middleware.
- The solution’s instance is easy to deploy: a user should just select a preconfigured, templated image or create a custom AMI containing applications, libraries, data, and associated configuration settings. Then, s/he configures security and network access on that instance, chooses which instance type(s) and operating system are required. Finally, a user starts, terminates, and monitors as many instances of an AMI as needed, using the web service APIs or the variety of management tools provided.
- Elasticity and flexibility of Amazon EC2 allows for commissioning a needed number of server instances simultaneously. Since this is controlled with the web service APIs, an application can automatically scale itself up and down depending on its needs.
- The payment advantages of the platform: a user will pay only for the resources that are actually consumed, for example, instance hours or data transfer.
Cons and recommended use
Below, we enlist certain challenges you may face while using Amazon EC2:
- With the SAN (storage area network) facility in the cloud, you have a high chance of latency, so far as network connections are not fast enough to be able to rely on to serve rich media at scale.
- Cloud reliance can cause significant problems when downtime and outages are out of your control. At the end of the presentation, the speaker will mention some other cloud provider issues: being less developer-oriented (compared to GAE), takes more time initially to set up, and no free “sandboxing.”
Amazon EC2 can be implemented by those who need rapid scalability according to changing demands. The speaker will recommend the best practices on using EC2 in conjunction with Amazon Simple Storage Service (S3) and Amazon SimpleDB for secure data storage.
EC2 is a good option for developers who might choose it for CPU-consuming processes or testing, paying less than a dollar for a couple-of-hours use.
Further reading
- Cloud Platforms: Google App Engine
- Cloud Platforms: enStratus
- Cloud Platforms: Windows Azure—Ideal Cloud Architecture for .NET Developers