AWS Compute Flashcards
Traditional Server
physical box with physical hardware (CPU, RAM, Disk, NIC)
CPU = processor RAM = memory Disk = where you store data NIC = transferring data
operating system - Windows or Linux (Linux is most popular for Cloud)
To upgrade a server, you either upgrade the entire thing, or you upgrade certain physical parts. Either way, you are purchasing physical parts
Amazon Elastic Compute Cloud (Amazon EC2)
Web service that’s a part of AWS Compute suite of products that provide secure, resizable compute capacity in the cloud
Elastic Web-Scale computing - you can increase or decrease capacity within minutes and commission one to thousands of instances simultaneously
Completely Controlled - you have complete control include root access to each instance and can stop & start instances without losing data and using web service API’s
Flexible Cloud Hosting Services - you can choose from multiple instance types, operating systems, and software packages as well as instances with varying memory, CPU and storage configurations
Amazon Machine Images (AMI)
provides the information required to launch an instance.
You must specify an AMI when you launch an instance. You can launch multiple instances from a single AMI when you need multiple instances with the same configuration.
You can use different AMIs to launch instances when you need instances with different configurations.
Includes:
- 1+ EBS snapshots or for instance-store-backed AMI’s
- a template for the root volume of the instance
ie - an operating system, application server, and application
- launch permissions that control which AWS accounts can use the AMI to launch instances
- a block device mapping that specifies the volumes to attach to the instance when it’s launched
3 main categories:
- Community AMI’s - free to use, generally you select the operating system you want
- AWS Marketplace AMI’s - pay to use, generally come packaged with additional, licensed software
- My AMI’s - AMI’s that you create yourself; you can download EC2 instances from an AMI, and modify it to release their own EC2 instances
Amazon EC2 Instance Type:
General Purpose
Amazon EC2 instance type that provides a balance of compute, memory and networking resources, and can be used for a variety of diverse workloads.
These instances are ideal for applications that use these resources in equal proportions such as web servers and code repositories.
Families - A1, T3, T3a, T2, M5, M5a, M4
Amazon EC2 Instance Type:
Compute Optimized
Amazon EC2 instance that is ideal for compute bound applications that benefit from high performance processors
Instances belonging to this family are well suited for batch processing workloads, media transcoding, high performance web servers, high performance computing (HPC), scientific modeling, dedicated gaming servers and ad server engines, machine learning inference and other compute intensive applications.
C5, C5a, C4
Amazon EC2 Instance Type:
Memory Optimized
Amazon EC2 instance type that is designed to deliver fast performance for workloads that process large data sets in memory
R5, R5a, R4, X1e, X1, High Memory, z1d
Amazon EC2 Instance Type:
Accelerated Optimized
Amazon EC2 instance type that uses hardware accelerators, or co-processors, to perform functions, such as floating-point number calculations, graphics processing, or data pattern matching, more efficiently than is possible in software running on CPUs
P3, P2, G4, G3, F1
Amazon EC2 Instance Type:
Storage Optimized
Amazon EC2 instance type that provides non-volatile memory express (NVMe) SSD-backed instance storage optimized for low latency, very high random I/O performance, high sequential read throughput and provide high IOPS at a low cost
designed for workloads that require high, sequential read and write access to very large data sets on local storage. They are optimized to deliver tens of thousands of low-latency, random I/O operations per second (IOPS) to applications.
I3, I3en, D2, H1
Instance User Data
data that is supplied by the user at instance launch in the form of a script
series of commands that is entered when instance is launched
limited to 16 KB
metadata, and not encrypted
Instance Metadata
instance metadata is data about your instance that you can use to configure / manage the running instance
Instance Metadata Query tool allows you to query the instance metadata without having to type out the full URI or category names
Amazon Elastic Container Service (ECS)
regional service
highly scalable, high performance container management service that supports Docker containers
Docker containers - similar to a virtual instance, but less to manage; operating system is not part of the system
with containers the code, runtime, system tools, system libraries and setting are packaged up
Containers run quickly and reliably from one computer environment to another
Amazon ECS eliminates the need for you to install, operate, and scale your own cluster management infrastructure
Launch type determinants the type of infrastructure on which your tasks and services are hosted
Docker containers
similar to a virtual instance, but less to manage; operating system is not part of the system
with containers the code, runtime, system tools, system libraries and setting are packaged up
Containers run quickly and reliably from one computer environment to another
AWS Lambda
Newer compute service
serverless computing technology that allows you to run code without provisioning or managing services; all you worry about is code
AWS Lambda execute code only when needed and scales automatically
You only pay for the compute time you consume (you pay nothing when your code isn’t running)
no instance types to choose from
Benefits: no servers to manage; continuous scaling; subsecond metering; integrates with almost all other AWS services
Use Cases: data processing; real-time file processing; real time stream processing; build serverless backends for web, mobile, IOT, and 3rd party API requests
Amazon LightSail
provides developers compute, storage, and networking capacity and capabilities to deploy and manage websites, web applications, and databases in the cloud
includes everything you need to launch your project quickly - a virtual machine, SSD-based storage, data transfer, DNS management, and a static IP
provides preconfigured virtual private services (instances) that include everything required to deploy an application or create a database
cheaper than instances on EC2
Choosing a Compute Service:
Infrastructure as a Service (IaaS)
EC2
provider manages least amount; you must manage everything else (operating system and anything on top of it)
you manage operating system
used for traditional applications and long running tasks (months or years)
pay for instance run time based on family/type
Scaling:
- scale vertically - more CPU/Mem/HDD
- scale horizontally (automatically) with Auto Scaling