Amazon Web Services (AWS) is the world's largest and most complex cloud with over 200 unique services. Learn about the top 50 cloud products in just ten minutes.  https://fireship.io/pro

#aws #cloud #top50

🔗 Resources

AWS Products https://aws.amazon.com/products/
Format inspired by this Adobe video https://youtu.be/7W0ISI3yqwo

📚 Chapters

00:00 AWS Origin
00:34 RoboMaker
00:40 IoT Core
00:46 Ground Station
00:53 Quantum Computing
01:00 EC2
01:26 Load Balancer
01:39 Cloud Watch
01:47 Auto Scale
01:56 Beanstalk
02:21 Lightsail
02:40 Lambda
03:07 Serverless Repos
03:16 Outposts
03:25 Snow
03:39 ECR
03:56 ECS
04:09 EKS
04:15 Fargate
04:27 App Runner
04:41 S3
04:59 Glacier
05:06 Block Storage
05:19 EFS
05:32 SimpleDB
05:48 DynamoDB
05:59 DocumentDB
06:13 ElasticSearch
06:21 RDS
06:36 Aurora
06:58 Neptune
07:06 ElasticCache
07:16 TimeStream
07:28 QLDB
07:38 Redshift
08:05 Lake Formation
08:21 Kinesis
08:31 EMR
08:43 MSK
08:52 Glue
09:16 Data Exchange
09:31 Sagemaker
09:53 Rekognition
10:02 Lex 
10:10 Deep Racer
10:18 IAM
10:33 Cognito
10:45 Notifications
10:52 SES
10:56 CloudFormation
11:08 Amplify
11:20 Budget


 🤓 Install the quiz app

iOS https://itunes.apple.com/us/app/fireship/id1462592372?mt=8
Android https://play.google.com/store/apps/details?id=io.fireship.quizapp

🔥 Watch more with Fireship PRO

Upgrade to Fireship PRO at https://fireship.io/pro
Use code lORhwXd2 for 25% off your first payment. 

🎨 My Editor Settings

- Atom One Dark 
- vscode-icons
- Fira Code Font
2024-02-04T05:50:28.510Z
nova-2
2-general-nova
2024-01-09.29447
30089e05-99d1-4376-b32e-c263170674af
0e1bb215-3d99-4484-a2f8-cac94c371a3b
988a9805baff69cc1c9de8f3412435d124107456fae76590db78509844eab508
67875a7f-c9c4-48a0-aa55-5bdb8a91c34a
deprecated
Amazon Web Services launched in 2006 with a total of 3 products, storage buckets, compute instances, and a messaging queue.
Today, it offers a mind numbing 200 and something services.
And, what's most confusing is that many of them appear to do almost the exact same thing.
It's kind of like shopping at a big grocery store where you have different aisles of product categories filled with things to buy that meet the needs of virtually every developer on the planet.
In today's video, we'll walk down these aisles to gain an understanding of over 50 different AWS products.
So first, let's start with a few that are above my pay grade that you may not know to exist.
If you're building robots, you can use RoboMaker to simulate and test your robots at scale.
Then once your robots are in people's homes, you can use IoT Core to collect data from and update their software and manage them remotely.
If you happen to have a satellite orbiting Earth, you can tap into Amazon's global network of antennas to connect data through its ground station service.
And if you want to start experimenting and researching the future of computing, you can use Braket to interact with a quantum computer, but most developers go to the cloud to solve more practical problems.
And for that, let's head to the compute aisle.
1 of the original AWS products was Elastic Compute new cloud.
It's one of the most fundamental building blocks on the platform and allows you to create a virtual computer in the cloud.
Choose your operating system, memory, and computing power, then you can rent that space in the cloud like you're renting an apartment that you pay for by the second.
A common use case is to use an instance as a server for a web application.
But one problem is that as your app grows, you'll likely need to distribute traffic across multiple instances.
In 2009, Amazon introduced elastic load balancing, which allow developers to distribute traffic to multiple instances automatically.
In addition, the CloudWatch service can collect logs and metrics from each individual instance.
The data collected from CloudWatch can then be passed off to AutoScale in which you define policies that create new instances as they become needed based on the traffic and utilization of your current infrastructure.
These tools were revolutionary at the time, but developers still wanted an easier way to get things done, and that's where Elastic Beanstalk comes in.
Most developers in 2011 just wanted to deploy a Ruby on Rails app.
Elastic beanstalk made that much easier by providing an additional layer of abstraction on top of EC 2 and other auto scaling features.
Choose a template, deploy your code, and let all the auto scaling stuff happen automatically.
This is often called a platform as a service, but in some cases, it's still too complicated.
If you don't care about the underlying infrastructure whatsoever and just want to deploy a WordPress site, Lightsail is an alternative option where you can point and click at what you want to deploy and worry even less about the underlying configuration.
In all these cases, you are deploying a static server that is always running in the cloud.
But many computing jobs are ephemeral, which means they don't rely on any persistent state on the server, so why bother deploying a server for code like that?
In 2014, Lambda came out, which are functions as a service or serverless computing.
With Lambda, you simply upload your code, code, then choose an event that decides when that code should run.
Traffic scaling and networking are all things that happen entirely in the background.
And unlike a dedicated server, you only pay for the exact number of requests and computing time that you use.
Now, if you don't like writing your own code, you can use the serverless application repository to find prebuilt functions that you can deploy with the click of a button.
But what if you're a huge enterprise with a bunch of its own servers?
Outposts is a way to run AWS APIs on your your own infrastructure without needing to throw your old servers in the garbage.
In other cases, you may want to interact with AWS from remote or extreme environments, like if you're a scientist in the Arctic.
Snow devices are like little mini data centers that can work without Internet in hostile environments.
So that gives us some fundamental ways to compute things, but many apps today are standardized with Docker containers, allowing them to run on multiple different clouds or computing environments with very little effort.
To run a container, you first need to create a Docker image and store it somewhere.
Elastic Container Registry allows you to upload an image, allowing other tools like elastic container service to pull it back down and run it.
ECS is an API for starting, stopping, and allocating virtual machines to your containers, and allows you to connect them to other products like load balancers.
Some companies may want more control over how their app scales, in which case, EKS is a tool for running Kubernetes.
But in other cases, you may want your containers to behave in a more automated way.
Fargate is a tool that will make your containers behave like serverless functions, removing the need to allocate EC 2 instances for your containers.
But if you're building an application and already have it containerized, the easiest way to deploy to AWS is App Runner.
This is a new product in 2021, where you simply point it to a container image while it handles all of the orchestration and scaling behind the scenes.
But running an application is only half the battle.
We also need to store data in the cloud.
Simple storage service, or s 3, was the very first product offered by AWS.
It can store any type of file or object like an image or video and is based on the same infrastructure as Amazon's ecommerce site.
It's great for general purpose file storage, but if you don't access your files very often, you can archive them in Glacier, which has a higher latency but a much lower cost.
On the other end of the spectrum, You may need storage that is extremely fast and can handle a lot of throughput.
Elastic block storage is ideal for applications that have intensive data processing requirements, but requires more manual configuration by the developer.
Now, if you want something that's highly performant and also fully managed, Elastic file system provides all the bells and whistles, but at a much higher cost.
In addition to raw files, developers also need to store structured data for their end users.
And that brings us to the database aisle, which has a lot of different products to choose from.
The first ever database on AWS was SimpleDB, a general purpose NoSQL database, but it tends to be a little too simple for most people.
Everybody knows you never go full retard.
It was followed up a few years later with DynamoDB, which is a document database that's very easy to scale horizontally.
It's inexpensive and provides fast read performance, but it isn't very good at modeling relational data.
If you're familiar with MongoDB, another document database option is DocumentDB.
It's a controversial option that's technically not MongoDB that has a one to one mapping of the MongoDB API to get around restrictive open source licensing.
Speaking of which, Amazon also did a similar thing Elasticsearch, which itself is a great option if you wanna build something like a full text search engine.
But the majority of developers out there will opt for a traditional relational SQL database.
Amazon Relational Database Service, RDS, supports a variety of different SQL flavors and can fully manage things like backups, patching and scale.
But Amazon also offers its own proprietary flavor of SQL called Aurora.
It's compatible with Postgres or MySQL and can be operated with better performance at a lower cost.
In addition, Aurora offers a new serverless option that makes it even easier to scale and you only pay for the actual time that the database is in use.
Relational databases are a great general purpose option, but they're not the only option.
Neptune is a graph database that can achieve better performance on highly connected datasets, like a social graph or recommendation engine.
If your current database is too slow, you may want to bring in Elastic cache, which is a fully managed version of Redis, an in memory database that delivers data to your end users with extremely low latency.
If you work with time series data, like the stock market, for example, you might benefit from Timestream, a time series database with built 10 functions for time based queries and additional features for analytics.
Yet another option is the Quantum Ledger database, which allows you to build an immutable set of cryptographically signed transactions very similar to decentralized blockchain technology.
Now, let's shift gears and talk about analytics.
To analyze data, you first need a place to store it, and a popular option for doing that is Redshift, which is a data warehouse that tries to get you to shift away from Oracle.
Warehouses are often used by big enterprises to dump multiple data sources from the business where they can be analyzed together.
When all your data is in one place, it's easier to generate meaningful analytics and run machine learning on it.
Data in a warehouse plus is structured so it can be queried.
But if you need a place to put a large amount of unstructured data, you can use AWS Lake Formation, which is a tool for creating data lakes or repositories that store a large amount of unstructured data, which can be used in addition to data warehouses to query a larger variety of data sources.
If you want to analyze real time data, you can use Kinesis to capture real time streams from your infrastructure, then visualize them in your favorite business intelligence tool.
Or you can use a stream processing framework like Apache Spark that runs on Elastic MapReduce, which itself is a service that allows to operate on massive datasets efficiently with a parallel distributed algorithm.
Now if you don't wanna use Kinesis for streaming data, a popular alternative is Apache Kafka.
It's to open source, and Amazon MSK is a fully managed service to get you started.
But for the average developer, all this data processing may be a little too complicated.
It.
Glue is a serverless product that makes it much easier to extract, transform, and load your data.
It can automatically connect to other data to sources on AWS like Aurora, Redshift, and s 3, and has a tool called Glue Studio so you can create jobs without having to write any actual source code, but one of the biggest advantages of collecting massive amounts of data is that you can use it to help predict the future.
And AWS has a bunch of tools in the machine learning aisle to make that process easier.
But first, if you don't have any high quality data of your own, you can use the data exchange to purchase and scribe to data from 3rd party sources.
Once you have some data in the cloud, you can use SageMaker to connect to it and start building machine learning models with TensorFlow or PyTorch.
It operates on multiple levels to make machine learning easier, and provides a managed Jupyter Notebook that can connect to a GPU instance to train a machine learning model, then deploy it somewhere useful.
That's cool, but building your own ML models from scratch is still extremely difficult.
If you need to do image analysis, You may as well just use the recognition API.
It can classify all kinds of objects and images and is likely way better than anything that you would build on your own.
Or if you want to build a conversational bot, you might use Lex, which runs on the same technology that powers Alexa devices.
Or if you just want to have and learn how machine learning works, you might buy a DeepRacer device, which is an actual race car that you can drive with your own machine learning code.
Now, that's a pretty amazing way to get people to use your cloud platform.
But let's change direction and look at a few other essential tools that are used by a wide variety of developers.
For For security, we have I'm where you can create rules and determine who has access to what on your AWS account.
If you're building a web or mobile app where users can log into an account.
Cognito is a tool that enables them to log in with a variety of different authentication methods and manages the user sessions for you.
Then once you have a few users logged into your app, you may want to send them push notifications.
SNS is a tool that can get that job done.
Or maybe you wanna send emails to your users.
SES is the tool for that.
Now that you know about all these tools, you're going to want an organized way to provision them.
CloudFormation is way to create templates based on your infrastructure in YAML or JSON, allowing you to enable 100 of different services with the single click of a button.
From there, You'll likely want to interact with those services from a front end application like iOS, Android, or the web.
Amplify provides SDKs that can connect to your infrastructure from JavaScript frameworks and other front end applications.
Now, the final thing to remember is that all this is going to cost you a ton of money, which which goes directly to getting Jeff's rocket up.
So make sure to use AWS Cost Explorer and Budgets if you don't wanna pay for these big, bulging pockets.
That's the end of the video.
It took a ton of work, so please like and subscribe to support the channel, or become a pro member at fireship.
Io to get access to more advanced content about building apps in the cloud.
Thanks for watching, and I will see you in the next one.

