This talk will compare the major cloud hosting companies and what products and services they offer. Google's App Engine, Amazon's AWS, Rackspace's Cloud Services and Linode will be compared. We will go beyond a mere checklist of features and dive into such topics as Perl support, cost structures, development strategies, underlying architectures, performance and security.
2. What is "the cloud"?
The definition we'll use for a cloud
hosting provider is a hosting
provider that abstracts away the
hardware details and lets you scale
your usage on-demand.
3. Why "the cloud"?
✔Minimal initial capital for a new startup or project
✔Easily make duplicates of servers to scale out
✔Easily add resources to scale up
✔Reduce costs for temporary environments
✔QA, experimentation, etc
✔Resources are guaranteed (vs shared hosting)
✔Reduced system administration
✔Easier and cheaper to migrate to different OS or
software stack
✔Easily clone existing machines
4. Why not "the cloud"?
✔Extra strict security requirements (HIPAA, some
PCI Levels)
✔Your application needs access to the hardware
✔Need "appliances" in your clust
✔High speed mailers
✔Search appliances
✔Really high performance hardware
5. Oodles and Oodles
✔AppEngine (Google)
✔AWS (Amazon)
✔Azure (Microsoft)
✔Rackspace Cloud
✔Linode
✔Engine Yard
✔Prgmr
✔... and lots more
✔Terremark, Go Grid, Joyent, 3Tera, Cloud BG, Carinet,
SymteriQ, Etelos, Elastic Hosts, Jungle Disk, etc.
6. Oodles and Oodles
✔AppEngine (Google)
✔AWS (Amazon)
✔Azure (Microsoft)
✔Rackspace Cloud
✔Linode
✔Engine Yard
✔Prgmr
✔... and lots more
✔Terremark, Go Grid, Joyent, 3Tera, Cloud BG, Carinet,
SymteriQ, Etelos, Elastic Hosts, Jungle Disk, etc.
7. Why not...?
Google's AppEngine
✔Python and Java (JVM) only
✔Very different architecture
✔Your application must be written from scratch
only using the provided API
✔Ultimate Vendor Lock-In
✔well, you can use AppScale
✔ Very strict limits on computing time and
resources
8. Why not...?
Microsoft's Azure
✔Fairly New
✔Windows only
✔some kind of special windows variant
✔Not a lot of choices in language or software
✔some kind of IIS like thing
✔.Net (CLR) languages
✔some scripting languages
✔no binaries, no compilation, no install
12. AWS
http://aws.amazon.com
Composed of lots of different services that
can be combined in different ways.
EC2, S3, EBS, SQS, RDS, Elastic
MapReduce, Cloud Front, SimpleDB, VPC,
FWS, FPS, Cloud Watch and many more.
13. AWS
EC2 (Elastic Compute Cloud)
Basically their version of virtual hosts (using
the Xen hypervisor).
Most applications won't need to be re-written
and can run as-is.
Your infrastructure will most likely need to
be different, system administration will most
likely be different.
14. AWS
EC2 (Elastic Compute Cloud)
Operating Systems
✔Windows
✔Server 2003 and 2008
✔Linux
✔RHEL, Fedora, OEL, OpenSUSE,
Ubuntu, Debian, Gentoo
✔OpenSolaris
Supports both 32bit and 64bit (with restrictions)
15. AWS
EC2 (Elastic Compute Cloud)
Sizes
✔8 Different sizes in 3 different groups
✔standard
✔high-memory
✔high-cpu
✔Smallest: 1.7G RAM, 160G Storage
✔Largest: 68G RAM, 1T Storage
✔Network usage is billed separately
✔Measures CPU in "compute units"
16. AWS
EC2 (Elastic Compute Cloud)
Pricing Model
✔On Demand
✔Not sure how long you'll need it
✔Reserved
✔Can save up to 35%
✔"Spot"
✔Bid for unused capacity
✔Can be really cheap
✔Can lose it at any time
✔Windows is more expensive than Linux
17. AWS
EC2 (Elastic Compute Cloud)
Locations
✔Mutiple datacenters in multiple locations
✔Northern Virginia
✔Northern California
✔Ireland
✔Singapore
✔You have full control over which location is
used.
18. AWS
EC2 (Elastic Compute Cloud)
IP Addresses
✔Instances are limited to 1 (private) IP
Address which is NAT'd to provide public
access.
✔You can augment that with Elastic IPs
which are associated with an account.
✔Limited to 1 Elastic IP per instance.
✔Quickly remap to a different server for
changes or failover
19. AWS
EC2 (Elastic Compute Cloud)
Elastic Load Balancing
✔Load balance HTTP traffic between EC2
instances.
✔Automatically detects unhealthy nodes
✔Can span multiple zones
✔Works via DNS CNAMEs and can't be
attached to non-root domain names.
20. AWS
EC2 (Elastic Compute Cloud)
Storage
✔Completely ephemeral
✔Plan for failure
✔Not usable for services like a Database or
a file server
✔For permanent storage you need EBS
21. AWS
EBS (Elastic Block Storage)
Block level storage volumes that can be
mounted to EC2 instances. Behave like
RAW unformatted disks.
Need to build your own filesystem on top of
an EBS volume.
22. AWS
EBS (Elastic Block Storage)
✔Volume sizes from 1G to 1T
✔Volumes can be moved around EC2 hosts
✔Can't be shared at the same time
✔Automatic replication across zones
✔Saved snapshots of volumes
✔Clone snapshots to create volume copies
23. AWS
EBS (Elastic Block Storage)
Not locally attached, which means every IO
operation is a network operation.
Can be mitigated somewhat by using
multiple EBS volumes attached to an EC2
host in a RAID 0 software array.
Larger EC2 instances have better network
performance, so the larger the instance the
better EBS will perform.
24. AWS
SimpleDB
Non-relational data store (NoSQL).
Automatic scaling, geographically
distributed, zero maintenance, key-value
store.
Vendor lock-in is high, but since there are
lots of other distributed key-value stores
around it shouldn't be too bad to abstract
away.
25. AWS
S3 (Simple Storage Service)
Storage of files that are available anywhere
via a URL.
Usable outside of EC2.
Pseudo CDN that can be promoted to full
CDN (CloudFront).
Supports both public and private files
26. AWS
SQS (Simple Queue Service)
Messaging system that can be used by EC2
instances even across zones.
Redundant storage of messages (arcoss
locations)
Unlimited number of readers and writers
27. AWS
Cloud Watch
Monitor your EC2 instances to see how they
perform and what resources they are using.
Also allows monitoring of EBS volumes and
Elastic Load Balancing.
Charged per-instance but also includes Auto
Scaling
Almost a necessity with EC2 impermanence
30. Linode
http://linode.com
Been around since 2003 providing VPS
hosting. One main product: their virtual
hosts ("linodes") using the Xen hypervisor.
Like AWS's EC2, most applications won't
need to be re-written.
Not as many additional services as AWS.
Your infrastructure and system
administration will probably not change
much.
31. Linode
Operating Systems
✔Just Linux
✔Arch, RHEL, Fedora, CentOS, OEL,
OpenSUSE, Ubuntu, Debian, Gentoo,
Slackware
Supports both 32bit and 64bit on all instances
32. Linode
Sizes
✔10 Different sizes
✔Smallest: 512M RAM, 16G Storage
✔Largest: 20G RAM, 640G Storage
✔Network usage is built-in
✔Larger instances have more built-in
bandwidth
✔Bandwidth is pooled across all your
instances
✔Extra network usage can be purchased
34. Linode
Locations
✔Mutiple datacenters in multiple locations
✔Newark, NJ
✔Atlanta, GA
✔Dallax, TX
✔Fremont, CA
✔London, UK
✔You have full control over which location is
used.
35. Linode
IP Addresses
✔Instances start out with 2 IP Addresses (1
private, 1 public)
✔Additional IPs can be purchased
✔irc support said there were no limits
✔IP Addresses can be configured for failover
✔Can swap between instances at any time
36. Linode
Storage
✔Permanent
✔All disks are local with RAID mirroring
✔No need for anything like EBS
✔Since total storage on any single node is
limited to 640G you'll need to handle larger
sizes on your own
✔MogileFS
✔Ceph
37. Linode
Misc
✔Free DNS hosting
✔Support for Reverse DNS
✔Customize Installs with "Stack Scripts"
✔Lish web-based console for emergencies
✔OS Lovers (YAPC sponsors)
✔Just gave all their existing customers 40%
more RAM for free :)
43. Rackspace Cloud
Locations
✔Mutiple datacenters in multiple locations
✔Dallas, TX
✔San Antonio, TX
✔Chicago, IL
✔Planning something for the UK
✔You don't have control over which location
is used, at least as far as I could tell.
44. Rackspace Cloud
IP Addresses
✔Instances start out with 2 IP Addresses (1
private, 1 public)
✔Additional IPs can be purchased
✔A limit of 5 public IPs per instance
✔Can only be used for SSL
45. Rackspace Cloud
Storage
✔Permanent
✔All disks are local with RAID mirroring
✔No need for anything like EBS
✔Since total storage on any single node is
limited to 620G you'll need to handle larger
sizes on your own
✔MogileFS
✔Ceph
46. Rackspace Cloud
Misc
✔Free DNS Hosting
✔Support for Reverse DNS
✔Can mix dedicated and cloud servers on
the same network
47. Rackspace Cloud
Cloud Files
✔Similar to AWS ES3
✔Store individual files accessible via URL
✔Can easily upgrade those files to their CDN
✔Supports public and private files
48. Rackspace Cloud
Cloud Sites
✔Basic site hosting with automatic failover,
load balancing and storage redundancy.
✔No root access
✔Supports Perl, PHP, Apache, mod_rewrite,
MySQL, FTP and that's about it
✔Control panel to manage DNS and crons
✔Can't really install your own software
✔Competes well against traditional shared
hosting
50. Feature Comparison
Feature AWS Linode Rackspace
Linux Yes Yes Yes
Windows Yes No Yes
BSDs No No No
Solaris Yes No No
Multiple IPs No Yes Yes(*)
On Demand Pricing Yes Yes Yes
Reserved Pricing Yes Yes No
"Tiny" sizes No Yes Yes
"Huge" sizes Yes No No
Dedicated Servers No No Yes
Permanent Local Storage No Yes Yes
51. Feature Comparison
Feature AWS Linode Rackspace
Auto Scaling Yes No No
Cloud File Storage Yes No Yes
Multiple Data Centers Yes Yes Yes
Automatic Backups No(*) Yes(*) Yes(*)
Add Extra Memory No Yes No
Add Extra Local Storage No Yes No
Free Non-Peak Resources No Yes Yes
API (w/ Perl modules) Yes Yes Yes
Command Line Yes No No
SLA 99.95% 99.9% 100%(*)
Shareable Images Yes No(*) No
53. Performance Comparison
I haven't done a comparison myself, but
others have:
http://www.thebitsource.com/featured-
posts/rackspace-cloud-servers-versus-
amazon-ec2-performance-analysis/
http://journal.uggedal.com/vps-performance-
comparison
54. Performance Comparison
5 different benchmarks were carried out
every 3 hours over a week, leading to 56
runs each. The slowest system used up to
3 hours to complete all 5 benchmarks.
Weeklong benchmarking was used to
account for variance in host load during
the day/night and week.
- Eivind Uggedal
58. Performance Comparison
Summarizing the benchmarks gives us one
clear winner: Linode. 32-bit gave the
best results on the Unixbench runs while
64-bit was fastest on the Django and
database tests.
Since Linode also has the highest
included bandwidth I have a hard time
recommending any of the other providers
if performance and price is most
important for you.
- Eivind Uggedal
59. Conclusions
My personal opinion:
Go with Linode unless you have a good
reason not to. Unless you need:
✔Mixed dedicated and virtual
✔Windows or Solaris
✔Bells and whistles (SQS, RDS, etc)
✔Huge RAM needs