AWS Compute Services
Defining compute : Fundamentally, the definition of compute is to calculate or to solve a problem. In a physical computer the compute portion is the central processing unit (CPU), or the brains of the computer. In cloud computing, the term compute describes concepts and objects related to software computation. Compute is a generic term used to reference all the resources required for a program to successfully run. These resources include the processing power, memory, and other necessary resources needed for the computational success of the program.
Cloud computing
Cloud computing involves delivering computer resources across the internet. You can access much larger amounts of resources, such as memory or computing power, than you could ever build into a single local server or laptop. Unlike buying physical hardware, with cloud resources, you only pay for what you use'. You also have the flexibility, or elasticity, to quickly expand how many or how much resources you use. This elasticity is a primary benefit of using the cloud. You can scale up and scale down your compute power, paying for only what you've used, to meet spikes in application demand.
AWS compute options
For compute in AWS, the three most commonly used services are as follows:
Compute
Container services
Serverless services
Each of these options serves a specific function, provides configurable options, and exists to meet a variety of workloads within the AWS Cloud.
Compute : 1.Compute resources are measurable quantities of compute power that can be requested, allocated, and consumed for computing activities. Some examples of compute resources include CPU: Measured in units called millicores. Application developers can specify how many allocated CPUs are required for running their application and to process data. Memory: Measured in bytes. If applications are running on a single physical device, they have limited access to the compute resources of that device. But if applications run on the cloud, they can simultaneously access more processing resources from many physical devices.
2. Amazon Elastic Compute Cloud (Amazon EC2) Virtual machines (VMs) are the basic building blocks that get computing power from the cloud. A VM is software that can perform all the same functions as a physical computer, including running applications and operating systems (OSS). It is a digital version of a physical computer. In AWS compute services, VMS are called instances. Amazon EC2 provides various instance types that you can configure with different numbers and sizes of CPU, memory, storage, and networking resources. Therefore, users can tailor their compute resources to the needs of their applications.
Containers : Before software is released, it must be tested, packaged, and installed. Containers provide a standard way to package your application's code, configurations, and dependencies into a single object. Containers 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 it's own OS. They are designed to help ensure quick, reliable, and consistent deployments, regardless of the environment.
2. Amazon EKS Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that you can use to run Kubernetes on AWS without without necessarily having to operate your own worker nodes. Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. Amazon EKS is certified Kubernetes- conformant, so existing applications that run on upstream Kubernetes are compatible with Amazon EKS.
3. Amazon ECS Using Amazon Elastic Container Service (Amazon ECS), you can deploy containerized workloads on a managed cluster of Amazon EC2 instances. With Amazon ECS, you don't need to install, operate, and scale your own cluster management infrastructure.
Serverless : Serverless is a way to describe the services that you can use to build and run applications without thinking about servers.
2. AWS Lambda Using AWS Lambda, you can 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 without provisioning or managing servers. 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 be automatically invoked from other AWS services or call it directly from any web or mobile app.
What is serverless computing on the AWS Cloud?
Serverless computing doesn't mean there are no servers. It means that you are running your code on servers that are built, managed, and maintained by someone else. This frees you from having to buy, build, provision, and maintain hardware and infrastructure needed to run your code. Serverless computing always refers to the development of applications. Your development team can use externally managed server infrastructure (AWS Cloud). With serverless applications, there are never instances, OSS, or servers to manage. AWS handles everything required to run and scale your application. By building serverless applications, your developers can focus on the code that makes your business unique. By using serverless computing, software development companies can innovate and respond faster to change. Development teams can release applications quickly, get feedback, and improve their software. They avoid the operational overhead or technical knowledge needed to maintain the infrastructure.
Serverless: Lambda With Lambda, you don't have to provision or manage any server instances. You build your code, and Lamdba automatically allocates compute resources to run it. Lambda handles everything required to run your code based on the incoming request or event and will scale automatically as needed. You can set up your code to be automatically invoked from other AWS services or call it directly from any web or mobile app.