Amazon EC2 provides secure, resizable compute capacity in the cloud as Amazon EC2 instances. With EC2, a virtual server can be used to run applications in AWS cloud :
- EC2 instance can be provisioned and launched within minutes
- It can be stopped using after running the workload is finished
- Customer pays only for compute time when EC2 instance is running, not when it is stopped or terminated
- Costs can be saved by paying only for server capacity needed or wanted
The workflow of Amazon EC2 instance follows the Launch – Connect – Use cycle. Let’s cover it in more detail.
- Launch an instance by selecting a template with basic configuration for an instance. These configurations include the operating system, application server, or applications. Also select an instance type which is a specific hardware configuration for an instance. When preparing to launch an instance, the customer specifies security settings to control the network traffic that can flow in and out of the instance.
- Connect to previously launched instance. It can be done in a several ways. Programs and applications have multiple different methods to connect directly to the instance and exchange data. Customer can also connect to the instance by logging in and accessing the computer desktop.
- Use Amazon EC2 instance after the connection is established. Run commands to install software, add storage, copy files etc.
Amazon EC2 Instance Types
Amazon EC2 instance types are optimized for different tasks. When selecting an instance type, consider the specific needs of workloads and applications. This might include the requirements for compute, memory and storage capabilities. Amazon EC2 instance types are :
General purpose instances provide a balance of compute, memory and networking resources. Can be used for a variety of workloads such as :
- applications servers
- gaming servers
- backend servers for enterprise applications
- small and medium databases
Compute optimized instances are ideal for compute-bound applications that benefit from high-performance processors. Compared to general purpose instances, compute optimized instances are ideal for high-performance web servers, compute-intensive application servers, and dedicated gaming servers. Also compute optimized instances can be used for batch processing workloads that require processing many transactions in a single group.
Memory optimized instances are designed to deliver fast performance for workloads that process large datasets in memory. In computing, memory is a temporary storage area. It holds all the data and instructions that CPU needs to be able to complete actions. Before a computer program or application is able to run, it is loaded from storage into memory. This preloading process gives the CPU direct access to the computer program. Suppose that workload requires large amounts of data to be preloaded before running an application. This scenario might be a high-performance database or a workload that performs real-time processing of a large amount of unstructured data. For these cases, consider using memory optimized instance.
Accelerated computing instances use hardware accelerators, or coprocessors, to perform some functions more efficiently than is possible in software running on CPUs. Examples of these functions include floating-point number calculations, graphics processing and data pattern matching. In computing, a hardware accelerator is a component that can expedite data processing. Accelerated computing instances are ideal for workloads such as graphics applications, game streaming and application streaming.
Storage optimized instances are designed for workloads that require high, sequential read and write access to large datasets on local storage. Examples of workloads suitable for storage optimized instances include distributed file systems, data warehousing applications and high-frequency online transaction processing (OLTP) systems. In computing, the term input/output operations per second (IOPS) is a metric that measures the performance of storage device. Storage optimized instances are designed to deliver tens of thousands of low-latency, random IOPS to applications. Input operations can be thought of as a data put into a system, such as records entered into a database, whereas output operation is data generated by a server, for example, the analytics performed on the records in the database.