AWS EC2 Instance- Which One to use
When you select an instance in AWS for running a workload and/or your application there are few key things that you need to consider before selecting the type of instance. Mainly that comes under one of the below:-
- Is your application going to need a lot of compute power, like a high performance processor?- These would be applications like gaming servers
 
- Will  your workload/application computing need be met with software running on CPUs and would need hardware accelaration?- This would application like data pattern matching or image processing
 
- Does your workload/application require a huge amount of data to be loaded into memory?- Eg: would be application reading from in-memory database rather than reading
 
- Does your application require a lot of read/write I/O operations to be performed?- Eg: your application read the data from storage DB like elastic search DB.
 
Based on the amount of compute, memory, storage needed for your application you have the option to select different family of instances. Within each family of the instance you have multiple instance type for you to select.
There are six major family of instances available in AWS:-
- General Purpose:
If your application is in need of almost equal amount of compute, memory, storage then you should use General Purpose instance family
- Compute Optimized
If your applications are like a gaming server or streaming server then you should prefer Compute Optimized.
- Memory optimized
If your applications are more towards loading a lot of information in RAM for processing ie the applications like big data analytics apps such as Hadoop, then you should prefer a memory optimized instances family.
- Accelerated Computing
Suppose your application’s main task is video rendering or doing remote workstation where there is a need to have high fidelity graphics in real time, then make sure your instances are from Accelerated Computing.
- Storage Optimized
If your application needs a constant and high speed reading and writing into databases, make sure your instance family is from Storage Optimized family.
- High Performance Computing Optimized
Purpose built to offer best price performance, for application that does large complex simulation and deep learning workload.