Hi there, welcome to this brand new learning video called cloud computing tutorial. I'm Samuel, a multi-platform cloud architect and trainer working for Simply Learn. Let's dive deep into the topics we're going to discuss here. Why we needed cloud computing to begin with and what is cloud computing and different types of cloud computing available at the moment.
And we also are going to talk about a dominant cloud providers available in the market at the moment. and we will touch a few topics or scenarios on lifecycle of a cloud computing solution. And we will be talking about how cloud computing is implemented in AWS. And there's nothing like visually seeing how things work in the cloud, right? So we're going to end it with a demo and we're going to talk about products or we're actually going to use products like EC2 and S3.
EC2 being a virtual computer in the cloud and S3 being an object storage in the cloud. Let's understand about. why cloud computing was needed.
What was the problem that we had that cloud computing solved and since then it took over the market. Let's understand that first and that will solve a lot of unanswered questions about cloud computing or services that you might have. Here on the left, we have an owner of a business and he wants to set up an DZ or have an IT infrastructure for his company.
So he called Paul, an IT educated person in his company, and consulted him about how to go about setting up an IT infrastructure. Now, Paul is the kind of guy who keeps himself updated about what's happening in the IT industry, and he frequently goes through learnings about the recent technology. So without missing a beat, Paul suggested, why not set up the environment in the cloud?
But his manager was not sure about what is cloud and more than trying to understand what cloud is, he was curious about the benefits of cloud over having an DC locally. So Paul started to explain the very same thing I'm going to explain to you now. Let's start with the expenditure or the billing model.
With cloud, the billing model is pay-as-you-go type, meaning we use less and pay less and we use more. and we pay less per unit. On the other hand, in on-premises, we can't expect that. We pay everything upfront and there is an additional operating cost and it never lets us to dynamically scale. In on-premises, a lot of space is required for seating the servers, but in the cloud, not such space requirement is needed for the organization.
In on-premises, we also need a dedicated team to manage the hardware and software. But in the cloud, no such dedicated team is needed. For most of the services, they all get managed by the provider. And even if we need to manage them, the provider gives us options to manage them through the console, which is a lot, lot simpler than managing directly from the device.
In the on-premises, we need to admit the fact that data security is poor, due to the cost involved in procuring the hardware and software to provide the security. But in... In the cloud, the security standards are high due to the investments the providers have done to secure the data and to meet the compliance. In traditional DC, there will generally be less focus on data recovery and we kind of settle for less when it comes to data recovery due to the cost involved and the effort involved in replicating the data.
And even if we set up a high performing data replication, a lot more can be done in the cloud for the same cost. The on-premises environment lacks the flexibility needed today. Like, if I need to restructure the IT for the new age business needs, then the on-premises is not so friendly for such changes.
But in the cloud, I can easily undo or tear down an environment or migrate to the new environment and tear down the old environment in few button clicks. Now, looking at the number and the frequency of the releases that happen, scheduling updates would be a full-time job. But with cloud, the updates happen.
automatically. In on-premises, if I'm working with a team that is spread across the globe, working with them in unison and sharing the data is a tedious work. But with the cloud, there are a lot of tools and technologies put together that makes it easy to share the data with other members in the team or with the new prospective customer. In on-premises, if I'm working with a team that is spread across the globe, working with them in unison and sharing the data is a tedious work. But with a cloud, there are a lot of tools and technologies put together that makes it easy to share the data with other members in the team or with a new prospect customer I will be working with who is present across the other side of the globe.
In on-premises, the data will be present inside the DC or inside the on-premises DC. And even a valid user trying to access the data from outside the organization is a tough task. But with a cloud, as long as someone has internet, providing the person access is just a few mouse clicks away. Talk about implementation. Building an on-premises DC takes time.
I was working on a project a few years back and the goal to make a DC go live at that time was after two years from the date we were speaking about it. But with the cloud, we can bring our DC in the cloud within weeks. After all this explanation and comparisons and talking about benefits, Paul's manager was fully enlightened and wants to have his IT environment in the cloud.
But our Paul is not done yet, and he took his manager through another level of discussion about the cloud, just like I'm going to take you now. So let's talk about what is cloud computing. Now cloud computing is the ability to deliver on-demand computing service over the internet and that too on a pay-as-you-go basis. Now you might think, well, what does that mean? Let me explain.
Now with cloud, rather than managing files on local storage devices, cloud computing makes it possible to save them over the internet and access them from the internet. So I can be a mobile person and I'm moving from place to place, but I can access the storage from the internet because it's in the internet. And if I want to give access to somebody else, again, it's easy for me to give access to them as long as they have internet connection available with them. Now let's move further and talk about or get understanding on the types of cloud computing. We can categorize the different types of cloud computing based on two wide categories, one being a deployment model and the other one being service model.
Let's talk about the deployment model first. Deployment model is categorized into three types. First one is public and then private and then hybrid cloud. In other words, public cloud, private cloud and hybrid cloud.
It will be easy for me to explain and also it will be easy for you to understand if I walk you through this example. Consider the different types of vehicles we use. to commute from one place to another.
For example, if I want to travel, I can pick a bus which is accessible to anyone. I get in and I pay for the seat that I occupy and I pay for the time that I will be traveling in it and I'm done. Cost is very less here. A similar kind of thing happens in the public cloud.
I pay only for the resource that I use and I pay for how long I use it. If I use less, I pay less. If I use more, I pay more for that month.
Simple. On the other hand, private cloud is like... buying your own car and using it for commuting purpose.
Here, I pay a huge amount upfront and it is all owned only by me. I do not pay for it in an Aldi fashion, but completely and all upfront. The cost here is very huge. And thirdly, if I want the best of both types, like the comfort of the own car and still don't want to pay all upfront, otherwise want only to pay for the time that I use the service, I can rent a car. Similarly, I can have it in a hybrid environment.
Meaning, if I already have a DC, I can integrate it with the cloud and use both the DCs and that would become a hybrid environment. Alright, so that was good of a learning. Let's summarize the types of cloud based on deployment models.
And as we know now about the public cloud, public cloud is a cloud infrastructure that's made available to the general public over the internet and it is owned by the cloud provider. some of the major players as cloud providers are AWS, Microsoft Azure, IBM's Blue Cloud, and SunCloud. And private cloud? Now this cloud infrastructure is exclusively operated by a single organization.
It can be managed by organizations or third party and may exist on-premises or off-premises, doesn't matter. But the point here is this is exclusively operated for a single organization. And some companies that provide private cloud are AWS and VMware.
And hybrid cloud is the best of both public and the private cloud. For example, the federal agencies, they opt for private clouds for storing and developing personal data. And they use public cloud to share the non-sensitive data with the general public or with other government departments.
Now let's talk about different clouds based on the service model. If we need to categorize them broadly, we can categorize them as Infrastructure as a Service, IaaS, or Platform as a Service, PaaS, or Software as a Service, SaaS. They sometimes are referred to as IaaS, PaaS, and SaaS. Now at this moment, you could be like this guy thinking, Sam, I thought you're done categorizing the cloud. Now you're going to talk about three more categories?
which one should I pick? Well, let me explain. If all that you want is just a VM and you have all the expertise to install the software on top of it and make it work, then go for IS. If you only want a platform or an interface to program or an interface to upload a program and make it run, then pick PaaS. Or if all that you want is a finished product hosted in the cloud and be able to access it through the internet, then go for SaaS.
Here you get a username and password for an application. and you can begin to customize the application based on your needs. All right, let's talk about IaaS in a bit more detail.
IaaS, it gives basic computing infra. It's based on a pay-for-what-you-use model. And some of the cloud providers who are big players are AWS, Azure, and Google.
And here, the users generally will be IT admins. In PaaS, the provider gives you a... platform or a runtime environment for developing, testing, and managing application. It's platform ready. You buy the platform, you upload your code, and you start working on it.
And it allows the software developers to deploy applications without running the underlying infrastructure. And as you might have guessed by now, the interesting candidates who would use PaaS is software developers. And in SaaS, everything is managed by the vendor, be it the hardware or the software, it's managed by the vendor. and we pay for the service and we pay for it through a pay-as-you-go subscription model.
And as you might have guessed, the end users here would be end customer itself. Alright, let's put together everything in the same page and compare and contrast the different types of service models. In this chart, it explains the difference between the four models, starting from on-premises to IaaS and then PaaS and SaaS.
It is self-explanatory. that the resources managed by us are huge in on-premises and little less in IS and further less or reduced in PaaS and nothing to manage when it comes to SaaS. Let me also explain the different types of cloud services through an example like this. Let's say that you have a crush on cake and you're planning to bake one yourself. Now let's look at the options you can have.
You can make all the ingredients yourself be it the flour, butter and you know put together and bake the whole thing yourself using your own oven, pan, you know, the needed water and the rest. You get the idea, right? Everything is yours and that's on-premises. All that you use is owned by you and nothing is managed by the vendor.
The other options you can have is buy the ingredients and mix and bake the cake yourself. Now, this would be like IaaS. Here, the infra is managed by the provider and we get to use it and customize it.
the way we want it. Here the cloud service is a shared responsibility. The other options you still have on hand is simply pick a phone and order a cake. Now this is lot simpler than the rest we discussed so far.
You know it's simply picking the phone and ordering the cake and pay for it when it arrives. Simple. And when it reaches home you will have to arrange the table, garnish the cake if that's needed and then enjoy the cake. It's the same way with PaaS.
Just get the platform in which you would run your code and upload your code and start running your application. Here, you and the vendor still share the responsibility. You still have one more option left, that is, simply go out and dine.
This is a lot, lot simpler that it requires no effort from us at all. You buy the fully finished and garnished cake and pay for it and walk out. No responsibility on making the cake. It's the same way with SaaS. We buy the finished product and pay for the finished application.
As next thing, let's talk about the different cloud providers. Amazon Web Services, AWS, is a cloud computing service provided by Amazon. It provides a mix of infrastructure as a service, IaaS, platform as a service, PaaS, and package software as a service called SaaS offerings.
Microsoft Azure, formerly known as Windows Azure, is a cloud computing service by Microsoft, and it sort of specializes in using cloud for building, testing, deploying, and up. managing the applications through the servers throughout a global network that Microsoft manages. It also provides software as a service, platform as a service, infrastructure as a service, and it supports lots of different programming languages and tools and frameworks, including both Microsoft and third-party software and systems. IBM Cloud is a cloud computing service offered by IBM. IBM Cloud includes infrastructure as a service, software as a service, platform as a service.
Now, the difference is here it offers through public. private, and hybrid cloud delivery models. VMware, on the other hand, is a subsidiary of Dell Technologies and provides cloud computing and platform virtualization software and services. It was the first commercially successful company to virtualize the x86 architecture. Google Cloud Platform, on the other hand, is offered by Google.
It's a suite of cloud computing services that run on the same infrastructure that Google uses internally for its end-user products such as the Google search and the YouTube you're familiar with. Alongside a set of managed tools, it also provides cloud services including computing services, data storage services, data analytics, and machine learning services. DigitalOcean on the other hand is headquartered in New York City with data centers worldwide.
DigitalOcean provides developers, cloud services that help to deploy and scale applications that run simultaneously on multiple computers. As of January 2018, DigitalOcean was the third largest hosting company in the world in terms of web-facing computers. Let's talk about cloud computing in AWS. Amazon Web Services, AWS, is a cloud computing service provided by Amazon, and these services are accessible over the internet. And because AWS provides infrastructure as a service, it's a flagship offering.
We can create and deploy any type of application in the cloud on top of the IaaS that Amazon provides. And you know, the best part here is the subscriptions are pay as you go type. You use less and pay less and only for what you have used.
You use more, pay more, but still less per unit for the service used. Attractive, isn't it? Now let's talk about the life cycle of the cloud computing solution. The very first thing in the life cycle of a solution or a cloud solution is to get a proper understanding of the requirement. I didn't say get the requirement, but said get a proper understanding of the requirement.
It is very vital because only then we will be able to properly pick the right service offered by the provider. Getting a sound understanding, the next thing would be to define the hardware. Meaning, choose the compute servers that will provide the right support where you can resize the compute capacity in the cloud to run application programs.
Getting a sound understanding of the requirement helps in picking the right hardware. One size does not fit all. There are different services and hardwares for different needs you might have, like EC2 if you're looking for IaaS, and Lambda if you're looking for serverless computing, and ECS that provides containerized servers. So, there are a lot of hardwares available.
pick the right hardware that suits your requirement. The third thing is to define the storage. Choose the appropriate storage service where you can backup your data and a separate storage service where you can archive your data locally within the cloud or from the internet and choose the appropriate storage. There is one separately for backup called S3.
and there is one separately for archival that's for glaciers. So you know you knowing the difference between them really helps in picking the right service for the right kind of need. Define the network. Define the network that securely delivers data, video and applications. Define and identify the network services properly.
For example VPC for network, Route 53 for DNS and direct connection for private P2P line from your office to the AWS data center. Set up the right security services, IAM for authentication and authorization, and KMS for data encryption at rest. So there are a variety of security products available. We've got to pick the right one that suits our need.
And there are a variety of deployment and automation and monitoring tools that you can pick from. For example, CloudWatch is for monitoring. Auto-scaling is for being elastic.
And CloudFormation is... Define the management process and tools. You can have complete control of your cloud environment if you define the management tools which monitors your AWS resources and or the custom applications running on AWS platform.
There are a variety of deployment, automation, and monitoring tools you can pick from, like CloudWatch for monitoring, autoscaling for automation, and CloudFormation for deployment. So knowing them will help you in defining the lifecycle of the cloud computing solution properly. And similarly, there are a lot of tools for testing a process, like CodeStar and CodeBuild and CodePipeline. These are tools with which you can build, test, and deploy your code quickly.
And finally, once everything is said and done, pick the analytics service for analyzing and visualizing the data using the analytics services, where we can start querying the data instantly and get a result. Now, if you want to visually view the happenings in your environment, you can pick Athena and other tools for analytics, or EMR, which is Elastic Map Produce, and Cloud Search. Alright, enough of theory and let's have a quick look at how two services in AWS, EC2 and S3, work together and benefits us. Here are two ID professionals talking to each other. One says, I have an application which takes a lot of storage and works only on Linux system, which I do not have at the moment.
And the other one is a smart guy and he immediately replies that he could use S3 to store data and retrieve data. and use EC2 for all his compute needs. And then the curious conversation builds up and the first person wants to know what is EC2 and S3.
And the second guy starts to explain that AWS EC2 is a web service that provides a secure and resizable compute capacity in the cloud. And EC2, it can also be used to launch as many virtual servers as we need. And about S3, he explains, AWS S3 is a simple storage service provided by AWS. And... about S3 he explains further saying that using Amazon S3 we can store and retrieve any amount of data at any time on the web.
Alright so the very first thing is to have an AWS account so create an AWS account and second thing is to create an AWS S3 bucket and upload the files there you know the files that EC2 server is going to pull from will get stored in S3 as first thing. Alright so the first thing is to create an S3 bucket. So let's create an S3 bucket and let's call it as a website bucket.
And these names will have to be unique. So let's see if this bucket name is available. It says bucket name already taken or already exist. So let me top it up with SL, meaning simply learn.
All right, so we were able to create a bucket. And in that bucket, let me upload a content. That basically is going to be my index file that's going to go and sit in my web server. So let me also make it public.
and view it. Alright, so this is the content that I have stored in my S3 and this is the content I'm going to push to my EC2 server. Second step, create an AWS S3 bucket and upload files. We're done with that. Third is to create an EC2 instance.
That's in other words, create a virtual machine in the cloud. Let's go and create it. Alright, the third thing is to create an EC2 instance.
So let's create an EC2 instance. It's plain and it's very simple. I'm going to keep everything as defaults here. Alright, so I've launched an EC2 instance.
As you see, it's running. I also have an IP address, public IP address here. With that, I have logged into this EC2 instance.
And I'm in the folder slash var slash www slash html. And as you see, there is nothing in there at the moment. And this server also has Apache installed in it, as you can see. Now I've browsed to the IP address of the EC2 instance and it's showing a page, which is the default Apache page. All right.
If I had any files in this folder, that would get shown as the web page instead of the default page. Our task is to save files in S3 and move them to the EC2 instance. So S3 is going to act as a storage or a repository or a source code control in this example. All right. So let's do that.
All right. The third step is to create. your EC2 instance and that's what we have done and the EC2 instance has no files in it and the fourth step is to synchronize the source code bucket with the EC2 instance. Let's do that.
The actual command to do that would be aws s3 sync and then the name of the bucket from which we're going to pull the code and the folder in which we're going to put the code or the data. All right so it has downloaded something. Look at that and now if we go back to the test page and to refresh, there you go.
It's showing the page that it pulled from S3. So here I can use S3 as the source code control bucket and any information that I put in there will get reflected in EC2 instance once I do a sync every day and that's how I use S3 as my storage for EC2. All right, finally we were able to synchronize S3 bucket and the EC2 instance and we were also able to view the results. in the web browser of the EC2 instance. The data was copied from S3 to the EC2 instance and that we were able to view from the web browser.
All right, so what did we learn? We learned about what is cloud computing, understood the basics of cloud computing. We understood about the types of cloud computing based on deployment models and service model.
And then we understood how cloud computing is with AWS, how AWS is a cloud computing service provider and the benefits of using AWS over other providers. We also looked at lifecycle of the cloud computing solution and finally we did a demo on... AWS EC2 and S3 and we saw how EC2 is dependent on S3 or how we can use S3 to be dependent on EC2 and sort of act as an storage for the compute instance. I really hope you enjoy this video. I'll meet you in the next video.
Thank you. Click here.