AWS Compute Services Overview Flashcards
(39 cards)
the definition of compute is
to calculate or to solve a problem
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 ( processing power, memory, and other necessary resources needed for the computational success of the program. )
Cloud computing involves
delivering computer resources across the internet.
the three most commonly used services are
Compute
Container services
Serverless services
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.
Compute resources
measurable quantities of compute power that can be requested, allocated, and consumed for computing activities. Some examples of compute resources include: CPU and Memory
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.
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.
Amazon Elastic Compute Cloud (Amazon EC2)
In AWSVMs 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
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
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.
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 is
a way to describe the services that you can use to build and run applications without thinking about servers.
Using AWS Lambda You can
- run code without provisioning or managing servers.
- pay only for the compute time you consume.
- There is no charge when your code is not running.
- 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. - set up your code to be automatically invoked from other AWS services or call it directly from any web or mobile app
In a serverless environment, abstracting the underlying physical infrastructure means also
focus on the code for your applications without spending time building and maintaining the underlying hardware, network, and operating system.
By building serverless applications, your developers can
- focus on the code that makes your business unique.
- software development companies can innovate and respond faster to change
- evelopment teams can release applications quickly, get feedback, and improve their software.
- avoid the operational overhead or technical knowledge needed to maintain the infrastructure.
AWS Fargate is
a technology that you can use with Amazon ECS to run containers without:
- having to manage servers or clusters of Amazon EC2 instances.
- having to provision, configure, or scale clusters of virtual machines to run containers.
To get the right performance out of your applications,
you need to understand the strengths and limitations of each compute type.
One advantageS of using virtual servers
- is that you can build and deploy an instance in minutes.
- You can spin up an instance, test your application, and then delete the instance when you are done.
- offer you the flexibility to increase or decrease resources as your workload demands change, without affecting your application.
key features of the AWS container services:
The application is packaged so that you control the application and all associated resources, such as policies, security, and deployment.
Containers are portable and can be moved to different OS or hardware platforms, and through different environments such as development, testing/staging, pre-production, and production.
There are no time-out limits when running. This is useful for applications that run longer than 15 minutes or that need to initiate instantly when called.
Containers run without the startup latency of Lambda or Amazon EC2.
Containers have no size limit. They can be as large or as small as you need them to be.
Containers are useful when taking a large traditional application and breaking it down into small parts, or microservices, to make the application more scaleable and resilient.
Containers share an OS installed on the server and run as resource-isolated processes, for quick, reliable, and consistent deployments, regardless of environment.
This encapsulated application approach also caters for rapid deployment, patching, and scaling when needed.
reasons to choose a serverless solution
you and your developers can focus on building and refining your applications without spending time managing and maintaining servers.
You only pay for the time that your application runs.
Lambda is a suitable choice for any short-lived application that can finish running in under 15 minutes.
An event-driven architecture uses events to initiate actions and communication between decoupled services. An event is a change in state, a user request, or an update, such as an item being placed in a shopping cart in an ecommerce website.
Lamdba adjusts your resource consumption up or down to maintain consistent application performance during peak utilization and off-hour timeframes.
Lambda runs your function in multiple Availability Zones to ensure that it is available to process events in case of a service interruption in a single zone.
Lambda also provides additional resilience features such as versioning, reserved resources, retries, ETC