AWS Notes
AWS Notes
AWS Notes
MODULE 1
What is CLOUD Computing?
The on-demand delivery of IT resources over the internet with pay-as-you-go
pricing.
On-demand delivery indicates that AWS has the resources you need
when we need them without any prior notice and when not needed we
can stop paying for them (like virtual servers, storage, etc)
IT resources the huge range of AWS products ease handling the business
and we can focus on making our business unique.
Over the internet implies that we can access those resources on a secure
web page.
pay-as-you-go pricing means paying for the duration the resources are
used.
For example, suppose that a client makes a request for a news article, the
score in an online game, or a funny video. The server evaluates the details of
this request and fulfills it by returning the information to the client.
1)Cloud-based Deployment
2)On-premises Deployment
Deploy resources by using virtualization and resource management tools.
Increase resource utilization by using application management and
virtualization technologies.
3)Hybrid Deployment
For example, suppose that a company wants to use cloud services that can
automate batch data processing and analytics. However, the company has
several legacy applications that are more suitable on premises and will not be
migrated to the cloud. With a hybrid deployment, the company would be able
to keep the legacy applications on premises while benefiting from the data and
analytics services that run in the cloud.
Benefits of Cloud Computing
Consider why a company might choose to take a particular cloud computing
approach when addressing business needs.
1. Trade upfront expense for variable expense - Upfront expense refers to data
centers, physical servers, and other resources that you would need to invest in
before using them. Variable expense means you only pay for computing
resources you consume instead of investing heavily in data centers and
servers before you know how you’re going to use them. By taking a cloud
computing approach that offers the benefit of variable expense, companies
can implement innovative solutions while saving on costs.
2. Stop spending money to run and maintain data centers - Computing in data
centers often requires you to spend more money and time managing
infrastructure and servers. A benefit of cloud computing is the ability to focus
less on these tasks and more on your applications and customers.
3. Stop guessing capacity - With cloud computing, you don’t have to predict how
much infrastructure capacity you will need before deploying an
application. For example, you can launch Amazon EC2 instances when needed,
and pay only for the compute time you use. Instead of paying for unused
resources or having to deal with limited capacity, you can access only the
capacity that you need. You can also scale in or scale out in response to
demand.
4. Benefit from massive economies of scale - By using cloud computing, you can
achieve a lower variable cost than you can get on your own. Because usage
from hundreds of thousands of customers can aggregate in the cloud,
providers, such as AWS, can achieve higher economies of scale. The economy
of scale translates into lower pay-as-you-go prices.
5. Increase speed and agility - The flexibility of cloud computing makes it easier
for you to develop and deploy applications. This flexibility provides you with
more time to experiment and innovate. When computing in data centers, it
may take weeks to obtain new resources that you need. By comparison, cloud
computing enables you to access new resources within minutes.
6. Go global in minutes -The global footprint of the AWS Cloud enables you to
deploy applications to customers around the world quickly, while providing
them with low latency. This means that even if you are located in a different
part of the world than your customers, customers are able to access your .
MODULE 2
Amazon Elastic Compute Cloud (Amazon EC2)
Amazon Elastic Compute Cloud (Amazon EC2) provides secure, resizable
compute capacity in the cloud as Amazon EC2 instances.
Imagine you are responsible for the architecture of your company's resources
and need to support new websites. With traditional on-premises resources,
you have to do the following:
Spend money upfront to purchase hardware.
Wait for the servers to be delivered to you.
Install the servers in your physical data center.
Make all the necessary configurations.
By comparison, with an Amazon EC2 instance, you can use a virtual server to
run applications in the AWS Cloud.
You can provision and launch an Amazon EC2 instance within minutes.
You can stop using it when you have finished running a workload.
You pay only for the compute time you use when an instance is running,
not when it is stopped or terminated.
You can save costs by paying only for the server capacity that you need
or want.
How Amazon EC2 works
Launch - First, you launch an instance. Begin by selecting a template with basic
configurations for your instance. These configurations include the operating
system, application server, or applications. You also select the instance type,
which is the specific hardware configuration of your instance.
As you are preparing to launch an instance, you specify security settings to
control the network traffic that can flow into and out of your instance. Later in
this course, we will explore Amazon EC2 security features in greater detail.
Connect - Next, connect to the instance. You can connect to the instance in
several ways. Your programs and applications have multiple different methods
to connect directly to the instance and exchange data. Users can also connect
to the instance by logging in and accessing the computer desktop.
Use - After you have connected to the instance, you can begin using it. You can
run commands to install software, add storage, copy and organize files, and
more.
Suppose that you have a workload that requires large amounts of data to be
preloaded before running an application. This scenario might be a high-
performance database or a workload that involves performing real-time
processing of a large amount of unstructured data. In these types of use cases,
consider using a memory optimized instance. Memory optimized instances
enable you to run workloads with high memory needs and receive great
performance.
5 - Storage optimized instances - are designed for workloads that require high,
sequential read and write access to large datasets on local storage. Examples
of workloads suitable for storage optimized instances include distributed file
systems, data warehousing applications, and high-frequency online transaction
processing (OLTP) systems.
You can think of input operations as data put into a system, such as records
entered into a database. An output operation is data generated by a server. An
example of output might be the analytics performed on the records in a
database. If you have an application that has a high IOPS requirement, a
storage optimized instance can provide better performance over other
instance types not optimized for this kind of use case.
AWS offers Savings Plans for several compute services, including Amazon
EC2. Amazon EC2 Savings Plans enable you to reduce your compute costs by
committing to a consistent amount of compute usage for a 1-year or 3-year
term. This term commitment results in savings of up to 72% over On-Demand
costs.
Later in this course, you will review AWS Cost Explorer, a tool that enables you
to visualize, understand, and manage your AWS costs and usage over time. If
you are considering your options for Savings Plans, AWS Cost Explorer can
analyze your Amazon EC2 usage over the past 7, 30, or 60 days. AWS Cost
Explorer also provides customized recommendations for Savings Plans. These
recommendations estimate how much you could save on your monthly
Amazon EC2 costs, based on previous Amazon EC2 usage and the hourly
commitment amount in a 1-year or 3-year Savings Plan.
Reserved Instances are a billing discount applied to the use of On-Demand
Instances in your account. You can purchase Standard Reserved and
Convertible Reserved Instances for a 1-year or 3-year term, and Scheduled
Reserved Instances for a 1-year term. You realize greater cost savings with the
3-year option.
At the end of a Reserved Instance term, you can continue using the Amazon
EC2 instance without interruption. However, you are charged On-Demand
rates until you do one of the following:
Spot Instances are ideal for workloads with flexible start and end times, or that
can withstand interruptions. Spot Instances use unused Amazon EC2
computing capacity and offer you cost savings at up to 90% off of On-Demand
prices.
Suppose that you have a background processing job that can start and stop as
needed (such as the data processing job for a customer survey). You want to
start and stop the processing job without affecting the overall operations of
your business. If you make a Spot request and Amazon EC2 capacity is
available, your Spot Instance launches. However, if you make a Spot request
and Amazon EC2 capacity is unavailable, the request is not successful until
capacity becomes available. The unavailable capacity might delay the launch of
your background processing job.
Dedicated Hosts are physical servers with Amazon EC2 instance capacity that is
fully dedicated to your use. You can use your existing per-socket, per-core, or
per-VM software licenses to help maintain license compliance. You can
purchase On-Demand Dedicated Hosts and Dedicated Hosts Reservations. Of
all the Amazon EC2 options that were covered, Dedicated Hosts are the most
expensive.
If you wanted the scaling process to happen automatically, which AWS service
would you use? The AWS service that provides this functionality for Amazon
EC2 instances is Amazon EC2 Auto Scaling.
Amazon EC2 Auto Scaling enables you to automatically add or remove Amazon
EC2 instances in response to changing application demand. By automatically
scaling your instances in and out as needed, you are able to maintain a greater
sense of application availability.
Within Amazon EC2 Auto Scaling, you can use two approaches: dynamic scaling
and predictive scaling.
Dynamic scaling responds to changing demand.
Predictive scaling automatically schedules the right number of Amazon
EC2 instances based on predicted demand.
Scaling Amazon EC2 (Part 2)
In the cloud, computing power is a programmatic resource, so you can take a
more flexible approach to the issue of scaling. By adding Amazon EC2 Auto
Scaling to an application, you can add new instances to the application when
necessary and terminate them when no longer needed.
Suppose that you are preparing to launch an application on Amazon EC2
instances. When configuring the size of your Auto Scaling group, you might set
the minimum number of Amazon EC2 instances at one. This means that at all
times, there must be at least one Amazon EC2 instance running.
When you create an Auto Scaling group, you can set the minimum number of
Amazon EC2 instances. The minimum capacity is the number of Amazon EC2
instances that launch immediately after you have created the Auto Scaling
group. In this example, the Auto Scaling group has a minimum capacity of one
Amazon EC2 instance.
Next, you can set the desired capacity at two Amazon EC2 instances even
though your application needs a minimum of a single Amazon EC2 instance to
run.
Note: If you do not specify the desired number of Amazon EC2 instances in an
Auto Scaling group, the desired capacity defaults to your minimum capacity.
The third configuration that you can set in an Auto Scaling group is
the maximum capacity. For example, you might configure the Auto Scaling
group to scale out in response to increased demand, but only to a maximum of
four Amazon EC2 instances.
Because Amazon EC2 Auto Scaling uses Amazon EC2 instances, you pay for
only the instances you use, when you use them. You now have a cost-effective
architecture that provides the best customer experience while reducing
expenses.
Low-demand period
Here’s an example of how Elastic Load Balancing works. Suppose that a few
customers have come to the coffee shop and are ready to place their orders.
If only a few registers are open, this matches the demand of customers who
need service. The coffee shop is less likely to have open registers with no
customers. In this example, you can think of the registers as Amazon EC2
instances.
High-demand period
Throughout the day, as the number of customers increases, the coffee shop
opens more registers to accommodate them. In the diagram, the Auto Scaling
group represents this.
Additionally, a coffee shop employee directs customers to the most
appropriate register so that the number of requests can evenly distribute
across the open registers. You can think of this coffee shop employee as a load
balancer.
Microservices
To help maintain application availability when a single component fails, you
can design your application through a microservices approach.
In a microservices approach, application components are loosely coupled. In
this case, if a single component fails, the other components continue to work
because they are communicating with each other. The loose coupling prevents
the entire application from failing.
When designing applications on AWS, you can take a microservices approach
with services and components that fulfill different functions. Two services
facilitate application integration: Amazon Simple Notification Service (Amazon
SNS) and Amazon Simple Queue Service (Amazon SQS).
Suppose that the coffee shop has a single newsletter that includes updates
from all areas of its business. It includes topics such as coupons, coffee trivia,
and new products. All of these topics are grouped because this is a single
newsletter. All customers who subscribe to the newsletter receive updates
about coupons, coffee trivia, and new products.
After a while, some customers express that they would prefer to receive
separate newsletters for only the specific topics that interest them. The coffee
shop owners decide to try this approach.
Publishing updates from multiple topics
Now, instead of having a single newsletter for all topics, the coffee shop has
broken it up into three separate newsletters. Each newsletter is devoted to a
specific topic: coupons, coffee trivia, and new products.
Subscribers will now receive updates immediately for only the specific topics to
which they have subscribed.
It is possible for subscribers to subscribe to a single topic or to multiple topics.
For example, the first customer subscribes to only the coupons topic, and the
second subscriber subscribes to only the coffee trivia topic. The third customer
subscribes to both the coffee trivia and new products topics.
Suppose that the coffee shop has an ordering process in which a cashier takes
orders, and a barista makes the orders. Think of the cashier and the barista as
two separate components of an application.
First, the cashier takes an order and writes it down on a piece of paper.
Next, the cashier delivers the paper to the barista. Finally, the barista
makes the drink and gives it to the customer.
When the next order comes in, the process repeats.
This process runs smoothly as long as both the cashier and the barista are
coordinated. What might happen if the cashier took an order and went to
deliver it to the barista, but the barista was out on a break or busy with
another order? The cashier would need to wait until the barista is ready to
accept the order. This would cause delays in the ordering process and require
customers to wait longer to receive their orders.
As the coffee shop has become more popular and the ordering line is moving
more slowly, the owners notice that the current ordering process is time
consuming and inefficient. They decide to try a different approach that uses a
queue.
Example: Orders in a queue
Recall that the cashier and the barista are two separate components of an
application. A message queuing service such as Amazon SQS enables messages
between decoupled application components.
In this example, the first step in the process remains the same as before: a
customer places an order with the cashier.
The cashier puts the order into a queue. You can think of this as an order
board that serves as a buffer between the cashier and the barista. Even
if the barista is out on a break or busy with another order, the cashier
can continue placing new orders into the queue.
Next, the barista checks the queue and retrieves the order.
The barista prepares the drink and gives it to the customer.
The barista then removes the completed order from the queue.
While the barista is preparing the drink, the cashier is able to continue
taking new orders and add them to the queue.
Serverless Computing
Earlier in this module, you learned about Amazon EC2, a service that lets you
run virtual servers in the cloud. If you have applications that you want to run in
Amazon EC2, you must do the following:
Provision instances (virtual servers).
Upload your code.
Continue to manage the instances while your application is running.
The term “serverless” means that your code runs on servers, but you do not
need to provision or manage these servers. With serverless computing, you
can focus more on innovating new products and features instead of
maintaining servers.
Another benefit of serverless computing is the flexibility to scale serverless
applications automatically. Serverless computing can adjust the applications'
capacity by modifying the units of consumptions, such as throughput and
memory.
An AWS service for serverless computing is AWS Lambda.
AWS Lambda
AWS Lambda is a service that lets you run code without needing to provision
or manage servers.
While using AWS Lambda, you 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 or backend service, all with zero
administration.
For example, a simple Lambda function might involve automatically resizing
uploaded images to the AWS Cloud. In this case, the function triggers when
uploading a new image.
Containers
In AWS, you can also build and run containerized applications.
Containers provide you with a standard way to package your application's
code and dependencies into a single object. You can also use containers for
processes and workflows in which there are essential requirements for
security, reliability, and scalability.
Examples: One host with multiple containers
MODULE 3
Region
Selecting a Region
When determining the right Region for your services, data, and applications,
consider the following four business factors.
Compliance with data governance and legal requirements
Depending on your company and location, you might need to run your data
out of specific areas. For example, if your company requires all of its data to
reside within the boundaries of the UK, you would choose the London Region.
Not all companies have location-specific data regulations, so you might need to
focus more on the other three factors.
Proximity to your customers
Selecting a Region that is close to your customers will help you to get content
to them faster. For example, your company is based in Washington, DC, and
many of your customers live in Singapore. You might consider running your
infrastructure in the Northern Virginia Region to be close to company
headquarters, and run your applications from the Singapore Region.
Available services within a Region
Sometimes, the closest Region might not have all the features that you want to
offer to customers. AWS is frequently innovating by creating new services and
expanding on features within existing services. However, making new services
available around the world sometimes requires AWS to build out physical
hardware one Region at a time.
Suppose that your developers want to build an application that uses Amazon
Braket (AWS quantum computing platform). As of this course, Amazon Braket
is not yet available in every AWS Region around the world, so your developers
would have to run it in one of the Regions that already offers it.
Pricing
Suppose that you are considering running applications in both the United
States and Brazil. The way Brazil’s tax structure is set up, it might cost 50%
more to run the same workload out of the São Paulo Region compared to the
Oregon Region. You will learn in more detail that several factors determine
pricing, but for now know that the cost of services can vary from Region to
Region.
Availability Zones
Edge Locations
An edge location is a site that Amazon CloudFront uses to store cached copies
of your content closer to your customers for faster delivery.
Origin Suppose that your company’s data is stored in Brazil, and you have
customers who live in China. To provide content to these customers, you
don’t need to move all the content to one of the Chinese Regions.
Edge Location
Instead of requiring your customers to get their data from Brazil, you can cache
a copy locally at an edge location that is close to your customers in China.
Customer
When a customer in China requests one of your files, Amazon CloudFront
retrieves the file from the cache in the edge location and delivers the file to the
customer. The file is delivered to the customer faster because it came from the
edge location near China instead of the original source in Brazil.
To save time when making API requests, you can use the AWS Command Line
Interface (AWS CLI). AWS CLI enables you to control multiple AWS services
directly from the command line within one tool. AWS CLI is available for users
on Windows, macOS, and Linux.
By using AWS CLI, you can automate the actions that your services and
applications perform through scripts. For example, you can use commands to
launch an Amazon EC2 instance, connect an Amazon EC2 instance to a specific
Auto Scaling group, and more.
AWS CloudFormation
With AWS CloudFormation, you can treat your infrastructure as code. This
means that you can build an environment by writing lines of code instead of
using the AWS Management Console to individually provision resources.
AWS CloudFormation provisions your resources in a safe, repeatable manner,
enabling you to frequently build your infrastructure and applications without
having to perform manual actions or write custom scripts. It determines the
right operations to perform when managing your stack and rolls back changes
automatically if it detects errors.
MODULE 4
Connectivity to AWS
Amazon Virtual Private Cloud (Amazon VPC)
Imagine the millions of customers who use AWS services. Also, imagine the
millions of resources that these customers have created, such as Amazon EC2
instances. Without boundaries around all of these resources, network traffic
would be able to flow between them unrestricted.
A networking service that you can use to establish boundaries around your
AWS resources is Amazon Virtual Private Cloud (Amazon VPC).
Amazon VPC enables you to provision an isolated section of the AWS Cloud. In
this isolated section, you can launch resources in a virtual network that you
define. Within a virtual private cloud (VPC), you can organize your resources
into subnets. A subnet is a section of a VPC that can contain resources such as
Amazon EC2 instances.
Internet gateway
To allow public traffic from the internet to access your VPC, you attach
an internet gateway to the VPC.
An internet gateway is a connection between a VPC and the internet. You can
think of an internet gateway as being similar to a doorway that customers use
to enter the coffee shop. Without an internet gateway, no one can access the
resources within your VPC.
What if you have a VPC that includes only private resources?
The private connection that AWS Direct Connect provides helps you to reduce
network costs and increase the amount of bandwidth that can travel through
your network.
To fix this, the owners of the coffee shop divide the counter area by placing the
cashier and the barista in separate workstations. The cashier’s workstation is
public facing and designed to receive customers. The barista’s area is private.
The barista can still receive orders from the cashier but not directly from
customers.
This is similar to how you can use AWS networking services to isolate resources
and determine exactly how network traffic flows.
In the coffee shop, you can think of the counter area as a VPC. The counter
area divides into two separate areas for the cashier’s workstation and the
barista’s workstation. In a VPC, subnets are separate areas that are used to
group together resources.
Subnets
A subnet is a section of a VPC in which you can group resources based on
security or operational needs. Subnets can be public or private.
After a packet has entered a subnet, it must have its permissions evaluated for
resources within the subnet, such as Amazon EC2 instances.
The VPC component that checks packet permissions for an Amazon EC2
instance is a security group.
Security Groups
A security group is a virtual firewall that controls inbound and outbound traffic
for an Amazon EC2 instance.
By default, a security group denies all inbound traffic and allows all outbound
traffic. You can add custom rules to configure which traffic to allow or deny.
For this example, suppose that you are in an apartment building with a door
attendant who greets guests in the lobby. You can think of the guests as
packets and the door attendant as a security group. As guests arrive, the door
attendant checks a list to ensure they can enter the building. However, the
door attendant does not check the list again when guests are exiting the
building
If you have multiple Amazon EC2 instances within a subnet, you can associate
them with the same security group or use different security groups for each
instance.
Both network ACLs and security groups enable you to configure custom rules
for the traffic in your VPC. As you continue to learn more about AWS security
and networking, make sure to understand the differences between network
ACLs and security groups.
Global Networking
Domain Name System (DNS)
Suppose that AnyCompany has a website hosted in the AWS Cloud. Customers
enter the web address into their browser, and they are able to access the
website. This happens because of Domain Name System (DNS) resolution. DNS
resolution involves a DNS server communicating with a web server.
You can think of DNS as being the phone book of the internet. DNS resolution
is the process of translating a domain name to an IP address.
MODULE 5
Instance Stores and Amazon Elastic Block Store
(Amazon EBS)
Instance stores
Block-level storage volumes behave like physical hard drives.
An instance store provides temporary block-level storage for an Amazon EC2
instance. An instance store is disk storage that is physically attached to the
host computer for an EC2 instance, and therefore has the same lifespan as the
instance. When the instance is terminated, you lose any data in the instance
store.
1. An Amazon EC2 instance with an attached instance store is running.
Recall that when you modify a file in block storage, only the pieces that are
changed are updated. When a file in object storage is modified, the entire
object is updated.
Amazon Simple Storage Service (Amazon S3)
Amazon Simple Storage Service (Amazon S3) is a service that provides object-
level storage. Amazon S3 stores data as objects in buckets.
You can upload any type of file to Amazon S3, such as images, videos, text files,
and so on. For example, you might use Amazon S3 to store backup files, media
files for a website, or archived documents. Amazon S3 offers unlimited storage
space. The maximum file size for an object in Amazon S3 is 5 TB.
When you upload a file to Amazon S3, you can set permissions to control
visibility and access to it. You can also use the Amazon S3 versioning feature to
track changes to your objects over time.
Amazon S3 Storage Classes
With Amazon S3, you pay only for what you use. You can choose from a range
of storage classes to select a fit for your business and cost needs. When
selecting an Amazon S3 storage class, consider these two factors:
How often you plan to retrieve your data
How available you need your data to be
Amazon S3 Standard
Designed for frequently accessed data
Stores data in a minimum of three Availability Zones
Amazon S3 Standard provides high availability for objects. This makes it a good
choice for a wide range of use cases, such as websites, content distribution,
and data analytics. Amazon S3 Standard has a higher cost than other storage
classes intended for infrequently accessed data and archival storage.
Amazon S3 Standard-Infrequent Access (S3 Standard-IA)
Ideal for infrequently accessed data
Similar to Amazon S3 Standard but has a lower storage price and higher
retrieval price
Amazon S3 Standard-IA is ideal for data infrequently accessed but requires
high availability when needed. Both Amazon S3 Standard and Amazon S3
Standard-IA store data in a minimum of three Availability Zones. S3 Standard-
IA provides the same level of availability as Amazon S3 Standard but with a
lower storage price and a higher retrieval price.
Amazon S3 One Zone-Infrequent Access (S3 One Zone-IA)
Stores data in a single Availability Zone
Has a lower storage price than Amazon S3 Standard-IA
Compared to Amazon S3 Standard and Amazon S3 Standard-IA, which store
data in a minimum of three Availability Zones, Amazon S3 One Zone-IA stores
data in a single Availability Zone. This makes it a good storage class to consider
if the following conditions apply:
You want to save costs on storage.
You can easily reproduce your data in the event of an Availability Zone
failure.
Amazon S3 Intelligent-Tiering
Ideal for data with unknown or changing access patterns
Requires a small monthly monitoring and automation fee per object
In the Amazon S3 Intelligent-Tiering storage class, Amazon S3 monitors
objects’ access patterns. If you haven’t accessed an object for 30 consecutive
days, Amazon S3 automatically moves it to the infrequent access tier, Amazon
S3 Standard-IA. If you access an object in the infrequent access tier, Amazon S3
automatically moves it to the frequent access tier, Amazon S3 Standard.
Amazon S3 Glacier Instant Retrieval
Works well for archived data that requires immediate access
Can retrieve objects within a few milliseconds
When you decide between the options for archival storage, consider how
quickly you must retrieve the archived objects. You can retrieve objects stored
in the Amazon S3 Glacier Instant Retrieval storage class within milliseconds,
with the same performance as Amazon S3 Standard.
Amazon S3 Glacier Flexible Retrieval
Low-cost storage designed for data archiving
Able to retrieve objects within a few minutes to hours
Amazon S3 Glacier Flexible Retrieval is a low-cost storage class that is ideal for
data archiving. For example, you might use this storage class to store archived
customer records or older photos and video files.
Amazon S3 Glacier Deep Archive
Lowest-cost object storage class ideal for archiving
Able to retrieve objects within 12 hours
Amazon S3 Deep Archive supports long-term retention and digital preservation
for data that might be accessed once or twice in a year. This storage class is the
lowest-cost storage in the AWS Cloud, with data retrieval from 12 to 48 hours.
All objects from this storage class are replicated and stored across at least
three geographically dispersed Availability Zones.
Amazon S3 Outposts
Creates S3 buckets on Amazon S3 Outposts
Makes it easier to retrieve, store, and access data on AWS Outposts
Amazon S3 Outposts delivers object storage to your on-premises AWS
Outposts environment. Amazon S3 Outposts is designed to store data durably
and redundantly across multiple devices and servers on your Outposts. It
works well for workloads with local data residency requirements that must
satisfy demanding performance needs by keeping data close to on-premises
applications.
Amazon Elastic File System (Amazon EFS)
File Storage
In file storage, multiple clients (such as users, applications, servers, and so on)
can access data that is stored in shared file folders. In this approach, a storage
server uses block storage with a local file system to organize files. Clients
access data through file paths.
Compared to block storage and object storage, file storage is ideal for use
cases in which a large number of services and resources need to access the
same data at the same time.
Amazon Elastic File System (Amazon EFS) is a scalable file system used with
AWS Cloud services and on-premises resources. As you add and remove files,
Amazon EFS grows and shrinks automatically. It can scale on demand to
petabytes without disrupting applications.
Comparing Amazon EBS and Amazon EFS
Amazon EBS
An Amazon EBS volume stores data in a single Availability Zone.
To attach an Amazon EC2 instance to an EBS volume, both the Amazon
EC2 instance and the EBS volume must reside within the same
Availability Zone.
Amazon EFS
Amazon EFS is a regional service. It stores data in and
across multiple Availability Zones.
The duplicate storage enables you to access data concurrently from all
the Availability Zones in the Region where a file system is located.
Additionally, on-premises servers can access Amazon EFS using AWS
Direct Connect.
Relational databases use structured query language (SQL) to store and query data. This
approach allows data to be stored in an easily understandable, consistent, and scalable
way. For example, the coffee shop owners can write a SQL query to identify all the
customers whose most frequently purchased drink is a medium latte.
Amazon RDS is a managed service that automates tasks such as hardware provisioning,
database setup, patching, and backups. With these capabilities, you can spend less time
completing administrative tasks and more time using data to innovate your applications.
You can integrate Amazon RDS with other services to fulfill your business and operational
needs, such as using AWS Lambda to query your database from a serverless application.
Amazon RDS provides a number of different security options. Many Amazon RDS database
engines offer encryption at rest (protecting data while it is stored) and encryption in
transit (protecting data while it is being sent and received).
Amazon Aurora
PostgreSQL
MySQL
MariaDB
Oracle Database
Microsoft SQL Server
Amazon Aurora
Amazon Aurora is an enterprise-class relational database. It is compatible with MySQL
and PostgreSQL relational databases. It is up to five times faster than standard MySQL
databases and up to three times faster than standard PostgreSQL databases.
Consider Amazon Aurora if your workloads require high availability. It replicates six copies
of your data across three Availability Zones and continuously backs up your data to
Amazon S3.
Amazon DynamoDB
Nonrelational Databases
In a nonrelational database, you create tables. A table is a place where you
can store and query data.
Nonrelational databases are sometimes referred to as “NoSQL databases”
because they use structures other than rows and columns to organize data.
One type of structural approach for nonrelational databases is key-value pairs.
With key-value pairs, data is organized into items (keys), and items have
attributes (values). You can think of attributes as being different features of
your data.
In a key-value database, you can add or remove attributes from items in the
table at any time. Additionally, not every item in the table has to have the
same attributes.
Example of data in a nonrelational database:
Key Value
1 Name: John Doe Address: 123 Any Street Favorite drink: Medium latte
2 Name: Mary Major Address: 100 Main Street Birthday: July 5, 1994
Amazon DynamoDB
Amazon DynamoDB is a key-value database service. It delivers single-digit
millisecond performance at any scale.
Serverless
DynamoDB is serverless, which means that you do not have to provision,
patch, or manage servers.
You also do not have to install, maintain, or operate software.
Automatic Scaling
As the size of your database shrinks or grows, DynamoDB automatically
scales to adjust for changes in capacity while maintaining consistent
performance.
This makes it a suitable choice for use cases that require high
performance while scaling.