Please enable JavaScript.
Coggle requires JavaScript to display documents.
Amazon Elastic Compute Cloud (Amazon EC2) :cloud: - Coggle Diagram
Amazon Elastic Compute Cloud (Amazon EC2)
:cloud:
Benefits
:check:
Amazon EC2 instance within minutes
Provision
Launch
Stop using it after finished running a workload
Pay only for compute time you use
When an instance is running
Not when it is stopped or terminated
Save costs by paying only
For server capacity that you need
For server capacity you want
How Amazon EC2 Works
Launch
:rocket:
Specify security settings
An instance
Select template with basic configurations
Application server or apps
Instance type
Operating system
Control network traffic
Flowing in and out of the instance
Amazon (EC2) security features
Connect
:link:
Programs and Applications
Multiple different methods
Connect directly to instance
Exchange data
Logging in
Accesing computer destop
Use
:recycle:
After connect the instance
Run commands to install software
Add storage
Copy and organize files
Amazon EC2 Instance Types
:spiral_note_pad:
Optimized for different tasks
Specific needs
Workloads and apps
Requirements for
Compute
Memory
Storage capabilities
General purpose instances
Provide balance of
Compute
Memory
Networking resources
Use for a variety of workloads
Application servers
Gaming servers
Back end servers
Enterprise apps
Small, medium data bases
App does not require optimization in any single resource area
Compute optimized instances
Ideal for compute-bound apps
High-performance processors
Compute optimized instances
Workloads
Web
App
Gaming
Batch processing workloads
Processing many transactions in a single group
Servers
High performance web
Compute-intensive applications
Dedicated gaming
Memory optimized instances
Designed to deliver fast performance
Workloads
Process large datasets in memory
Performing real-time processing of a large amount of unstructured data
In computing
Memory is a temporary storage area
Storage optimized instances
Designed for workloads that require high
Sequential read
Write access to large datasets on local storage
Suitable workloads
Distributed file systems
Data warehousing applications
High-frequency online transaction processing
Input/output Operations Per Second (IOPS) Systems
Metric that measures the performance of a storage device
Designed to deliver
Tens of thousands of low-latency, random IOPS to applications
Accelerated computing instances
Use hardware accelerators, or coprocessors
Perform some functions more efficiently
Floating-point number calculations
Graphics processing
Data pattern matching
Ideal for workloads
Graphics applications
Game streaming
App streaming
Amazon EC2 pricing
Pay only for the compute time that you use
On Demand Instances
Ideal for
Short-term
Irregular workloads that cannot be interrupted
No upfront costs
No minimum contracts apply
Instances run continuously until you stop them
Sample use cases
Developing and testing apps
Running apps
That have unpredictable usage patterns
Recommended for
Workloads that last a year or longer
Amazon EC2 Savings Plans
For several compute services
Reduce your compute costs by
Committing to
Consistent amount of compute usage
For a 1-year or 3-year term
Usage beyond the commitment
Charged at regular On-Demand rates
Reserved Instances
Billing discount applied to
Use of On-Demand Instances in your account
Purchase
For a 1-year term
Scheduled Reserved Instances
For a 1-year or 3-year term
Standard Reserved Instances
Convertible Reserved Instances
At the end of a Reserved Instance term
Continue using the Amazon EC2
Charged On-Demand rates
Until you do one of the following
2 more items...
Spot Instances
Ideal for
Workloads
With flexible start and end times
That can withstand interruptions
Use unused Amazon EC2 computing capacity
Offer you cost savings at up to 90% off
Of On-Demand prices
Dedicated Hosts
Physical servers with Amazon EC2 instance capacity
Fully dedicated to your use
Use your existing software licenses
Per-socket
Per-core
Per-VM
Purchase
On-Demand Dedicated Hosts
Dedicated Hosts Reservations
Amazon EC2 most expensive option
Scaling Amazon EC2
Amazon EC2 Auto Scaling
AWS service
that provides
scalability functionality
Automatically add or remove
Amazon EC2 instances
In response to
changing application demand
Automatically scaling
your i
nstances in and out
as needed
Greater sense of
application availability
Dynamic scaling
Responds to changing demand
Predictive scaling
Automatically schedules
the
right number of Amazon EC2 instances
Based on
predicted demand
To scale faster
Use
dynamic scaling
and
predictive scaling together
Scale up
Add new instances to the application when necessary
Scale out
Terminate instances when no longer needed
Create an
Auto Scaling group
Set the
minimum number of Amazon EC2 instances
Minimum Capacity Configuration
Is the number of
Amazon EC2 instances that launch immediately
After the
Auto Scaling group
has been created
Desired Capacity Configuration
Set at
two Amazon EC2 instances
Even though
app needs a minimum of a single Amazon EC2 instance to run
Maximum Capacity Configuration
Set
Auto Scaling group to scale out
in response to increased demand
Only to a
maximum of four Amazon EC2 instances
Pay for only the instances you use, when you use them
Scalability
Involves
Beginning with only the resources you need
Designing your architecture to automatically respond
To
changing demand
by
scaling out or in
You pay for only the resources you use
Don’t have to worry about a lack of computing capacity to meet customers’ needs
Directing traffic with Elastic Load Balancing
Elastic Load Balancing (ELB)
AWS service
that automatically distributes incoming application traffic
Across multiple resources (
Amazon EC2 instances
)*
Single point of contact for all incoming web traffic
To your
Auto Scaling group
Add or remove
Amazon EC2
instances
In
response
to the amount of
incoming traffic
Requests route to the
load balancer
first
Then,
requests spread across multiple resources
Amazon EC2 instances*
will handle them
Low-demand Period
Few
Amazon EC2 instances
are open
This matches the demand of requests that need service
High-demand Period
More
Amazon EC2 instances
are open to accommodate requests
Load Balancer
directs requests
1 more item...
Messaging and Queuing
Monolithic applications
An app with tightly coupled components
Components might include, but are not limited
Servers
User Interface
Business Logic
Databases
If a single component fails
Other components fail
Possibly the entire app fails
Microservices
App components are loosely coupled
Designing applications on AWS
Take a microservices approach
Services and components fulfill different functions
Services facilitate application integration
Amazon Simple Notification Service (Amazon SNS)
Publish/subscribe service
1 more item...
Amazon Simple Queue Service (Amazon SQS)
Message queuing service
1 more item...
An app
sends messages
into a queue
1 more item...
If a single component fails
The other components continue to work
They are communicating with each other
Loose coupling prevents the entire app from failing
Additional compute services
Serverless computing
Amazon EC2
Run
virtual servers
in the cloud
You must
do the following
1 -
Provision instances (virtual servers)
2 -
Upload their code
3 -
Continue to manage the instances while your application is running
Your code runs on servers
You do not need to provision or manage
these servers
Flexibility to scale serverless apps
automatically
Adjust the applications' capacity
by modifying the units of consumptions
Throughput and memory
AWS Lambda
Run code
without needing to provision or manage servers
Pay only for the compute time that you consume
Charges apply only when your code is running
You can also run code for
Virtually
any type of application
Backend service
Zero administration
How AWS Lambda works
1 -
You upload your code to Lambda
2 -
You set your
code to trigger from an event source
Such as
AWS services
Mobile applications
HTTP endpoints
3 - Lambda
runs your code only when triggered
4 -
You pay only for the compute time that you use
You would pay only for the time the
Lambda
function is triggered to run your code
Containers
Standard way to package your code into a single object
Applications and dependencies
Use for
Processes and workflows
Essential requirements for
Security
Reliability
Scalability
Amazon Elastic Container Service (Amazon ECS)
Container management system
Enables you to
run and scale containerized applications on AWS
High-performance
Highly scalable
Supports
Docker
containers
Docker
is a software platform
Enables you to
Build
Test
Deploy apps quickly
Supports the use of
Open-source Docker Community Edition
Subscription-based Docker Enterprise Edition
With
Amazon ECS
Use
API calls
to launch and stop
Docker-enabled applications
Amazon Elastic Kubernetes Service (Amazon EKS)
Fully managed service use to run
Kubernetes
on
AWS
Kubernetes
is open-source software
Enables you to
Deploy
Manage containerized apps at scale
Apply updates to your
Kubernetes
apps managed by
Amazon EKS
Features
Functionalities
AWS Fargate
Serverless compute engine for containers
Works with
Amazon ECS
Amazon EKS
When using
You do not need to
Provision
Manage servers
Manages your server infrastructure
for you
Pay only for the resources that are required to run your containers