As per Amazon website, Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.
You can get and configure capacity with the least amount of friction through the simple interface for Amazon EC2’s web service. It lets you use Amazon’s well-recognized environment for computing and lets you control your computing resources completely. As your computing needs change, you can rapidly scale capacity as you can get and boot new server instances in a few minutes through Amazon EC2.
Amazon EC2 protects against common scenarios for failure and provides developers with tools to develop applications that are failure resilient.
What are The Features of Amazon EC2?
Amazon EC2 has various features that help develop enterprise class and scalable apps that are resilient to failure. The features include:
This feature lets you lower latencies, reduce network jitter and get considerably higher packet per second (PPS) performance. As compared to traditional implementations, this feature lowers CPU use and enhances input-output performance through the use of a new network virtualization stack. Install the suitable driver and launch a hardware-assisted virtual machine (HVM) AMI in VPC to benefit from the augmented networking. I2, C3 and R3 support augmented networking at present.
Amazon Elastic Block Store (EBS)
This provides persistent storage for instances of Amazon EC2. Amazon EBS volumes are attached to the network and persist without being dependent on an instance’s life. Amazon EBS volumes can be attached as a standard block device to a running Amazon EC2 instance or used as the boot partition of an Amazon EC2 instance and are highly reliable and available. You can stop and restart Amazon EC2 instances, as required, when you use Amazon EC2 as a boot partition. You have to pay only for the storage resources consumed for maintaining the state of your instance.
In a single availability zone, Amazon EBS volumes are replicated automatically. So, as compared to local Amazon EC2 stores, Amazon EBS volumes provide improved durability. If you need greater durability, you can create point-in-time consistent snapshots of your volumes (stored in Amazon S3), which are replicated automatically for various availability zones, through Amazon EBS. You can save your data for durability in the long term by using the snapshots as starting points for new Amazon EBS volumes. These snapshots can be easily shared with other AWS developers and co-workers.
Provisioned IOPS volumes and standard volumes are the two kinds of volumes provided by Amazon EBS. For apps that have modest I/O needs, standard volumes are most suitable. For apps where I/O occurs in short sudden episodes at intervals, standard volumes are suitable. These are also suitable for use as boot volumes. For apps like databases, where workloads can be I/O intensive, provisioned IOPS volumes provide storage with low-latency and consistent performance.
For more details, please refer to https://aws.amazon.com/ebs/.
You can quickly put software running on AWS to use, after you find and buy it from AWS Marketplace, which is an online store. You have to pay by the month or by the hour when you quickly launch pre-configured software from AWS Marketplace. Payment and billing are handled by AWS and the charges for software show up on your AWS bill.
For more details, please refer to https://aws.amazon.com/marketplace.
You can launch a few chosen Amazon EC2 instance types as EBS-optimized instances in return for a low hourly fee. EBS-optimized instances make it possible for EC2 instances to completely utilize the IOPS provisioned on an EBS volume. Depending on the kind of instance used, throughput anywhere between 500 Megabits per second (Mbps) and 2000 Mbps can be delivered by EBS-optimized instances between Amazon EC2 and Amazon EBS.
Contention between Amazon EBS I/O and other traffic from your EC2 instance is minimized via dedicated throughput and this provides the best performance for your EBS volumes. EBS-optimized can be used with both provisioned and standard IOPS Amazon EBS volumes. Provisioned IOPS volumes can deliver within 10% of the provisioned IOPS performance 99.9% of the time and can achieve single digit millisecond latencies, when attached to EBS-optimized instances.
For more details, please refer to https://aws.amazon.com/ec2/instance-types/.
Starting with Amazon EC2, Amazon CloudWatch monitors Amazon cloud applications and resources and is a web service. Network traffic, disk reads and writes, and CPU utilization are among the metrics that Amazon CloudWatch provides you for visibility into overall demand patterns, operational performance and resource utilization.
You can set alarms, view graphs and get statistics for your metric data. You simply have to choose the Amazon EC2 instances you want to be monitored, to use Amazon CloudWatch. You can also provide your own application or business metric data. Amazon CloudWatch will collect and store monitoring data that can be accessed using command line tools or web service APIs.
For more details, please refer to https://aws.amazon.com/cloudwatch/.
In accordance with the conditions you outline, auto scaling lets you scale your Amazon EC2 capacity up or down. You can minimize costs during spikes or lulls in demand through auto scaling that automatically scales up or scales down the Amazon EC2 instances you are using. For apps that undergo weekly, daily or hourly usage variability, auto scaling is very suitable. Amazon CloudWatch enables auto scaling and you only have to pay the Amazon CloudWatch fees to use auto scaling.
For more details, please refer to https://aws.amazon.com/autoscaling/.
You can place instances in several locations through Amazon EC2. The regions consist of availability zones and regions. Availability zones are insulated from failure in other availability zones and are distinct locations. These provide low cost and low latency network connectivity to availability zones within the same region. In case any of the locations fail, you can protect your apps by launching instances in other availability zones.
The regions are in separate countries or geographic areas and have one or more availability zones. The service-level agreement commits 99.95% availability for every Amazon EC2 region. The regions in which Amazon EC2 is available at present are: AWS GovCloud, South America (Sao Paulo), Asia Pacific (Sydney), Asia Pacific (Tokyo), Asia Pacific (Singapore), EU (Ireland), US West (Northern California), US West (Oregon), and US East (Northern Virginia).
Virtual Machine (VM) Import/Export
Use this feature to import virtual machine images from your present environment to Amazon EC2 instances. You can export them back whenever you wish to. Leverage the investments you’ve made in virtual machines that fulfill your compliance, configuration management and IT security needs by importing virtual machines as EC2 instances ready for use. All you have to pay is standard charges of usage for Amazon S3 and Amazon EC2.
For more details, please refer to https://aws.amazon.com/ec2/vm-import/.
Elastic IP Addresses
Static IP addresses that can be used for dynamic cloud computing are known as Elastic IP addresses. An elastic IP address is not associated with a particular instance but with your account and, until you release it, you control that address. By remapping your public IP addresses programmatically to any instance in your account elastic IP addresses let you mask availability zone failures or instances, as against static IP addresses.
Amazon EC2 lets you work around issues with software or instance by rapidly remapping your elastic IP address to a replacement instance. So, you don’t have to wait for DNS to propagate to all customers or wait for a data technician to replace or reconfigure your host.
High Storage Instances
High storage instances can benefit you if you are looking for high storage density per instance or use high sequential I/O for applications such as Hadoop and data warehousing.
For more details, please refer to https://aws.amazon.com/ec2/instance-types/.
High I/O Instances
These benefit customers who need random, low latency and very high access to their data. High I/O instances are an instance type of Amazon EC2 that offers random I/O rates more than 100,000 IOPS to customers. High I/O instances are suitable for customers running relational databases with high performance and NoSQL. The instances are based on solid state disk (SSD) technology.
For more details, please refer to https://aws.amazon.com/ec2/instance-types/.
You can define a virtual network where you can launch AWS resources. This can be done through a section of the AWS cloud logically isolated with the help of Amazon VPC. You can configure network gateways and route tables, create subnets and choose your own IP address range. That’s because you control your virtual networking environment completely through Amazon VPC.
Create a hardware virtual private network (VPN) connection between your VPC and your corporate datacenter. Use the AWS cloud as an extension of your corporate datacenter in this manner.
For more details, please refer to https://aws.amazon.com/vpc/.
Graphics Processing Unit (GPU) Instances
These benefit customers who need high parallel performance as these give access to NVIDIA GPUs, each of which have 4GB of video memory and up to 1536 compute unified device architecture (CUDA) cores. The GPUs support GRID SDK, OpenGL, OpenCL, CUDA and DirectX. Engineering design, financial modeling and computational chemistry are among the compute workloads for which GPU instances are ideal. The instances are also suitable for game streaming and other 3D graphics apps.
High Performance Computing (HPC) Clusters
You can benefit from the cost advantages, flexibility and elasticity of Amazon EC2 and also achieve the kind of high network and computing performance achieved through custom-built infrastructure even if you have complex computational workloads such as apps sensitive to network performance and tightly coupled parallel processes. Apps can get the low-latency network performance needed for node-to-node, tightly coupled communication by programmatically launching high memory, cluster GPU and cluster compute instances into clusters.
High memory, cluster GPU and cluster compute instances have been designed to provide high performance network capability. Cluster instances are suitable for customer apps which are required to perform network-intensive operations and provide considerably increased throughput.
For more details, please refer to https://aws.amazon.com/hpc/.
Elastic Load Balancing
This automatically allocates incoming application traffic to various Amazon EC2 instances. Responding to incoming app traffic, elastic load balancing provides the load balancing capacity required to help you get greater tolerance for faults in your apps. Elastic load balancing sends traffic to healthy instances until the unhealthy instances have been repaired. For consistent performance of apps, elastic load balancing can be enabled within one or more availability zones.
Request latency and request count are among the operational metrics for which you can use Amazon CloudWatch for capturing the metrics. You don’t have to pay anything more than the fees for elastic load balancing.
For more details, please refer to https://aws.amazon.com/elasticloadbalancing/.
What Benefits Does Amazon EC2 Offer?
Uncomplicated To Begin With
Select preconfigured software on Amazon Machine Images (AMIs) by visiting the Amazon Web Services (AWS) Marketplace and get started without delay with Amazon EC2. Use the EC2 console or through a single click launch to install the software.
Web-Scale Computing With Elasticity
Contingent on its requirements, your app can scale itself up or down by itself, because Amazon EC2 is controlled through web service application programming interfaces (APIs). You can commission any number of server instances at the same time to increase or decrease capacity in a few minutes through Amazon EC2.
The monetary benefits of Amazon’s scale are passed on to customers. You pay only for the computing capacity you use and at a rather low rate.
The three main types of instances are:
Spot Instances – These let customers run instances until their bid is more than the existing spot price and follow customers bidding on unused capacity of Amazon EC2. On the basis of demand and supply, spot prices change from time to time and the customers whose bids equal or are in excess of the spot price are able to access the spot instances available. So, Amazon EC2 costs are lowered considerably if you can be flexible about when your apps can be run.
Reserved Instances – These let you pay once for every instance you want reserved and get a substantial discount on the hourly rate for the instance. You can balance the effective hourly rate with the amount you have to pay upfront on account of reserved instances being classified into light, medium or heavy utilization.
In case your project ends before the expiration of the term of your reserved instance or you want to switch to a different instance type or you want to shift instances to another AWS region, among other ways in which your needs may change, you can sell reserved instances through the reserved instance marketplace.
On-Demand Instances – You don’t have to make any long-term commitments and can pay by the hour for computing capacity through on-demand instances. Large fixed costs can be replaced with smaller variable costs through on-demand instances and you don’t have to bother about planning, purchasing and maintaining hardware. Periodic traffic increases can be handled effectively through on-demand instances and you don’t have to buy extra capacity to act as a safety net.
You can interact with the instances as you would interact with any machine as you have root access for each. So you completely control your instances. You can save data on your boot partition when you stop an instance and restart it later using the web service APIs. Reboot instances remotely through web service APIs. You can also access your instance’s console output.
Your computing resources are secured and the networking functionality made robust by Amazon EC2 working along with Amazon Virtual Private Cloud (Amazon VPC).
- You decide the IP range for the VPC within which your compute instances are placed. You specify the instances that remain private and those exposed to the internet.
- For even more isolation, you can run your instances on dedicated hardware. These are known as dedicated instances and run on resources provisioned through EC2.
- You can use industry-standard encrypted IPsec VPN connections to connect resources in your VPC with your existing IT infrastructure.
- You can control network access to and from your instances through network access control lists (ACLs) and security groups.
To leverage VPN connections, private subnets, network ACLs and outbound security group filtering, among other advanced networking features, you can create a VPC and introduce instances into it, if you don’t have a default VPC.
Flexible Services for Cloud Hosting
There are various software packages, operating system instance types that you can select through Amazon EC2. You can choose a boot partition size suitable for the operating system and app you have, in addition to instance storage, CPU and memory configuration, through Amazon EC2.
Quickly and predictably commission replacement instances through the dependable environment that Amazon EC2 provides. The service leverages Amazon’s datacenters and network infrastructure to provide 99.95% availability in all Amazon EC2 regions (in accordance with the Amazon EC2 service level agreement).
Works In Conjunction with Other AWS Components
For a variety of apps, Amazon EC2 provides storage, query processing and computing solutions by working in conjunction with Amazon Simple Queue Service, Amazon Simple Storage Service, Amazon SimpleDB and Amazon Relational Database Service.
Amazon EC2 helps developers through a web service in the cloud that lets them scale their computing capacity up or down rapidly and in conjunction with rise or fall in demand, something which they wouldn’t be able to do with their own hardware at the same speed or at similar cost.