What are the pros and cons of using Amazon EC2
- Instant provisioning of new servers.
- Elastic growth for any workload with lots of instance types and ready to go images to launch an OS or software without doing all the setup.
- Multiple geographic areas to run servers with a standard interface.
- Programmatic/API access to do everything.
- Multiple availability zones in each region for availability and capacity planning.
- Entire AWS ecosystem of services and support and community to build on.
- Spot market to bid on instances at cheap prices, in exchange for guaranteed capacity, which allows for some great cost savings on scalable workloads.
- Long-term pricing available for discounts.
- All accounts are in a Virtual Private Cloud by default (isolated private network for security).
- Security groups make firewall access easy to setup.
- ELB makes load balancing easy to setup.
- Instance types are rigid, must get entirely bigger instances even if just interested in more CPU or RAM.
- Expensive at on-demand rates if elasticity is not needed (or expensive upfront payment if not using server for entire purchase length).
- VM performance can be highly variable due to size, placement, and other uses on the same physical hardware.
- No IPv6 support yet (as of 2015).
- No VPN access to internal network (need custom software or DirectConnect service).
- Networking is not as flexible as other providers or colo (no multicast support, low control over interfaces and bindings). Cross-region communication is more complex to setup.