Speaker 0: Amazon Web Services launched in 2006 with a total of 3 products, storage buckets, compute instances, and a messaging queue. Today, it offers a mind numbing 200 and something services. And, what's most confusing is that many of them appear to do almost the exact same thing. It's kind of like shopping at a big grocery store where you have different aisles of product categories filled with things to buy that meet the needs of virtually every developer on the planet. In today's video, we'll walk down these aisles to gain an understanding of over 50 different AWS products.

So first, let's start with a few that are above my pay grade that you may not know to exist. If you're building robots, you can use RoboMaker to simulate and test your robots at scale. Then once your robots are in people's homes, you can use IoT Core to collect data from and update their software and manage them remotely. If you happen to have a satellite orbiting Earth, you can tap into Amazon's global network of antennas to connect data through its ground station service. And if you want to start experimenting and researching the future of computing, you can use Braket to interact with a quantum computer, but most developers go to the cloud to solve more practical problems.

And for that, let's head to the compute aisle. 1 of the original AWS products was Elastic Compute new cloud. It's one of the most fundamental building blocks on the platform and allows you to create a virtual computer in the cloud. Choose your operating system, memory, and computing power, then you can rent that space in the cloud like you're renting an apartment that you pay for by the second. A common use case is to use an instance as a server for a web application.

But one problem is that as your app grows, you'll likely need to distribute traffic across multiple instances. In 2009, Amazon introduced elastic load balancing, which allow developers to distribute traffic to multiple instances automatically. In addition, the CloudWatch service can collect logs and metrics from each individual instance. The data collected from CloudWatch can then be passed off to AutoScale in which you define policies that create new instances as they become needed based on the traffic and utilization of your current infrastructure. These tools were revolutionary at the time, but developers still wanted an easier way to get things done, and that's where Elastic Beanstalk comes in.

Most developers in 2011 just wanted to deploy a Ruby on Rails app. Elastic beanstalk made that much easier by providing an additional layer of abstraction on top of EC 2 and other auto scaling features. Choose a template, deploy your code, and let all the auto scaling stuff happen automatically. This is often called a platform as a service, but in some cases, it's still too complicated. If you don't care about the underlying infrastructure whatsoever and just want to deploy a WordPress site, Lightsail is an alternative option where you can point and click at what you want to deploy and worry even less about the underlying configuration.

In all these cases, you are deploying a static server that is always running in the cloud. But many computing jobs are ephemeral, which means they don't rely on any persistent state on the server, so why bother deploying a server for code like that? In 2014, Lambda came out, which are functions as a service or serverless computing. With Lambda, you simply upload your code, code, then choose an event that decides when that code should run. Traffic scaling and networking are all things that happen entirely in the background.

And unlike a dedicated server, you only pay for the exact number of requests and computing time that you use. Now, if you don't like writing your own code, you can use the serverless application repository to find prebuilt functions that you can deploy with the click of a button. But what if you're a huge enterprise with a bunch of its own servers? Outposts is a way to run AWS APIs on your your own infrastructure without needing to throw your old servers in the garbage. In other cases, you may want to interact with AWS from remote or extreme environments, like if you're a scientist in the Arctic.

Snow devices are like little mini data centers that can work without Internet in hostile environments. So that gives us some fundamental ways to compute things, but many apps today are standardized with Docker containers, allowing them to run on multiple different clouds or computing environments with very little effort. To run a container, you first need to create a Docker image and store it somewhere. Elastic Container Registry allows you to upload an image, allowing other tools like elastic container service to pull it back down and run it. ECS is an API for starting, stopping, and allocating virtual machines to your containers, and allows you to connect them to other products like load balancers.

Some companies may want more control over how their app scales, in which case, EKS is a tool for running Kubernetes. But in other cases, you may want your containers to behave in a more automated way. Fargate is a tool that will make your containers behave like serverless functions, removing the need to allocate EC 2 instances for your containers. But if you're building an application and already have it containerized, the easiest way to deploy to AWS is App Runner. This is a new product in 2021, where you simply point it to a container image while it handles all of the orchestration and scaling behind the scenes.

But running an application is only half the battle. We also need to store data in the cloud. Simple storage service, or s 3, was the very first product offered by AWS. It can store any type of file or object like an image or video and is based on the same infrastructure as Amazon's ecommerce site. It's great for general purpose file storage, but if you don't access your files very often, you can archive them in Glacier, which has a higher latency but a much lower cost.

On the other end of the spectrum, You may need storage that is extremely fast and can handle a lot of throughput. Elastic block storage is ideal for applications that have intensive data processing requirements, but requires more manual configuration by the developer. Now, if you want something that's highly performant and also fully managed, Elastic file system provides all the bells and whistles, but at a much higher cost. In addition to raw files, developers also need to store structured data for their end users. And that brings us to the database aisle, which has a lot of different products to choose from.

The first ever database on AWS was SimpleDB, a general purpose NoSQL database, but it tends to be a little too simple for most people. Everybody knows you never go full retard. It was followed up a few years later with DynamoDB, which is a document database that's very easy to scale horizontally. It's inexpensive and provides fast read performance, but it isn't very good at modeling relational data. If you're familiar with MongoDB, another document database option is DocumentDB.

It's a controversial option that's technically not MongoDB that has a one to one mapping of the MongoDB API to get around restrictive open source licensing. Speaking of which, Amazon also did a similar thing Elasticsearch, which itself is a great option if you wanna build something like a full text search engine. But the majority of developers out there will opt for a traditional relational SQL database. Amazon Relational Database Service, RDS, supports a variety of different SQL flavors and can fully manage things like backups, patching and scale. But Amazon also offers its own proprietary flavor of SQL called Aurora.

It's compatible with Postgres or MySQL and can be operated with better performance at a lower cost. In addition, Aurora offers a new serverless option that makes it even easier to scale and you only pay for the actual time that the database is in use. Relational databases are a great general purpose option, but they're not the only option. Neptune is a graph database that can achieve better performance on highly connected datasets, like a social graph or recommendation engine. If your current database is too slow, you may want to bring in Elastic cache, which is a fully managed version of Redis, an in memory database that delivers data to your end users with extremely low latency.

If you work with time series data, like the stock market, for example, you might benefit from Timestream, a time series database with built 10 functions for time based queries and additional features for analytics. Yet another option is the Quantum Ledger database, which allows you to build an immutable set of cryptographically signed transactions very similar to decentralized blockchain technology. Now, let's shift gears and talk about analytics. To analyze data, you first need a place to store it, and a popular option for doing that is Redshift, which is a data warehouse that tries to get you to shift away from Oracle. Warehouses are often used by big enterprises to dump multiple data sources from the business where they can be analyzed together.

When all your data is in one place, it's easier to generate meaningful analytics and run machine learning on it. Data in a warehouse plus is structured so it can be queried. But if you need a place to put a large amount of unstructured data, you can use AWS Lake Formation, which is a tool for creating data lakes or repositories that store a large amount of unstructured data, which can be used in addition to data warehouses to query a larger variety of data sources. If you want to analyze real time data, you can use Kinesis to capture real time streams from your infrastructure, then visualize them in your favorite business intelligence tool. Or you can use a stream processing framework like Apache Spark that runs on Elastic MapReduce, which itself is a service that allows to operate on massive datasets efficiently with a parallel distributed algorithm.

Now if you don't wanna use Kinesis for streaming data, a popular alternative is Apache Kafka. It's to open source, and Amazon MSK is a fully managed service to get you started. But for the average developer, all this data processing may be a little too complicated. It. Glue is a serverless product that makes it much easier to extract, transform, and load your data.

It can automatically connect to other data to sources on AWS like Aurora, Redshift, and s 3, and has a tool called Glue Studio so you can create jobs without having to write any actual source code, but one of the biggest advantages of collecting massive amounts of data is that you can use it to help predict the future. And AWS has a bunch of tools in the machine learning aisle to make that process easier. But first, if you don't have any high quality data of your own, you can use the data exchange to purchase and scribe to data from 3rd party sources. Once you have some data in the cloud, you can use SageMaker to connect to it and start building machine learning models with TensorFlow or PyTorch. It operates on multiple levels to make machine learning easier, and provides a managed Jupyter Notebook that can connect to a GPU instance to train a machine learning model, then deploy it somewhere useful.

That's cool, but building your own ML models from scratch is still extremely difficult. If you need to do image analysis, You may as well just use the recognition API. It can classify all kinds of objects and images and is likely way better than anything that you would build on your own. Or if you want to build a conversational bot, you might use Lex, which runs on the same technology that powers Alexa devices. Or if you just want to have and learn how machine learning works, you might buy a DeepRacer device, which is an actual race car that you can drive with your own machine learning code.

