EC2- Computing on demand
April 08, 2019
EC2- Computing on demand
Score 9 out of 10
Overall Satisfaction with Amazon Elastic Compute Cloud (EC2)
Amazon EC2 is the backbone of any cloud deployment for our organization. As one of the first services launched on AWS, it holds a special place in any infrastructure project that we run. The amount of customizability that you have with EC2 is unlike any other AWS service and allows you to find the perfect computing solution for whatever use case you need.
- Customizable computing is here to stay with EC2. From a minimal 2-core machine for a minimal microservice to the biggest 16-core Xeon with Nvidia Quadros for a machine-learning model, compute power can be immediately up or downsized to your current need at any given moment.
- Cost savings with EC2 is incredible. By putting computer hardware in a communal bidding system, you minimize your cost per server with every other company who also wants those resources. If you have time-independent processes that you need to process, you can even bid on leftover server contracts that have gone unfilled for pennies on the dollar.
- EC2 storage options are lengthy, with EBS volumes, ephemeral storage, and multiple options to customize throughput and storage cost for each one.
- The UI of AWS is quite hard to familiarize with, along with the infrastructure setup. It's a conglomeration of hundreds of acronyms specific to AWS that must be understood including their minutiae to effectively run a cloud deployment. While AWS' documentation is extensive, their beginner-focused guides could use work.
- Instances become incredibly hard to manage after a critical mass, forcing companies to create their own management applications to fill the void that AWS leaves. Along with this, AWS' SDKs can be very poorly documented making this task exponentially more difficult.
- If you lose your SSH key that is released with the creation of the instance, you lose complete access to the server. While I understand the reasoning behind this decision, MFA recovery would be a nice touch.
- Highly scalable and available infrastructure keeps our apps up longer for less.
- Confusing UI and infrastructure setup has cost us significant time and resources trying to figure out why a specific resource isn't working as intended.
EC2 is great for any scenario where you need to be upgrading/downgrading your compute power as the app demand grows/shrinks. Because of how the storage system, network system, and security system works under AWS, you can hot swap any server into any given slot. But if you want to customize your servers to the nth degree, then you should just go ahead and purchase them for your network. AWS will never be as customizable as company-run machines, but they will be faster to deploy.