Cloud Machine Manager Blog

Amazon EC2 – Back to Basics

Amazon EC2 BasicsIf you don’t work directly with Amazon EC2 services, there is a good chance you don’t know a huge amount about them, but then again, why would you need to know about them if you don’t work with them?

Maybe you are responsible for signing off on the purchase of Amazon Web Services or maybe your business is considering the use of Amazon EC2 servers and you need to know a bit more about them. 

Amazon EC2 (Elastic Compute Cloud) is part of the Amazon Web Services (AWS) offering and provides scalable computing capacity. It enables businesses to spin up compute services and start adding their own applications to the cloud services for production or testing, without the need for the hardware.

Amazon EC2 was launched in 2006 when AWS was still relatively new and is still a large part of the AWS offering. The functionality and pay-as-you-go nature of EC2 servers benefits businesses, as they don’t have to acquire expensive hardware for the sake of running some application tests.

Scalability is also a selling point for Amazon when it comes to EC2 as users can upgrade their servers or spin up new instances (an instance is a virtual computing environment) as they need. This in turn can lead to faster development and deployment of new applications and services.

It is also possible to scale down, for example when a business is coming up to the end of an application build process, they might reduce the number of servers they are using for testing as some are no longer needed.

Different EC2 Instance Types

Different businesses have different computing needs and Amazon EC2 caters for this with multiple types of EC2 Instance types you can spin up.   

  • General Purpose Instances

General Purpose Instances come in three variations: T2, M4 and M3.

T2 instances are ‘Burstable Performance Instances’ that offer base level CPU performance but with the ability to go above or ‘burst through’ the base level. These types of servers are commonly used for web servers, developer environments, small databases and other services that don’t require the full CPU consistently.

M4 instances are based on custom Intel processors and offer fixed performance to users with resources that provide a high level of consistent processing performance, but on a low-cost platform. They are great for applications that require balanced CPU and memory performance.

M3 instances also provide a fixed performance and are mainly used for applications that require balanced CPU and memory performance. For example: coding, content management systems and enterprise applications might rely on M3 instances.

  • Compute Optimised Instances

Compute Optimised Instances consist of 2 server types: C4 and C3.

Both C4 and C3 instances are designed for compute-intensive applications. C4 instances in particular are designed to offer the highest level of compute performance that EC2 has to offer.

  • GPU Instances

GPU Instances were a later addition to the Amazon EC2 offering having been launched in 2013. The G2 instances provide graphics processing units (GPUs) coupled with high CPU and network performance. They are designed for applications that use 3D Graphics, rendering and media processing applications.

  • Memory Optimised Instances

Memory Optimised Instances deliver large memory sizes that might be used by memory reliant applications such as scientific computing, databases or analytics solutions. They come in the form of R3 servers.

  • Storage Optimised Instances

Storage Optimised Instances provide very high disk I/O performance or proportionally higher storage density per instance. I2 and D2 servers ensure that applications that benefit from high sequential I/O performance across large datasets can run properly. These instances also provide high levels of CPU, memory and network preferences.

See more information here about the different types of EC2 instances.

For all of you visual people out there, check out this infographic for a breakdown of the history of the development of AWS EC2.

The History of AWS EC2

Pricing Options

Depending on what a business needs Amazon EC2 services for, there are different pricing options from pay-as-you-go type options to yearly contract type pricing.

On-Demand Instances:

On-Demand Instances are effectively pay-as-you-go. You pay a set price by the hour for the services you need. The idea behind this is that you only pay for what you use and you aren’t tied into long-term costs, which can be great if you’re only running a test environment for a few months.

Reserved Instances:

Reserved Instances provide you with a capacity reservation for the servers you need. A business might choose this option if there are going to be running applications for a longer period of time as it can offer significant discounts.

There are three ways to pay for reserved instances; the first is an All Upfront Option in which you pay for the entire reserved instance. The second is a Partial Upfront Option in which you pay some upfront and the rest on a discounted hourly rate. The final way to pay for reserved instances is through the No Upfront Option in which you pay a discounted hourly rate for the duration of the reserved instance.

Spot Instances:

Spot Instances are slightly different as they allow you to bid for unused Amazon EC2 capacity. They’re usually cheaper as instances are charged the spot price, which is set by Amazon EC2. You can request a Spot Instance based on what you want to run and the max price you want to pay per instance hour.

Find out more about Amazon EC2 Pricing here.

Making a decision on new cloud tools and servers can be tricky, especially if you’re an FD who doesn’t work on the technical side and might not know as much about what each instance or server does.

It is worth noting that whilst On-Demand Instances are great for testing environments, businesses can get stung by higher than expected AWS costs. This is actually the result of the servers being left on for the entirety of a project or build. But there are tools out there that can help you to avoid incurring such high AWS costs, one of which is Cloud Machine Manager. Cloud Machine Manager is a tool that allows ease of control over switching your servers on and off to save money on your AWS bills.

You can learn more about how it works here.