# AWS Compute

## Compute Services <a href="#compute-services" id="compute-services"></a>

* [Amazon EC2](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#amazon-ec2)
* [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#auto-scaling)
* [Amazon Elastic Container Registry](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#amazon-elastic-container-registry)
* [Amazon Elastic Container Service](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#amazon-elastic-container-service)
* [Amazon Elastic Kubernetes Service](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#amazon-eks)
* [Amazon Lightsail](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#amazon-lightsail)
* [AWS Elastic Beanstalk](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#aws-elastic-beanstalk)
* [AWS Lambda](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#aws-lambda)
* [AWS Serverless Application Repository](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#aws-serverlessrepo)
* [VMware Cloud on AWS](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/compute-services.html#vmware)

### Amazon EC2 <a href="#amazon-ec2" id="amazon-ec2"></a>

[Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.

The Amazon EC2 simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances (called Amazon EC2 instances) to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. Amazon EC2 provides developers and system administrators the tools to build failure resilient applications and isolate themselves from common failure scenarios.

#### Instance Types <a href="#instance-types" id="instance-types"></a>

Amazon EC2 passes on to you the financial benefits of Amazon’s scale. You pay a very low rate for the compute capacity you actually consume. See Amazon [EC2](https://aws.amazon.com/ec2/purchasing-options/) [Instance Purchasing Options](https://aws.amazon.com/ec2/purchasing-options/) for a more detailed description.

* **On-Demand Instances**—With On-Demand instances, you pay for compute capacity by the hour with no long-term commitments. You can increase or decrease your compute capacity depending on the demands of your application and only pay the specified hourly rate for the instances you use. The use of On-Demand instances frees you from the costs and complexities of planning, purchasing, and maintaining hardware and transforms what are commonly large fixed costs into much smaller variable costs. On-Demand instances also remove the need to buy “safety net” capacity to handle periodic traffic spikes.
* **Reserved Instances**—[Reserved Instances](https://aws.amazon.com/ec2/purchasing-options/reserved-instances/) provide you with a significant discount (up to 75%) compared to On-Demand instance pricing. You have the flexibility to change families, operating system types, and tenancies while benefitting from Reserved Instance pricing when you use Convertible Reserved Instances.
* **Spot Instances**—[Spot Instances](https://aws.amazon.com/ec2/purchasing-options/spot-instances/) allow you to bid on spare Amazon EC2 computing capacity. Since Spot instances are often available at a discount compared to On-Demand pricing, you can significantly reduce the cost of running your applications, grow your application’s compute capacity and throughput for the same budget, and enable new types of cloud computing applications.

### Amazon EC2 Auto Scaling <a href="#auto-scaling" id="auto-scaling"></a>

[Amazon EC2 Auto Scaling](https://aws.amazon.com/autoscaling/) helps you maintain application availability and allows you to automatically add or remove EC2 instances according to conditions you define. You can use the fleet management features of EC2 Auto Scaling to maintain the health and availability of your fleet. You can also use the dynamic and predictive scaling features of EC2 Auto Scaling to add or remove EC2 instances. Dynamic scaling responds to changing demand and predictive scaling automatically schedules the right number of EC2 instances based on predicted demand. Dynamic scaling and predictive scaling can be used together to scale faster.

### Amazon Elastic Container Registry <a href="#amazon-elastic-container-registry" id="amazon-elastic-container-registry"></a>

[Amazon Elastic Container Registry (ECR)](https://aws.amazon.com/ecr/) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. Amazon ECR is integrated with [Amazon Elastic Container Service (Amazon ECS)](https://aws.amazon.com/ecs/), simplifying your development to production workﬂow. Amazon ECR eliminates the need to operate your own container repositories or worry about scaling the underlying infrastructure. Amazon ECR hosts your images in a highly available and scalable architecture, allowing you to reliably deploy containers for your applications. Integration with [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/security-services.html#aws-identity-and-access-management) provides resource-level control of each repository. With Amazon ECR, there are no upfront fees or commitments. You pay only for the amount of data you store in your repositories and data transferred to the Internet.

### Amazon Elastic Container Service <a href="#amazon-elastic-container-service" id="amazon-elastic-container-service"></a>

[Amazon Elastic Container Service (Amazon ECS)](https://aws.amazon.com/ecs/) is a highly scalable, high-performance container orchestration service that supports Docker containers and allows you to easily run and scale containerized applications on AWS. Amazon ECS eliminates the need for you to install and operate your own container orchestration software, manage and scale a cluster of virtual machines, or schedule containers on those virtual machines.

With simple API calls, you can launch and stop Docker-enabled applications, query the complete state of your application, and access many familiar features such as IAM roles, security groups, load balancers, Amazon CloudWatch Events, AWS CloudFormation templates, and AWS CloudTrail logs.

### Amazon Elastic Kubernetes Service <a href="#amazon-eks" id="amazon-eks"></a>

[Amazon Elastic Kubernetes Service (Amazon EKS)](https://aws.amazon.com/eks/) makes it easy to deploy, manage, and scale containerized applications using Kubernetes on AWS.

Amazon EKS runs the Kubernetes management infrastructure for you across multiple AWS availability zones to eliminate a single point of failure. Amazon EKS is certified Kubernetes conformant so you can use existing tooling and plugins from partners and the Kubernetes community. Applications running on any standard Kubernetes environment are fully compatible and can be easily migrated to Amazon EKS.

### AWS Batch <a href="#aws-batch" id="aws-batch"></a>

[AWS Batch](https://aws.amazon.com/batch) enables developers, scientists, and engineers to easily and efficiently run hundreds of thousands of batch computing jobs on AWS. AWS Batch dynamically provisions the optimal quantity and type of compute resources (e.g., CPU or memory-optimized instances) based on the volume and specific resource requirements of the batch jobs submitted. With AWS Batch, there is no need to install and manage batch computing software or server clusters that you use to run your jobs, allowing you to focus on analyzing results and solving problems. AWS Batch plans, schedules, and executes your batch computing workloads across the full range of AWS compute services and features, such as Amazon EC2 and Spot Instances.

### AWS Elastic Beanstalk <a href="#aws-elastic-beanstalk" id="aws-elastic-beanstalk"></a>

[AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/) is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and Internet Information Services (IIS).

You can simply upload your code, and AWS Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, and auto scaling to application health monitoring. At the same time, you retain full control over the AWS resources powering your application and can access the underlying resources at any time.

### AWS Lambda <a href="#aws-lambda" id="aws-lambda"></a>

[AWS Lambda](https://aws.amazon.com/lambda/) lets you run code without provisioning or managing servers. You pay only for the compute time you consume—there is no charge when your code is not running. With Lambda, you can run code for virtually any type of application or backend service—all with zero administration. Just upload your code, and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services, or you can call it directly from any web or mobile app.

\