Now, that's a pretty amazing way to get people to use your cloud platform. But let's change direction and look at a few other essential tools that are used by a wide variety of developers. For For security, we have I'm where you can create rules and determine who has access to what on your AWS account. If you're building a web or mobile app where users can log into an account. Cognito is a tool that enables them to log in with a variety of different authentication methods and manages the user sessions for you.

Then once you have a few users logged into your app, you may want to send them push notifications. SNS is a tool that can get that job done. Or maybe you wanna send emails to your users. SES is the tool for that. Now that you know about all these tools, you're going to want an organized way to provision them.

CloudFormation is way to create templates based on your infrastructure in YAML or JSON, allowing you to enable 100 of different services with the single click of a button. From there, You'll likely want to interact with those services from a front end application like iOS, Android, or the web. Amplify provides SDKs that can connect to your infrastructure from JavaScript frameworks and other front end applications. Now, the final thing to remember is that all this is going to cost you a ton of money, which which goes directly to getting Jeff's rocket up. So make sure to use AWS Cost Explorer and Budgets if you don't wanna pay for these big, bulging pockets.

That's the end of the video. It took a ton of work, so please like and subscribe to support the channel, or become a pro member at fireship. Io to get access to more advanced content about building apps in the cloud. Thanks for watching, and I will see you in the next one.
Amazon Web Services launched in 2006 with a total of 3 products, storage buckets, compute instances, and a messaging queue. Today, it offers a mind numbing 200 and something services. And, what's most confusing is that many of them appear to do almost the exact same thing. It's kind of like shopping at a big grocery store where you have different aisles of product categories filled with things to buy that meet the needs of virtually every developer on the planet.
amazon
commerce
In today's video, we'll walk down these aisles to gain an understanding of over 50 different AWS products. So first, let's start with a few that are above my pay grade that you may not know to exist. If you're building robots, you can use RoboMaker to simulate and test your robots at scale. Then once your robots are in people's homes, you can use IoT Core to collect data from and update their software and manage them remotely. If you happen to have a satellite orbiting Earth, you can tap into Amazon's global network of antennas to connect data through its ground station service. And if you want to start experimenting and researching the future of computing, you can use Braket to interact with a quantum computer, but most developers go to the cloud to solve more practical problems. And for that, let's head to the compute aisle. 1 of the original AWS products was Elastic Compute new cloud. It's one of the most fundamental building blocks on the platform and allows you to create a virtual computer in the cloud. Choose your operating system, memory, and computing power, then you can rent that space in the cloud like you're renting an apartment that you pay for by the second.
robotics
computers
toys
computer science
technology
earth
internet
space exploration
amazon
ibm
microsoft
aerospace
A common use case is to use an instance as a server for a web application. But one problem is that as your app grows, you'll likely need to distribute traffic across multiple instances. In 2009, Amazon introduced elastic load balancing, which allow developers to distribute traffic to multiple instances automatically. In addition, the CloudWatch service can collect logs and metrics from each individual instance. The data collected from CloudWatch can then be passed off to AutoScale in which you define policies that create new instances as they become needed based on the traffic and utilization of your current infrastructure. These tools were revolutionary at the time, but developers still wanted an easier way to get things done, and that's where Elastic Beanstalk comes in.
amazon
data management
systems
commerce
infrastructure
Most developers in 2011 just wanted to deploy a Ruby on Rails app. Elastic beanstalk made that much easier by providing an additional layer of abstraction on top of EC 2 and other auto scaling features.
Choose a template, deploy your code, and let all the auto scaling stuff happen automatically. This is often called a platform as a service, but in some cases, it's still too complicated. If you don't care about the underlying infrastructure whatsoever and just want to deploy a WordPress site, Lightsail is an alternative option where you can point and click at what you want to deploy and worry even less about the underlying configuration.
software
In all these cases, you are deploying a static server that is always running in the cloud. But many computing jobs are ephemeral, which means they don't rely on any persistent state on the server, so why bother deploying a server for code like that?
In 2014, Lambda came out, which are functions as a service or serverless computing. With Lambda, you simply upload your code, code, then choose an event that decides when that code should run. Traffic scaling and networking are all things that happen entirely in the background. And unlike a dedicated server, you only pay for the exact number of requests and computing time that you use. Now, if you don't like writing your own code, you can use the serverless application repository to find prebuilt functions that you can deploy with the click of a button.
internet
networking
programming
But what if you're a huge enterprise with a bunch of its own servers? Outposts is a way to run AWS APIs on your your own infrastructure without needing to throw your old servers in the garbage. In other cases, you may want to interact with AWS from remote or extreme environments, like if you're a scientist in the Arctic. Snow devices are like little mini data centers that can work without Internet in hostile environments. So that gives us some fundamental ways to compute things, but many apps today are standardized with Docker containers, allowing them to run on multiple different clouds or computing environments with very little effort.
computers
infrastructure
networking
To run a container, you first need to create a Docker image and store it somewhere. Elastic Container Registry allows you to upload an image, allowing other tools like elastic container service to pull it back down and run it. ECS is an API for starting, stopping, and allocating virtual machines to your containers, and allows you to connect them to other products like load balancers. Some companies may want more control over how their app scales, in which case, EKS is a tool for running Kubernetes. But in other cases, you may want your containers to behave in a more automated way.
Fargate is a tool that will make your containers behave like serverless functions, removing the need to allocate EC 2 instances for your containers. But if you're building an application and already have it containerized, the easiest way to deploy to AWS is App Runner. This is a new product in 2021, where you simply point it to a container image while it handles all of the orchestration and scaling behind the scenes. But running an application is only half the battle. We also need to store data in the cloud. Simple storage service, or s 3, was the very first product offered by AWS. It can store any type of file or object like an image or video and is based on the same infrastructure as Amazon's ecommerce site. It's great for general purpose file storage, but if you don't access your files very often, you can archive them in Glacier, which has a higher latency but a much lower cost.
amazon
technology
computer science
microsoft
software
data management
google
streaming
On the other end of the spectrum, You may need storage that is extremely fast and can handle a lot of throughput. Elastic block storage is ideal for applications that have intensive data processing requirements, but requires more manual configuration by the developer.
Now, if you want something that's highly performant and also fully managed, Elastic file system provides all the bells and whistles, but at a much higher cost. In addition to raw files, developers also need to store structured data for their end users. And that brings us to the database aisle, which has a lot of different products to choose from. The first ever database on AWS was SimpleDB, a general purpose NoSQL database, but it tends to be a little too simple for most people. Everybody knows you never go full retard. It was followed up a few years later with DynamoDB, which is a document database that's very easy to scale horizontally. It's inexpensive and provides fast read performance, but it isn't very good at modeling relational data. If you're familiar with MongoDB, another document database option is DocumentDB. It's a controversial option that's technically not MongoDB that has a one to one mapping of the MongoDB API to get around restrictive open source licensing. Speaking of which, Amazon also did a similar thing Elasticsearch, which itself is a great option if you wanna build something like a full text search engine. But the majority of developers out there will opt for a traditional relational SQL database. Amazon Relational Database Service, RDS, supports a variety of different SQL flavors and can fully manage things like backups, patching and scale. But Amazon also offers its own proprietary flavor of SQL called Aurora. It's compatible with Postgres or MySQL and can be operated with better performance at a lower cost. In addition, Aurora offers a new serverless option that makes it even easier to scale and you only pay for the actual time that the database is in use. Relational databases are a great general purpose option, but they're not the only option. Neptune is a graph database that can achieve better performance on highly connected datasets, like a social graph or recommendation engine. If your current database is too slow, you may want to bring in Elastic cache, which is a fully managed version of Redis, an in memory database that delivers data to your end users with extremely low latency. If you work with time series data, like the stock market, for example, you might benefit from Timestream, a time series database with built 10 functions for time based queries and additional features for analytics. Yet another option is the Quantum Ledger database, which allows you to build an immutable set of cryptographically signed transactions very similar to decentralized blockchain technology. Now, let's shift gears and talk about analytics. To analyze data, you first need a place to store it, and a popular option for doing that is Redshift, which is a data warehouse that tries to get you to shift away from Oracle. Warehouses are often used by big enterprises to dump multiple data sources from the business where they can be analyzed together. When all your data is in one place, it's easier to generate meaningful analytics and run machine learning on it. Data in a warehouse plus is structured so it can be queried. But if you need a place to put a large amount of unstructured data, you can use AWS Lake Formation, which is a tool for creating data lakes or repositories that store a large amount of unstructured data, which can be used in addition to data warehouses to query a larger variety of data sources. If you want to analyze real time data, you can use Kinesis to capture real time streams from your infrastructure, then visualize them in your favorite business intelligence tool. Or you can use a stream processing framework like Apache Spark that runs on Elastic MapReduce, which itself is a service that allows to operate on massive datasets efficiently with a parallel distributed algorithm. Now if you don't wanna use Kinesis for streaming data, a popular alternative is Apache Kafka. It's to open source, and Amazon MSK is a fully managed service to get you started. But for the average developer, all this data processing may be a little too complicated. It. Glue is a serverless product that makes it much easier to extract, transform, and load your data. It can automatically connect to other data to sources on AWS like Aurora, Redshift, and s 3, and has a tool called Glue Studio so you can create jobs without having to write any actual source code, but one of the biggest advantages of collecting massive amounts of data is that you can use it to help predict the future. And AWS has a bunch of tools in the machine learning aisle to make that process easier. But first, if you don't have any high quality data of your own, you can use the data exchange to purchase and scribe to data from 3rd party sources. Once you have some data in the cloud, you can use SageMaker to connect to it and start building machine learning models with TensorFlow or PyTorch. It operates on multiple levels to make machine learning easier, and provides a managed Jupyter Notebook that can connect to a GPU instance to train a machine learning model, then deploy it somewhere useful. That's cool, but building your own ML models from scratch is still extremely difficult. If you need to do image analysis, You may as well just use the recognition API. It can classify all kinds of objects and images and is likely way better than anything that you would build on your own. Or if you want to build a conversational bot, you might use Lex, which runs on the same technology that powers Alexa devices. Or if you just want to have and learn how machine learning works, you might buy a DeepRacer device, which is an actual race car that you can drive with your own machine learning code. Now, that's a pretty amazing way to get people to use your cloud platform. But let's change direction and look at a few other essential tools that are used by a wide variety of developers. For For security, we have I'm where you can create rules and determine who has access to what on your AWS account.
machine learning
databases
deep learning
artificial intelligence
data management
amazon
data analysis
infrastructure
commerce
neural networks
data
visualization
internet
software
robotics
computer science
mining
streaming
software development
networking
If you're building a web or mobile app where users can log into an account. Cognito is a tool that enables them to log in with a variety of different authentication methods and manages the user sessions for you. Then once you have a few users logged into your app, you may want to send them push notifications.
SNS is a tool that can get that job done. Or maybe you wanna send emails to your users. SES is the tool for that. Now that you know about all these tools, you're going to want an organized way to provision them. CloudFormation is way to create templates based on your infrastructure in YAML or JSON, allowing you to enable 100 of different services with the single click of a button. From there, You'll likely want to interact with those services from a front end application like iOS, Android, or the web. Amplify provides SDKs that can connect to your infrastructure from JavaScript frameworks and other front end applications. Now, the final thing to remember is that all this is going to cost you a ton of money, which which goes directly to getting Jeff's rocket up.
software
email
networking
software development
databases
So make sure to use AWS Cost Explorer and Budgets if you don't wanna pay for these big, bulging pockets. That's the end of the video. It took a ton of work, so please like and subscribe to support the channel, or become a pro member at fireship. Io to get access to more advanced content about building apps in the cloud. Thanks for watching, and I will see you in the next one.
streaming
amazon
youtube
multimedia
software
media
Amazon Web Services launched in 2006 with a total of 3 products, storage buckets, compute instances, and a messaging queue. Today, it offers a mind numbing 200 and something services. And, what's most confusing is that many of them appear to do almost the exact same thing. It's kind of like shopping at a big grocery store where you have different aisles of product categories filled with things to buy that meet the needs of virtually every developer on the planet. In today's video, we'll walk down these aisles to gain an understanding of over 50 different AWS products. So first, let's start with a few that are above my pay grade that you may not know to exist. If you're building robots, you can use RoboMaker to simulate and test your robots at scale. Then once your robots are in people's homes, you can use IoT Core to collect data from and update their software and manage them remotely. If you happen to have a satellite orbiting Earth, you can tap into Amazon's global network of antennas to connect data through its ground station service. And if you want to start experimenting and researching the future of computing, you can use Braket to interact with a quantum computer, but most developers go to the cloud to solve more practical problems. And for that, let's head to the compute aisle. 1 of the original AWS products was Elastic Compute new cloud. It's one of the most fundamental building blocks on the platform and allows you to create a virtual computer in the cloud. Choose your operating system, memory, and computing power, then you can rent that space in the cloud like you're renting an apartment that you pay for by the second. A common use case is to use an instance as a server for a web application. But one problem is that as your app grows, you'll likely need to distribute traffic across multiple instances. In 2009, Amazon introduced elastic load balancing, which allow developers to distribute traffic to multiple instances automatically. In addition, the CloudWatch service can collect logs and metrics from each individual instance. The data collected from CloudWatch can then be passed off to AutoScale in which you define policies that create new instances as they become needed based on the traffic and utilization of your current infrastructure. These tools were revolutionary at the time, but developers still wanted an easier way to get things done, and that's where Elastic Beanstalk comes in. Most developers in 2011 just wanted to deploy a Ruby on Rails app. Elastic beanstalk made that much easier by providing an additional layer of abstraction on top of EC 2 and other auto scaling features. Choose a template, deploy your code, and let all the auto scaling stuff happen automatically. This is often called a platform as a service, but in some cases, it's still too complicated. If you don't care about the underlying infrastructure whatsoever and just want to deploy a WordPress site, Lightsail is an alternative option where you can point and click at what you want to deploy and worry even less about the underlying configuration. In all these cases, you are deploying a static server that is always running in the cloud. But many computing jobs are ephemeral, which means they don't rely on any persistent state on the server, so why bother deploying a server for code like that? In 2014, Lambda came out, which are functions as a service or serverless computing. With Lambda, you simply upload your code, code, then choose an event that decides when that code should run. Traffic scaling and networking are all things that happen entirely in the background. And unlike a dedicated server, you only pay for the exact number of requests and computing time that you use. Now, if you don't like writing your own code, you can use the serverless application repository to find prebuilt functions that you can deploy with the click of a button. But what if you're a huge enterprise with a bunch of its own servers? Outposts is a way to run AWS APIs on your your own infrastructure without needing to throw your old servers in the garbage. In other cases, you may want to interact with AWS from remote or extreme environments, like if you're a scientist in the Arctic. Snow devices are like little mini data centers that can work without Internet in hostile environments. So that gives us some fundamental ways to compute things, but many apps today are standardized with Docker containers, allowing them to run on multiple different clouds or computing environments with very little effort. To run a container, you first need to create a Docker image and store it somewhere. Elastic Container Registry allows you to upload an image, allowing other tools like elastic container service to pull it back down and run it. ECS is an API for starting, stopping, and allocating virtual machines to your containers, and allows you to connect them to other products like load balancers. Some companies may want more control over how their app scales, in which case, EKS is a tool for running Kubernetes. But in other cases, you may want your containers to behave in a more automated way. Fargate is a tool that will make your containers behave like serverless functions, removing the need to allocate EC 2 instances for your containers. But if you're building an application and already have it containerized, the easiest way to deploy to AWS is App Runner. This is a new product in 2021, where you simply point it to a container image while it handles all of the orchestration and scaling behind the scenes. But running an application is only half the battle. We also need to store data in the cloud. Simple storage service, or s 3, was the very first product offered by AWS. It can store any type of file or object like an image or video and is based on the same infrastructure as Amazon's ecommerce site. It's great for general purpose file storage, but if you don't access your files very often, you can archive them in Glacier, which has a higher latency but a much lower cost. On the other end of the spectrum, You may need storage that is extremely fast and can handle a lot of throughput. Elastic block storage is ideal for applications that have intensive data processing requirements, but requires more manual configuration by the developer. Now, if you want something that's highly performant and also fully managed, Elastic file system provides all the bells and whistles, but at a much higher cost. In addition to raw files, developers also need to store structured data for their end users. And that brings us to the database aisle, which has a lot of different products to choose from. The first ever database on AWS was SimpleDB, a general purpose NoSQL database, but it tends to be a little too simple for most people. Everybody knows you never go full retard. It was followed up a few years later with DynamoDB, which is a document database that's very easy to scale horizontally. It's inexpensive and provides fast read performance, but it isn't very good at modeling relational data. If you're familiar with MongoDB, another document database option is DocumentDB. It's a controversial option that's technically not MongoDB that has a one to one mapping of the MongoDB API to get around restrictive open source licensing. Speaking of which, Amazon also did a similar thing Elasticsearch, which itself is a great option if you wanna build something like a full text search engine. But the majority of developers out there will opt for a traditional relational SQL database. Amazon Relational Database Service, RDS, supports a variety of different SQL flavors and can fully manage things like backups, patching and scale. But Amazon also offers its own proprietary flavor of SQL called Aurora. It's compatible with Postgres or MySQL and can be operated with better performance at a lower cost. In addition, Aurora offers a new serverless option that makes it even easier to scale and you only pay for the actual time that the database is in use. Relational databases are a great general purpose option, but they're not the only option. Neptune is a graph database that can achieve better performance on highly connected datasets, like a social graph or recommendation engine. If your current database is too slow, you may want to bring in Elastic cache, which is a fully managed version of Redis, an in memory database that delivers data to your end users with extremely low latency. If you work with time series data, like the stock market, for example, you might benefit from Timestream, a time series database with built 10 functions for time based queries and additional features for analytics. Yet another option is the Quantum Ledger database, which allows you to build an immutable set of cryptographically signed transactions very similar to decentralized blockchain technology. Now, let's shift gears and talk about analytics. To analyze data, you first need a place to store it, and a popular option for doing that is Redshift, which is a data warehouse that tries to get you to shift away from Oracle. Warehouses are often used by big enterprises to dump multiple data sources from the business where they can be analyzed together. When all your data is in one place, it's easier to generate meaningful analytics and run machine learning on it. Data in a warehouse plus is structured so it can be queried. But if you need a place to put a large amount of unstructured data, you can use AWS Lake Formation, which is a tool for creating data lakes or repositories that store a large amount of unstructured data, which can be used in addition to data warehouses to query a larger variety of data sources. If you want to analyze real time data, you can use Kinesis to capture real time streams from your infrastructure, then visualize them in your favorite business intelligence tool. Or you can use a stream processing framework like Apache Spark that runs on Elastic MapReduce, which itself is a service that allows to operate on massive datasets efficiently with a parallel distributed algorithm. Now if you don't wanna use Kinesis for streaming data, a popular alternative is Apache Kafka. It's to open source, and Amazon MSK is a fully managed service to get you started. But for the average developer, all this data processing may be a little too complicated. It. Glue is a serverless product that makes it much easier to extract, transform, and load your data. It can automatically connect to other data to sources on AWS like Aurora, Redshift, and s 3, and has a tool called Glue Studio so you can create jobs without having to write any actual source code, but one of the biggest advantages of collecting massive amounts of data is that you can use it to help predict the future. And AWS has a bunch of tools in the machine learning aisle to make that process easier. But first, if you don't have any high quality data of your own, you can use the data exchange to purchase and scribe to data from 3rd party sources. Once you have some data in the cloud, you can use SageMaker to connect to it and start building machine learning models with TensorFlow or PyTorch. It operates on multiple levels to make machine learning easier, and provides a managed Jupyter Notebook that can connect to a GPU instance to train a machine learning model, then deploy it somewhere useful. That's cool, but building your own ML models from scratch is still extremely difficult. If you need to do image analysis, You may as well just use the recognition API. It can classify all kinds of objects and images and is likely way better than anything that you would build on your own. Or if you want to build a conversational bot, you might use Lex, which runs on the same technology that powers Alexa devices. Or if you just want to have and learn how machine learning works, you might buy a DeepRacer device, which is an actual race car that you can drive with your own machine learning code. Now, that's a pretty amazing way to get people to use your cloud platform. But let's change direction and look at a few other essential tools that are used by a wide variety of developers. For For security, we have I'm where you can create rules and determine who has access to what on your AWS account. If you're building a web or mobile app where users can log into an account. Cognito is a tool that enables them to log in with a variety of different authentication methods and manages the user sessions for you. Then once you have a few users logged into your app, you may want to send them push notifications. SNS is a tool that can get that job done. Or maybe you wanna send emails to your users. SES is the tool for that. Now that you know about all these tools, you're going to want an organized way to provision them. CloudFormation is way to create templates based on your infrastructure in YAML or JSON, allowing you to enable 100 of different services with the single click of a button. From there, You'll likely want to interact with those services from a front end application like iOS, Android, or the web. Amplify provides SDKs that can connect to your infrastructure from JavaScript frameworks and other front end applications. Now, the final thing to remember is that all this is going to cost you a ton of money, which which goes directly to getting Jeff's rocket up. So make sure to use AWS Cost Explorer and Budgets if you don't wanna pay for these big, bulging pockets. That's the end of the video. It took a ton of work, so please like and subscribe to support the channel, or become a pro member at fireship. Io to get access to more advanced content about building apps in the cloud. Thanks for watching, and I will see you in the next one.
Amazon
amazon
Web
web
Services
services
launched
launched
in
in
2006
2006
with
with
a
a
total
total
of
of
3
3
products,
products
storage
storage
buckets,
buckets
compute
compute
instances,
instances
and
and
a
a
messaging
messaging
queue.
queue
Today,
today
it
it
offers
offers
a
a
mind
mind
numbing
numbing
200
200
and
and
something
something
services.
services
And,
and
what's
what's
most
most
confusing
confusing
is
is
that
that
many
many
of
of
them
them
appear
appear
to
to
do
do
almost
almost
the
the
exact
exact
same
same
thing.
thing
It's
it's
kind
kind
of
of
like
like
shopping
shopping
at
at
a
a
big
big
grocery
grocery
store
store
where
where
you
you
have
have
different
different
aisles
aisles
of
of
product
product
categories
categories
filled
filled
with
with
things
things
to
to
buy
buy
that
that
meet
meet
the
the
needs
needs
of
of
virtually
virtually
every
every
developer
developer
on
on
the
the
planet.
planet
In
in
today's
today's
video,
video
we'll
we'll
walk
walk
down
down
these
these
aisles
aisles
to
to
gain
gain
an
an
understanding
understanding
of
of
over
over
50
50
different
different
AWS
aws
products.
products
So
so
first,
first
let's
let's
start
start
with
with
a
a
few
few
that
that
are
are
above
above
my
my
pay
pay
grade
grade
that
that
you
you
may
may
not
not
know
know
to
to
exist.
exist
If
if
you're
you're
building
building
robots,
robots
you
you
can
can
use
use
RoboMaker
robomaker
to
to
simulate
simulate
and
and
test
test
your
your
robots
robots
at
at
scale.
scale
Then
then
once
once
your
your
robots
robots
are
are
in
in
people's
people's
homes,
homes
you
you
can
can
use
use
IoT
iot
Core
core
to
to
collect
collect
data
data
from
from
and
and
update
update
their
their
software
software
and
and
manage
manage
them
them
remotely.
remotely
If
if
you
you
happen
happen
to
to
have
have
a
a
satellite
satellite
orbiting
orbiting
Earth,
earth
you
you
can
can
tap
tap
into
into
Amazon's
amazon's
global
global
network
network
of
of
antennas
antennas
to
to
connect
connect
data
data
through
through
its
its
ground
ground
station
station
service.
service
And
and
if
if
you
you
want
want
to
to
start
start
experimenting
experimenting
and
and
researching
researching
the
the
future
future
of
of
computing,
computing
you
you
can
can
use
use
Braket
braket
to
to
interact
interact
with
with
a
a
quantum
quantum
computer,
computer
but
but
most
most
developers
developers
go
go
to
to
the
the
cloud
cloud
to
to
solve
solve
more
more
practical
practical
problems.
problems
And
and
for
for
that,
that
let's
let's
head
head
to
to
the
the
compute
compute
aisle.
aisle
1
1
of
of
the
the
original
original
AWS
aws
products
products
was
was
Elastic
elastic
Compute
compute
new
new
cloud.
cloud
It's
it's
one
one
of
of
the
the
most
most
fundamental
fundamental
building
building
blocks
blocks
on
on
the
the
platform
platform
and
and
allows
allows
you
you
to
to
create
create
a
a
virtual
virtual
computer
computer
in
in
the
the
cloud.
cloud
Choose
choose
your
your
operating
operating
system,
system
memory,
memory
and
and
computing
computing
power,
power
then
then
you
you
can
can
rent
rent
that
that
space
space
in
in
the
the
cloud
cloud
like
like
you're
you're
renting
renting
an
an
apartment
apartment
that
that
you
you
pay
pay
for
for
by
by
the
the
second.
second
A
a
common
common
use
use
case
case
is
is
to
to
use
use
an
an
instance
instance
as
as
a
a
server
server
for
for
a
a
web
web
application.
application
But
but
one
one
problem
problem
is
is
that
that
as
as
your
your
app
app
grows,
grows
you'll
you'll
likely
likely
need
need
to
to
distribute
distribute
traffic
traffic
across
across
multiple
multiple
instances.
instances
In
in
2009,
2009
Amazon
amazon
introduced
introduced
elastic
elastic
load
load
balancing,
balancing
which
which
allow
allow
developers
developers
to
to
distribute
distribute
traffic
traffic
to
to
multiple
multiple
instances
instances
automatically.
automatically
In
in
addition,
addition
the
the
CloudWatch
cloudwatch
service
service
can
can
collect
collect
logs
logs
and
and
metrics
metrics
from
from
each
each
individual
individual
instance.
instance
The
the
data
data
collected
collected
from
from
CloudWatch
cloudwatch
can
can
then
then
be
be
passed
passed
off
off
to
to
AutoScale
autoscale
in
in
which
which
you
you
define
define
policies
policies
that
that
create
create
new
new
instances
instances
as
as
they
they
become
become
needed
needed
based
based
on
on
the
the
traffic
traffic
and
and
utilization
utilization
of
of
your
your
current
current
infrastructure.
infrastructure
These
these
tools
tools
were
were
revolutionary
revolutionary
at
at
the
the
time,
time
but
but
developers
developers
still
still
wanted
wanted
an
an
easier
easier
way
way
to
to
get
get
things
things
done,
done
and
and
that's
that's
where
where
Elastic
elastic
Beanstalk
beanstalk
comes
comes
in.
in
Most
most
developers
developers
in
in
2011
2011
just
just
wanted
wanted
to
to
deploy
deploy
a
a
Ruby
ruby
on
on
Rails
rails
app.
app
Elastic
elastic
beanstalk
beanstalk
made
made
that
that
much
much
easier
easier
by
by
providing
providing
an
an
additional
additional
layer
layer
of
of
abstraction
abstraction
on
on
top
top
of
of
EC
ec
2
2
and
and
other
other
auto
auto
scaling
scaling
features.
features
Choose
choose
a
a
template,
template
deploy
deploy
your
your
code,
code
and
and
let
let
all
all
the
the
auto
auto
scaling
scaling
stuff
stuff
happen
happen
automatically.
automatically
This
this
is
is
often
often
called
called
a
a
platform
platform
as
as
a
a
service,
service
but
but
in
in
some
some
cases,
cases
it's
it's
still
still
too
too
complicated.
complicated
If
if
you
you
don't
don't
care
care
about
about
the
the
underlying
underlying
infrastructure
infrastructure
whatsoever
whatsoever
and
and
just
just
want
want
to
to
deploy
deploy
a
a
WordPress
wordpress
site,
site
Lightsail
lightsail
is
is
an
an
alternative
alternative
option
option
where
where
you
you
can
can
point
point
and
and
click
click
at
at
what
what
you
you
want
want
to
to
deploy
deploy
and
and
worry
worry
even
even
less
less
about
about
the
the
underlying
underlying
configuration.
configuration
In
in
all
all
these
these
cases,
cases
you
you
are
are
deploying
deploying
a
a
static
static
server
server
that
that
is
is
always
always
running
running
in
in
the
the
cloud.
cloud
But
but
many
many
computing
computing
jobs
jobs
are
are
ephemeral,
ephemeral
which
which
means
means
they
they
don't
don't
rely
rely
on
on
any
any
persistent
persistent
state
state
on
on
the
the
server,
server
so
so
why
why
bother
bother
deploying
deploying
a
a
server
server
for
for
code
code
like
like
that?
that
In
in
2014,
2014
Lambda
lambda
came
came
out,
out
which
which
are
are
functions
functions
as
as
a
a
service
service
or
or
serverless
serverless
computing.
computing
With
with
Lambda,
lambda
you
you
simply
simply
upload
upload
your
your
code,
code
code,
code
then
then
choose
choose
an
an
event
event
that
that
decides
decides
when
when
that
that
code
code
should
should
run.
run
Traffic
traffic
scaling
scaling
and
and
networking
networking
are
are
all
all
things
things
that
that
happen
happen
entirely
entirely
in
in
the
the
background.
background
And
and
unlike
unlike
a
a
dedicated
dedicated
server,
server
you
you
only
only
pay
pay
for
for
the
the
exact
exact
number
number
of
of
requests
requests
and
and
computing
computing
time
time
that
that
you
you
use.
use
Now,
now
if
if
you
you
don't
don't
like
like
writing
writing
your
your
own
own
code,
code
you
you
can
can
use
use
the
the
serverless
serverless
application
application
repository
repository
to
to
find
find
prebuilt
prebuilt
functions
functions
that
that
you
you
can
can
deploy
deploy
with
with
the
the
click
click
of
of
a
a
button.
button
But
but
what
what
if
if
you're
you're
a
a
huge
huge
enterprise
enterprise
with
with
a
a
bunch
bunch
of
of
its
its
own
own
servers?
servers
Outposts
outposts
is
is
a
a
way
way
to
to
run
run
AWS
aws
APIs
apis
on
on
your
your
your
your
own
own
infrastructure
infrastructure
without
without
needing
needing
to
to
throw
throw
your
your
old
old
servers
servers
in
in
the
the
garbage.
garbage
In
in
other
other
cases,
cases
you
you
may
may
want
want
to
to
interact
interact
with
with
AWS
aws
from
from
remote
remote
or
or
extreme
extreme
environments,
environments
like
like
if
if
you're
you're
a
a
scientist
scientist
in
in
the
the
Arctic.
arctic
Snow
snow
devices
devices
are
are
like
like
little
little
mini
mini
data
data
centers
centers
that
that
can
can
work
work
without
without
Internet
internet
in
in
hostile
hostile
environments.
environments
So
so
that
that
gives
gives
us
us
some
some
fundamental
fundamental
ways
ways
to
to
compute
compute
things,
things
but
but
many
many
apps
apps
today
today
are
are
standardized
standardized
with
with
Docker
docker
containers,
containers
allowing
allowing
them
them
to
to
run
run
on
on
multiple
multiple
different
different
clouds
clouds
or
or
computing
computing
environments
environments
with
with
very
very
little
little
effort.
effort
To
to
run
run
a
a
container,
container
you
you
first
first
need
need
to
to
create
create
a
a
Docker
docker
image
image
and
and
store
store
it
it
somewhere.
somewhere
Elastic
elastic
Container
container
Registry
registry
allows
allows
you
you
to
to
upload
upload
an
an
image,
image
allowing
allowing
other
other
tools
tools
like
like
elastic
elastic
container
container
service
service
to
to
pull
pull
it
it
back
back
down
down
and
and
run
run
it.
it
ECS
ecs
is
is
an
an
API
api
for
for
starting,
starting
stopping,
stopping
and
and
allocating
allocating
virtual
virtual
machines
machines
to
to
your
your
containers,
containers
and
and
allows
allows
you
you
to
to
connect
connect
them
them
to
to
other
other
products
products
like
like
load
load
balancers.
balancers
Some
some
companies
companies
may
may
want
want
more
more
control
control
over
over
how
how
their
their
app
app
scales,
scales
in
in
which
which
case,
case
EKS
eks
is
is
a
a
tool
tool
for
for
running
running
Kubernetes.
kubernetes
But
but
in
in
other
other
cases,
cases
you
you
may
may
want
want
your
your
containers
containers
to
to
behave
behave
in
in
a
a
more
more
automated
automated
way.
way
Fargate
fargate
is
is
a
a
tool
tool
that
that
will
will
make
make
your
your
containers
containers
behave
behave
like
like
serverless
serverless
functions,
functions
removing
removing
the
the
need
need
to
to
allocate
allocate
EC
ec
2
2
instances
instances
for
for
your
your
containers.
containers
But
but
if
if
you're
you're
building
building
an
an
application
application
and
and
already
already
have
have
it
it
containerized,
containerized
the
the
easiest
easiest
way
way
to
to
deploy
deploy
to
to
AWS
aws
is
is
App
app
Runner.
runner
This
this
is
is
a
a
new
new
product
product
in
in
2021,
2021
where
where
you
you
simply
simply
point
point
it
it
to
to
a
a
container
container
image
image
while
while
it
it
handles
handles
all
all
of
of
the
the
orchestration
orchestration
and
and
scaling
scaling
behind
behind
the
the
scenes.
scenes
But
but
running
running
an
an
application
application
is
is
only
only
half
half
the
the
battle.
battle
We
we
also
also
need
need
to
to
store
store
data
data
in
in
the
the
cloud.
cloud
Simple
simple
storage
storage
service,
service
or
or
s
s
3,
3
was
was
the
the
very
very
first
first
product
product
offered
offered
by
by
AWS.
aws
It
it
can
can
store
store
any
any
type
type
of
of
file
file
or
or
object
object
like
like
an
an
image
image
or
or
video
video
and
and
is
is
based
based
on
on
the
the
same
same
infrastructure
infrastructure
as
as
Amazon's
amazon's
ecommerce
ecommerce
site.
site
It's
it's
great
great
for
for
general
general
purpose
purpose
file
file
storage,
storage
but
but
if
if
you
you
don't
don't
access
access
your
your
files
files
very
very
often,
often
you
you
can
can
archive
archive
them
them
in
in
Glacier,
glacier
which
which
has
has
a
a
higher
higher
latency
latency
but
but
a
a
much
much
lower
lower
cost.
cost
On
on
the
the
other
other
end
end
of
of
the
the
spectrum,
spectrum
You
you
may
may
need
need
storage
storage
that
that
is
is
extremely
extremely
fast
fast
and
and
can
can
handle
handle
a
a
lot
lot
of
of
throughput.
throughput
Elastic
elastic
block
block
storage
storage
is
is
ideal
ideal
for
for
applications
applications
that
that
have
have
intensive
intensive
data
data
processing
processing
requirements,
requirements
but
but
requires
requires
more
more
manual
manual
configuration
configuration
by
by
the
the
developer.
developer
Now,
now
if
if
you
you
want
want
something
something
that's
that's
highly
highly
performant
performant
and
and
also
also
fully
fully
managed,
managed
Elastic
elastic
file
file
system
system
provides
provides
all
all
the
the
bells
bells
and
and
whistles,
whistles
but
but
at
at
a
a
much
much
higher
higher
cost.
cost
In
in
addition
addition
to
to
raw
raw
files,
files
developers
developers
also
also
need
need
to
to
store
store
structured
structured
data
data
for
for
their
their
end
end
users.
users
And
and
that
that
brings
brings
us
us
to
to
the
the
database
database
aisle,
aisle
which
which
has
has
a
a
lot
lot
of
of
different
different
products
products
to
to
choose
choose
from.
from
The
the
first
first
ever
ever
database
database
on
on
AWS
aws
was
was
SimpleDB,
simpledb
a
a
general
general
purpose
purpose
NoSQL
nosql
database,
database
but
but
it
it
tends
tends
to
to
be
be
a
a
little
little
too
too
simple
simple
for
for
most
most
people.
people
Everybody
everybody
knows
knows
you
you
never
never
go
go
full
full
retard.
retard
It
it
was
was
followed
followed
up
up
a
a
few
few
years
years
later
later
with
with
DynamoDB,
dynamodb
which
which
is
is
a
a
document
document
database
database
that's
that's
very
very
easy
easy
to
to
scale
scale
horizontally.
horizontally
It's
it's
inexpensive
inexpensive
and
and
provides
provides
fast
fast
read
read
performance,
performance
but
but
it
it
isn't
isn't
very
very
good
good
at
at
modeling
modeling
relational
relational
data.
data
If
if
you're
you're
familiar
familiar
with
with
MongoDB,
mongodb
another
another
document
document
database
database
option
option
is
is
DocumentDB.
documentdb
It's
it's
a
a
controversial
controversial
option
option
that's
that's
technically
technically
not
not
MongoDB
mongodb
that
that
has
has
a
a
one
one
to
to
one
one
mapping
mapping
of
of
the
the
MongoDB
mongodb
API
api
to
to
get
get
around
around
restrictive
restrictive
open
open
source
source
licensing.
licensing
Speaking
speaking
of
of
which,
which
Amazon
amazon
also
also
did
did
a
a
similar
similar
thing
thing
Elasticsearch,
elasticsearch
which
which
itself
itself
is
is
a
a
great
great
option
option
if
if
you
you
wanna
wanna
build
build
something
something
like
like
a
a
full
full
text
text
search
search
engine.
engine
But
but
the
the
majority
majority
of
of
developers
developers
out
out
there
there
will
will
opt
opt
for
for
a
a
traditional
traditional
relational
relational
SQL
sql
database.
database
Amazon
amazon
Relational
relational
Database
database
Service,
service
RDS,
rds
supports
supports
a
a
variety
variety
of
of
different
different
SQL
sql
flavors
flavors
and
and
can
can
fully
fully
manage
manage
things
things
like
like
backups,
backups
patching
patching
and
and
scale.
scale
But
but
Amazon
amazon
also
also
offers
offers
its
its
own
own
proprietary
proprietary
flavor
flavor
of
of
SQL
sql
called
called
Aurora.
aurora
It's
it's
compatible
compatible
with
with
Postgres
postgres
or
or
MySQL
mysql
and
and
can
can
be
be
operated
operated
with
with
better
better
performance
performance
at
at
a
a
lower
lower
cost.
cost
In
in
addition,
addition
Aurora
aurora
offers
offers
a
a
new
new
serverless
serverless
option
option
that
that
makes
makes
it
it
even
even
easier
easier
to
to
scale
scale
and
and
you
you
only
only
pay
pay
for
for
the
the
actual
actual
time
time
that
that
the
the
database
database
is
is
in
in
use.
use
Relational
relational
databases
databases
are
are
a
a
great
great
general
general
purpose
purpose
option,
option
but
but
they're
they're
not
not
the
the
only
only
option.
option
Neptune
neptune
is
is
a
a
graph
graph
database
database
that
that
can
can
achieve
achieve
better
better
performance
performance
on
on
highly
highly
connected
connected
datasets,
datasets
like
like
a
a
social
social
graph
graph
or
or
recommendation
recommendation
engine.
engine
If
if
your
your
current
current
database
database
is
is
too
too
slow,
slow
you
you
may
may
want
want
to
to
bring
bring
in
in
Elastic
elastic
cache,
cache
which
which
is
is
a
a
fully
fully
managed
managed
version
version
of
of
Redis,
redis
an
an
in
in
memory
memory
database
database
that
that
delivers
delivers
data
data
to
to
your
your
end
end
users
users
with
with
extremely
extremely
low
low
latency.
latency
If
if
you
you
work
work
with
with
time
time
series
series
data,
data
like
like
the
the
stock
stock
market,
market
for
for
example,
example
you
you
might
might
benefit
benefit
from
from
Timestream,
timestream
a
a
time
time
series
series
database
database
with
with
built
built
10
10
functions
functions
for
for
time
time
based
based
queries
queries
and
and
additional
additional
features
features
for
for
analytics.
analytics
Yet
yet
another
another
option
option
is
is
the
the
Quantum
quantum
Ledger
ledger
database,
database
which
which
allows
allows
you
you
to
to
build
build
an
an
immutable
immutable
set
set
of
of
cryptographically
cryptographically
signed
signed
transactions
transactions
very
very
similar
similar
to
to
decentralized
decentralized
blockchain
blockchain
technology.
technology
Now,
now
let's
let's
shift
shift
gears
gears
and
and
talk
talk
about
about
analytics.
analytics
To
to
analyze
analyze
data,
data
you
you
first
first
need
need
a
a
place
place
to
to
store
store
it,
it
and
and
a
a
popular
popular
option
option
for
for
doing
doing
that
that
is
is
Redshift,
redshift
which
which
is
is
a
a
data
data
warehouse
warehouse
that
that
tries
tries
to
to
get
get
you
you
to
to
shift
shift
away
away
from
from
Oracle.
oracle
Warehouses
warehouses
are
are
often
often
used
used
by
by
big
big
enterprises
enterprises
to
to
dump
dump
multiple
multiple
data
data
sources
sources
from
from
the
the
business
business
where
where
they
they
can
can
be
be
analyzed
analyzed
together.
together
When
when
all
all
your
your
data
data
is
is
in
in
one
one
place,
place
it's
it's
easier
easier
to
to
generate
generate
meaningful
meaningful
analytics
analytics
and
and
run
run
machine
machine
learning
learning
on
on
it.
it
Data
data
in
in
a
a
warehouse
warehouse
plus
plus
is
is
structured
structured
so
so
it
it
can
can
be
be
queried.
queried
But
but
if
if
you
you
need
need
a
a
place
place
to
to
put
put
a
a
large
large
amount
amount
of
of
unstructured
unstructured
data,
data
you
you
can
can
use
use
AWS
aws
Lake
lake
Formation,
formation
which
which
is
is
a
a
tool
tool
for
for
creating
creating
data
data
lakes
lakes
or
or
repositories
repositories
that
that
store
store
a
a
large
large
amount
amount
of
of
unstructured
unstructured
data,
data
which
which
can
can
be
be
used
used
in
in
addition
addition
to
to
data
data
warehouses
warehouses
to
to
query
query
a
a
larger
larger
variety
variety
of
of
data
data
sources.
sources
If
if
you
you
want
want
to
to
analyze
analyze
real
real
time
time
data,
data
you
you
can
can
use
use
Kinesis
kinesis
to
to
capture
capture
real
real
time
time
streams
streams
from
from
your
your
infrastructure,
infrastructure
then
then
visualize
visualize
them
them
in
in
your
your
favorite
favorite
business
business
intelligence
intelligence
tool.
tool
Or
or
you
you
can
can
use
use
a
a
stream
stream
processing
processing
framework
framework
like
like
Apache
apache
Spark
spark
that
that
runs
runs
on
on
Elastic
elastic
MapReduce,
mapreduce
which
which
itself
itself
is
is
a
a
service
service
that
that
allows
allows
to
to
operate
operate
on
on
massive
massive
datasets
datasets
efficiently
efficiently
with
with
a
a
parallel
parallel
distributed
distributed
algorithm.
algorithm
Now
now
if
if
you
you
don't
don't
wanna
wanna
use
use
Kinesis
kinesis
for
for
streaming
streaming
data,
data
a
a
popular
popular
alternative
alternative
is
is
Apache
apache
Kafka.
kafka
It's
it's
to
to
open
open
source,
source
and
and
Amazon
amazon
MSK
msk
is
is
a
a
fully
fully
managed
managed
service
service
to
to
get
get
you
you
started.
started
But
but
for
for
the
the
average
average
developer,
developer
all
all
this
this
data
data
processing
processing
may
may
be
be
a
a
little
little
too
too
complicated.
complicated
It.
it
Glue
glue
is
is
a
a
serverless
serverless
product
product
that
that
makes
makes
it
it
much
much
easier
easier
to
to
extract,
extract
transform,
transform
and
and
load
load
your
your
data.
data
It
it
can
can
automatically
automatically
connect
connect
to
to
other
other
data
data
to
to
sources
sources
on
on
AWS
aws
like
like
Aurora,
aurora
Redshift,
redshift
and
and
s
s
3,
3
and
and
has
has
a
a
tool
tool
called
called
Glue
glue
Studio
studio
so
so
you
you
can
can
create
create
jobs
jobs
without
without
having
having
to
to
write
write
any
any
actual
actual
source
source
code,
code
but
but
one
one
of
of
the
the
biggest
biggest
advantages
advantages
of
of
collecting
collecting
massive
massive
amounts
amounts
of
of
data
data
is
is
that
that
you
you
can
can
use
use
it
it
to
to
help
help
predict
predict
the
the
future.
future
And
and
AWS
aws
has
has
a
a
bunch
bunch
of
of
tools
tools
in
in
the
the
machine
machine
learning
learning
aisle
aisle
to
to
make
make
that
that
process
process
easier.
easier
But
but
first,
first
if
if
you
you
don't
don't
have
have
any
any
high
high
quality
quality
data
data
of
of
your
your
own,
own
you
you
can
can
use
use
the
the
data
data
exchange
exchange
to
to
purchase
purchase
and
and
scribe
scribe
to
to
data
data
from
from
3rd
3rd
party
party
sources.
sources
Once
once
you
you
have
have
some
some
data
data
in
in
the
the
cloud,
cloud
you
you
can
can
use
use
SageMaker
sagemaker
to
to
connect
connect
to
to
it
it
and
and
start
start
building
building
machine
machine
learning
learning
models
models
with
with
TensorFlow
tensorflow
or
or
PyTorch.
pytorch
It
it
operates
operates
on
on
multiple
multiple
levels
levels
to
to
make
make
machine
machine
learning
learning
easier,
easier
and
and
provides
provides
a
a
managed
managed
Jupyter
jupyter
Notebook
notebook
that
that
can
can
connect
connect
to
to
a
a
GPU
gpu
instance
instance
to
to
train
train
a
a
machine
machine
learning
learning
model,
model
then
then
deploy
deploy
it
it
somewhere
somewhere
useful.
useful
That's
that's
cool,
cool
but
but
building
building
your
your
own
own
ML
ml
models
models
from
from
scratch
scratch
is
is
still
still
extremely
extremely
difficult.
difficult
If
if
you
you
need
need
to
to
do
do
image
image
analysis,
analysis
You
you
may
may
as
as
well
well
just
just
use
use
the
the
recognition
recognition
API.
api
It
it
can
can
classify
classify
all
all
kinds
kinds
of
of
objects
objects
and
and
images
images
and
and
is
is
likely
likely
way
way
better
better
than
than
anything
anything
that
that
you
you
would
would
build
build
on
on
your
your
own.
own
Or
or
if
if
you
you
want
want
to
to
build
build
a
a
conversational
conversational
bot,
bot
you
you
might
might
use
use
Lex,
lex
which
which
runs
runs
on
on
the
the
same
same
technology
technology
that
that
powers
powers
Alexa
alexa
devices.
devices
Or
or
if
if
you
you
just
just
want
want
to
to
have
have
and
and
learn
learn
how
how
machine
machine
learning
learning
works,
works
you
you
might
might
buy
buy
a
a
DeepRacer
deepracer
device,
device
which
which
is
is
an
an
actual
actual
race
race
car
car
that
that
you
you
can
can
drive
drive
with
with
your
your
own
own
machine
machine
learning
learning
code.
code
Now,
now
that's
that's
a
a
pretty
pretty
amazing
amazing
way
way
to
to
get
get
people
people
to
to
use
use
your
your
cloud
cloud
platform.
platform
But
but
let's
let's
change
change
direction
direction
and
and
look
look
at
at
a
a
few
few
other
other
essential
essential
tools
tools
that
that
are
are
used
used
by
by
a
a
wide
wide
variety
variety
of
of
developers.
developers
For
for
For
for
security,
security
we
we
have
have
I'm
i'm
where
where
you
you
can
can
create
create
rules
rules
and
and
determine
determine
who
who
has
has
access
access
to
to
what
what
on
on
your
your
AWS
aws
account.
account
If
if
you're
you're
building
building
a
a
web
web
or
or
mobile
mobile
app
app
where
where
users
users
can
can
log
log
into
into
an
an
account.
account
Cognito
cognito
is
is
a
a
tool
tool
that
that
enables
enables
them
them
to
to
log
log
in
in
with
with
a
a
variety
variety
of
of
different
different
authentication
authentication
methods
methods
and
and
manages
manages
the
the
user
user
sessions
sessions
for
for
you.
you
Then
then
once
once
you
you
have
have
a
a
few
few
users
users
logged
logged
into
into
your
your
app,
app
you
you
may
may
want
want
to
to
send
send
them
them
push
push
notifications.
notifications
SNS
sns
is
is
a
a
tool
tool
that
that
can
can
get
get
that
that
job
job
done.
done
Or
or
maybe
maybe
you
you
wanna
wanna
send
send
emails
emails
to
to
your
your
users.
users
SES
ses
is
is
the
the
tool
tool
for
for
that.
that
Now
now
that
that
you
you
know
know
about
about
all
all
these
these
tools,
tools
you're
you're
going
going
to
to
want
want
an
an
organized
organized
way
way
to
to
provision
provision
them.
them
CloudFormation
cloudformation
is
is
way
way
to
to
create
create
templates
templates
based
based
on
on
your
your
infrastructure
infrastructure
in
in
YAML
yaml
or
or
JSON,
json
allowing
allowing
you
you
to
to
enable
enable
100
100
of
of
different
different
services
services
with
with
the
the
single
single
click
click
of
of
a
a
button.
button
From
from
there,
there
You'll
you'll
likely
likely
want
want
to
to
interact
interact
with
with
those
those
services
services
from
from
a
a
front
front
end
end
application
application
like
like
iOS,
ios
Android,
android
or
or
the
the
web.
web
Amplify
amplify
provides
provides
SDKs
sdks
that
that
can
can
connect
connect
to
to
your
your
infrastructure
infrastructure
from
from
JavaScript
javascript
frameworks
frameworks
and
and
other
other
front
front
end
end
applications.
applications
Now,
now
the
the
final
final
thing
thing
to
to
remember
remember
is
is
that
that
all
all
this
this
is
is
going
going
to
to
cost
cost
you
you
a
a
ton
ton
of
of
money,
money
which
which
which
which
goes
goes
directly
directly
to
to
getting
getting
Jeff's
jeff's
rocket
rocket
up.
up
So
so
make
make
sure
sure
to
to
use
use
AWS
aws
Cost
cost
Explorer
explorer
and
and
Budgets
budgets
if
if
you
you
don't
don't
wanna
wanna
pay
pay
for
for
these
these
big,
big
bulging
bulging
pockets.
pockets
That's
that's
the
the
end
end
of
of
the
the
video.
video
It
it
took
took
a
a
ton
ton
of
of
work,
work
so
so
please
please
like
like
and
and
subscribe
subscribe
to
to
support
support
the
the
channel,
channel
or
or
become
become
a
a
pro
pro
member
member
at
at
fireship.
fireship
Io
io
to
to
get
get
access
access
to
to
more
more
advanced
advanced
content
content
about
about
building
building
apps
apps
in
in
the
the
cloud.
cloud
Thanks
thanks
for
for
watching,
watching
and
and
I
i
will
will
see
see
you
you
in
in
the
the
next
next
one.
one
success
The transcript discusses various AWS products and their benefits, including Workflow, Elasticvisor, and Cloudera. They touch on the use of AWS Workflow for building web applications and the use of AWS Cloudera for storage and data management. The speakers emphasize the use of AWS APIs for managing applications, Elastic file storage and Elastic lucky storage for fast and efficient data transfer, Redshift for structured data storage, and the use of Redshift for faster and efficient data transfer. They also recommend various options for data warehouses, serverless solutions, and machine learning models, emphasizing privacy and security in building apps.
Top 50+ AWS Services Explained in 10 Minutes
Amazon Web Services launched in 2006 with a total of 3 products, storage buckets, compute instances, and a messaging queue. Today, it offers a mind numbing 200 and something services. And, what's most confusing is that many of them appear to do almost the exact same thing. It's kind of like shopping at a big grocery store where you have different aisles of product categories filled with things to buy that meet the needs of virtually every developer on the planet. In today's video, we'll walk down these aisles to gain an understanding of over 50 different AWS products. So first, let's start with a few that are above my pay grade that you may not know to exist. If you're building robots, you can use RoboMaker to simulate and test your robots at scale. Then once your robots are in people's homes, you can use IoT Core to collect data from and update their software and manage them remotely. If you happen to have a satellite orbiting Earth, you can tap into Amazon's global network of antennas to connect data through its ground station service. And if you want to start experimenting and researching the future of computing, you can use Braket to interact with a quantum computer, but most developers go to the cloud to solve more practical problems. And for that, let's head to the compute aisle. 1 of the original AWS products was Elastic Compute new cloud. It's one of the most fundamental building blocks on the platform and allows you to create a virtual computer in the cloud. Choose your operating system, memory, and computing power, then you can rent that space in the cloud like you're renting an apartment that you pay for by the second. A common use case is to use an instance as a server for a web application. But one problem is that as your app grows, you'll likely need to distribute traffic across multiple instances. In 2009, Amazon introduced elastic load balancing, which allow developers to distribute traffic to multiple instances automatically. In addition, the CloudWatch service can collect logs and metrics from each individual instance. The data collected from CloudWatch can then be passed off to AutoScale in which you define policies that create new instances as they become needed based on the traffic and utilization of your current infrastructure. These tools were revolutionary at the time, but developers still wanted an easier way to get things done, and that's where Elastic Beanstalk comes in. Most developers in 2011 just wanted to deploy a Ruby on Rails app. Elastic beanstalk made that much easier by providing an additional layer of abstraction on top of EC 2 and other auto scaling features. Choose a template, deploy your code, and let all the auto scaling stuff happen automatically. This is often called a platform as a service, but in some cases, it's still too complicated. If you don't care about the underlying infrastructure whatsoever and just want to deploy a WordPress site, Lightsail is an alternative option where you can point and click at what you want to deploy and worry even less about the underlying configuration. In all these cases, you are deploying a static server that is always running in the cloud. But many computing jobs are ephemeral, which means they don't rely on any persistent state on the server, so why bother deploying a server for code like that? In 2014, Lambda came out, which are functions as a service or serverless computing. With Lambda, you simply upload your code, code, then choose an event that decides when that code should run. Traffic scaling and networking are all things that happen entirely in the background. And unlike a dedicated server, you only pay for the exact number of requests and computing time that you use. Now, if you don't like writing your own code, you can use the serverless application repository to find prebuilt functions that you can deploy with the click of a button. But what if you're a huge enterprise with a bunch of its own servers? Outposts is a way to run AWS APIs on your your own infrastructure without needing to throw your old servers in the garbage. In other cases, you may want to interact with AWS from remote or extreme environments, like if you're a scientist in the Arctic. Snow devices are like little mini data centers that can work without Internet in hostile environments. So that gives us some fundamental ways to compute things, but many apps today are standardized with Docker containers, allowing them to run on multiple different clouds or computing environments with very little effort. To run a container, you first need to create a Docker image and store it somewhere. Elastic Container Registry allows you to upload an image, allowing other tools like elastic container service to pull it back down and run it. ECS is an API for starting, stopping, and allocating virtual machines to your containers, and allows you to connect them to other products like load balancers. Some companies may want more control over how their app scales, in which case, EKS is a tool for running Kubernetes. But in other cases, you may want your containers to behave in a more automated way. Fargate is a tool that will make your containers behave like serverless functions, removing the need to allocate EC 2 instances for your containers. But if you're building an application and already have it containerized, the easiest way to deploy to AWS is App Runner. This is a new product in 2021, where you simply point it to a container image while it handles all of the orchestration and scaling behind the scenes. But running an application is only half the battle. We also need to store data in the cloud. Simple storage service, or s 3, was the very first product offered by AWS. It can store any type of file or object like an image or video and is based on the same infrastructure as Amazon's ecommerce site. It's great for general purpose file storage, but if you don't access your files very often, you can archive them in Glacier, which has a higher latency but a much lower cost. On the other end of the spectrum, You may need storage that is extremely fast and can handle a lot of throughput. Elastic block storage is ideal for applications that have intensive data processing requirements, but requires more manual configuration by the developer. Now, if you want something that's highly performant and also fully managed, Elastic file system provides all the bells and whistles, but at a much higher cost. In addition to raw files, developers also need to store structured data for their end users. And that brings us to the database aisle, which has a lot of different products to choose from. The first ever database on AWS was SimpleDB, a general purpose NoSQL database, but it tends to be a little too simple for most people. Everybody knows you never go full retard. It was followed up a few years later with DynamoDB, which is a document database that's very easy to scale horizontally. It's inexpensive and provides fast read performance, but it isn't very good at modeling relational data. If you're familiar with MongoDB, another document database option is DocumentDB. It's a controversial option that's technically not MongoDB that has a one to one mapping of the MongoDB API to get around restrictive open source licensing. Speaking of which, Amazon also did a similar thing Elasticsearch, which itself is a great option if you wanna build something like a full text search engine. But the majority of developers out there will opt for a traditional relational SQL database. Amazon Relational Database Service, RDS, supports a variety of different SQL flavors and can fully manage things like backups, patching and scale. But Amazon also offers its own proprietary flavor of SQL called Aurora. It's compatible with Postgres or MySQL and can be operated with better performance at a lower cost. In addition, Aurora offers a new serverless option that makes it even easier to scale and you only pay for the actual time that the database is in use. Relational databases are a great general purpose option, but they're not the only option. Neptune is a graph database that can achieve better performance on highly connected datasets, like a social graph or recommendation engine. If your current database is too slow, you may want to bring in Elastic cache, which is a fully managed version of Redis, an in memory database that delivers data to your end users with extremely low latency. If you work with time series data, like the stock market, for example, you might benefit from Timestream, a time series database with built 10 functions for time based queries and additional features for analytics. Yet another option is the Quantum Ledger database, which allows you to build an immutable set of cryptographically signed transactions very similar to decentralized blockchain technology. Now, let's shift gears and talk about analytics. To analyze data, you first need a place to store it, and a popular option for doing that is Redshift, which is a data warehouse that tries to get you to shift away from Oracle. Warehouses are often used by big enterprises to dump multiple data sources from the business where they can be analyzed together. When all your data is in one place, it's easier to generate meaningful analytics and run machine learning on it. Data in a warehouse plus is structured so it can be queried. But if you need a place to put a large amount of unstructured data, you can use AWS Lake Formation, which is a tool for creating data lakes or repositories that store a large amount of unstructured data, which can be used in addition to data warehouses to query a larger variety of data sources. If you want to analyze real time data, you can use Kinesis to capture real time streams from your infrastructure, then visualize them in your favorite business intelligence tool. Or you can use a stream processing framework like Apache Spark that runs on Elastic MapReduce, which itself is a service that allows to operate on massive datasets efficiently with a parallel distributed algorithm. Now if you don't wanna use Kinesis for streaming data, a popular alternative is Apache Kafka. It's to open source, and Amazon MSK is a fully managed service to get you started. But for the average developer, all this data processing may be a little too complicated. It. Glue is a serverless product that makes it much easier to extract, transform, and load your data. It can automatically connect to other data to sources on AWS like Aurora, Redshift, and s 3, and has a tool called Glue Studio so you can create jobs without having to write any actual source code, but one of the biggest advantages of collecting massive amounts of data is that you can use it to help predict the future. And AWS has a bunch of tools in the machine learning aisle to make that process easier. But first, if you don't have any high quality data of your own, you can use the data exchange to purchase and scribe to data from 3rd party sources. Once you have some data in the cloud, you can use SageMaker to connect to it and start building machine learning models with TensorFlow or PyTorch. It operates on multiple levels to make machine learning easier, and provides a managed Jupyter Notebook that can connect to a GPU instance to train a machine learning model, then deploy it somewhere useful. That's cool, but building your own ML models from scratch is still extremely difficult. If you need to do image analysis, You may as well just use the recognition API. It can classify all kinds of objects and images and is likely way better than anything that you would build on your own. Or if you want to build a conversational bot, you might use Lex, which runs on the same technology that powers Alexa devices. Or if you just want to have and learn how machine learning works, you might buy a DeepRacer device, which is an actual race car that you can drive with your own machine learning code. Now, that's a pretty amazing way to get people to use your cloud platform. But let's change direction and look at a few other essential tools that are used by a wide variety of developers. For For security, we have I'm where you can create rules and determine who has access to what on your AWS account. If you're building a web or mobile app where users can log into an account. Cognito is a tool that enables them to log in with a variety of different authentication methods and manages the user sessions for you. Then once you have a few users logged into your app, you may want to send them push notifications. SNS is a tool that can get that job done. Or maybe you wanna send emails to your users. SES is the tool for that. Now that you know about all these tools, you're going to want an organized way to provision them. CloudFormation is way to create templates based on your infrastructure in YAML or JSON, allowing you to enable 100 of different services with the single click of a button. From there, You'll likely want to interact with those services from a front end application like iOS, Android, or the web. Amplify provides SDKs that can connect to your infrastructure from JavaScript frameworks and other front end applications. Now, the final thing to remember is that all this is going to cost you a ton of money, which which goes directly to getting Jeff's rocket up. So make sure to use AWS Cost Explorer and Budgets if you don't wanna pay for these big, bulging pockets. That's the end of the video. It took a ton of work, so please like and subscribe to support the channel, or become a pro member at fireship. Io to get access to more advanced content about building apps in the cloud. Thanks for watching, and I will see you in the next one.
The transcript discusses various AWS products and their benefits, including Workflow, Elasticvisor, and Cloudera. They touch on the use of AWS Workflow for building web applications and the use of AWS Cloudera for storage and data management. The speakers emphasize the use of AWS APIs for managing applications, Elastic file storage and Elastic lucky storage for fast and efficient data transfer, Redshift for structured data storage, and the use of Redshift for faster and efficient data transfer. They also recommend various options for data warehouses, serverless solutions, and machine learning models, emphasizing privacy and security in building apps.