Three main compute options are instances, containers and serverless
The fundamental definition of compute is to solve a problem. In cloud computing compute describes concepts and objects elated to software computation. Compute is a generic term used to reference all the resources required for a program to successfully run. E.g. processing power, memory, other necessary resources needed for the computational success of the program.
VM’s are software that can perform all the same functions as a phyiscal computer. In AWS compute services, VM’s are called instances. You can configure different numbers, sizes of CPU, memory, storage and networking resources.
Containers provide a standard way to package application’s code, configurations and dependencies into a single object. Run on top of the host OS and share the host’s kernel. Each container running on a host runs its own isolated root file system in a separate namespace that may include its own OS.
Amazon Elastic Kubernetes Services is a managed service you can use to run Kubernetes on AWS without having to operate your own worker nodes. Kubernetes is an open source system for automating deployment scaling and management of containerised applications.
Amazon Elastic Container Services lets you deploy containerised workload on a managed cluster of EC2 instances. With ECS, don’t need to install, operate and scale your own cluster management infrastructure.
Using AWS Lambda, can rune code without provisioning or managing servers. Pay only for the compute time you consume. No payment when code is not running
In a serverless environment, you can focus on the code for your application without spending time building and maintaining the underling hardware, network and operating system. Serverless computing means you are running your code on servers that are built, managed and maintained by someone else.