Hey, everyone. I'm Mara and this is Gans. In a last lesson, Gans went over the different types of services and cloud options that you have and we kind of came to a consensus that we're going to use AWS for this course because of its simplicity and also it's easy to access resources. But again, we also want you guys to use whatever platform you guys feel is best fit for you. So let's go on and dive in straight to AWS services. So AWS is basically a bunch of different services that do a bunch of different functions. So if you log into your AWS console for the first time, you'll see this huge list of services and we don't even capture the whole thing because this is just a screenshot. So you might be overwhelmed right off the bat, because what are these, what are these different services even do? And a lot of the services have the best names in the world so we're going to hopefully try and uncover the magic behind that. What we feel like is the most important services to use are the EC2, S3, and RDS. EC2 stands for Elastic Cloud Compute, and essentially it's just your virtual machine or your server that you use to run your code or business logic, all that stuff. S3 stands for Simple Storage Service, and that is basically your regular file service, so any time you want to store files onto a hard drive or something like that, you'll typically use S3 to connect over FTP, your file server. The last one is the Relational Data Service, so this is essentially, if you come from a standard let's say a web application standpoint, this would be your database service, and you typically, this is going to be your relational database services. So MySQL, Aurora Postgres, bunch of different options you have for creating different types of databases that Amazon offers. These are probably the most three important ones, we're going to go and do a deep dive in a sec, on how do you like? Let's say initialize your first virtual machine and how to just store some EC files onto S3. Before that, we kind of want to do a quick dive of some other services that are possible, that you're able to use on Amazon. There's different categories so if you recall from here. Every group of services has kind of a group name so Compute, Storage, Management Tools, Mobile Services, Application Services. For, let's say the Computer Resources, this will probably be the most important parts Virtual Machines, where you do your computation, Load Balancer, which helps you scale let's say, as Gans was saying in the last lesson, where in the daytime you have more traffic, more people requesting your services, you want to kind of scale up, and build more virtual machines. Over time, if you want to scale down, you just start cutting virtual machines left and right, and that's what the Elastic Load Balancer will do. There is also some new cool services such as Docker or even Lambda, which are basically small snippets of code or in Docker's case, it's little containers that do one function and you can easily scale up and down, based off of that. For databases, there's a bunch of different ones so RDS, which is what we mentioned earlier. That's your typical traditional relational database that you'll find mostly on almost all web applications. Recently, with the huge burst or the explosion that big data came onto the scene, NoSQL databases have been the new database to use nowadays due to its fast inserts. You also have some other options, S3 which is your file server and then also ElastiCache, which will help you cache data and have easier search queries instead of a slow one of all like N operations and stuff, like you would have 0 1 operations instead of 0 1 N, let's say. Then, of course, there is also another explosion with DevOps where instead of you having to write code that works only on your machine, DevOps kind of help abstract this entire process out so your code, that works on your machine should work on all machines and you'll have unit testing and integration testing all built into the same system. So the DevOps suite here, which you see on a screen is geared toward helping you get that pipeline up and running. And lastly, of course, we can't talk about cloud computing class without some Big Data resources. So Big Data is a huge explosion that, explosion that happened within the last probably decade, and Amazon actually offers some great resources. So Elastic MapReduce, Data Pipeline, and Kinesis, which correlate to MapReduce, Spark, Kafka, which are Apache products. It's probably any time like you wanted to upload data, do some processing on it, Amazon kind of abstracts that and makes it really easy for you to use. So I think that's kind of a good cover of all the different services that Amazon has to offer. Let's go in and deep dive down into Amazon servers itself. All right, so you'll know. So the one thing I want to add to that is all these services, if you're probably wondering how you're going to use them from say your drag board, these are two ways accessing, one of their API's, for example the S3, It's a storage. Think of it as a really big hard drive, and you're taking let's say pictures from your drag board periodically, and via the API for S3, you can upload images or whatever file you have but it's stored in there, and there's another way to access these services through the Web Panel, so S3 you can log into the console, it's going to show you now, collect the files there, but typically you'll use them via these API's. Each of these services are programmatic API's, you can access either from the client side or on your virtual machine running, which is the EC2. If there is really one server you need to learn here, this should be the EC2, all it is, is think of it as your server. With the operating system of your choice and all the middleware and things of your choice. So that is your go to thing, first, if you're comfortable with that, you can probably do most of the projects you want to do for this course just with EC2, and the other things, S3, or the next levels, so anyway. Yeah just as Gans said, EC2 is probably the most important service that you should figure out how to use. So this is the page they land in when they log into. Well prior to this, you'll have to sign up for an account, which we'll go into more detail later, but he's logged into the free Amazon AWS account and when you log in, this is what you're going to see. Yes, we're at about on EC2 dashboard you'll see a bunch of different resources, what you have in use right now. We're going to go ahead and click that "Launch Instance" button that you find here. Let's go and to click that. So you're trying to launch a new EC2 instance. Yes. Okay. Right after that, you can have any type of image that you want right off What is an AMI? You should say what is an AMI or is an image. AMI is an Amazon machine image, where an image is basically some sort of snapshot of a server. So let's say you created, you boot up your computer and saw an operating system install some packages and you decide to take a snapshot at that moment in time. What I can do later is when I create a new machine, I can just take that image, just do a straight copy and I'll have the resources all available for me without all the heavy lifting installation. What you are saying is, let's say you want to spin off a server, with Linux, Apache, MySQL, PHP, LAMP Instance right? Typically, what we'll do right now install Linux to get all these packages installed. In here, Amazon has all these packages premade and you can just spin up, "Hey, I want a LAMP Instance," so you selecting Do you have a LAMP Instance here for example? You can definitely find it. Okay, but anyway, it's got one. It's just prepackaged or is combined with middleware available. You just select it and you start it. For us, we're going to go ahead and start a Ubuntu Server, so we personally love using Ubuntu more than the CentOS but you can choose whichever type of service you want. You started a war out there. I know, right? All right here, you'll have your different types of compute powers. So right off the bat, Amazon will tell you which services are free to you're eligible. In other words this is the power of the server, it's how much memory a server is going to have or the virtual machine is going to have. So the free tier is the lowest possible one, but if you think you need more you expand later, but for project purposes a free tier is good enough. What are the other things? Memory? Okay, you can increase the amount of memory you need, so if you need to do a lot of M Memory Processing or something like that, or parallelization you want to increase your number of course you have, you definitely have those options. Also, you have options to change how much storage device you have on your hard drive so, which I think is an option later on and it can also choose between like SSD's, which are Solid-State Drives, which are typically faster than your traditional hard drives. For this demo, we're just going to pick the free tier and here we'll have some very specific instance, Instance Specific Settings, for the most part we don't have to worry too much about it. You could do some cool stuff with the networking subnetting, but for the purposes of this demo we're not really interested in that. Now all EC2 images typically come with an eight gigabyte storage device, which is pretty much all you need typically for most of your applications. It would be surprising if you even reached one gigabyte, unless you have a service that logs a lot of files, but if you need it, definitely have the option of increasing the size. One option we might suggest instead of increasing the size of your hard drive is maybe offloading a bunch of that data into S3, or one of the other storage devices if available. Here, we can go ahead and tag it, so let's say we want to give it a name, EC2 Demo. Right, and here is probably the most important part of the configuration. Your virtual machines that you create are kind of machines that have everything blocked off. What we mean by that is, let's say if we create a web service on that EC2 device or EC2 image, if we want to view a web page on it, we have to open up specific rules, or specific ports in order to access it. We're going to go ahead and add that rule right now. We're going to go and search for HTTP, which will automatically make it port 80, and you might have some complex services so maybe a MySQL or PostgreSQL, open up that port if you want your PostgreSQL to connect to that EC2 instance. We also has some options of making it, so only certain IP's can access it but we're not too worried about that. Then we'll just do, just to make it available for everywhere. All right. Now we're ready to launch. This a quick review of everything that we've done and I'm just going to click a button. This page is to essentially allow you to access your EC2 instance. So typically, when you access any sort of machine, you need to give a username and password. AWS does one step further, it makes you install something called the key pair. So what happens is, there's a pair of keys, one that starts on the EC2 instance and one that you download. You can only download that pair once in your lifetime and you will not be able to download it ever again. And that's a way to keep it secure. So we're going to go and create a new pair, call this EC2 Demo and download. So now, I have it downloaded to my downloads, and we're ready to install the instance. So now, let's go ahead and go to the instance page to see its status. So after that, because it's a new virtual machine, it's going to take some time to allocate the resources on the cloud, just get the image installed and get it up and ready for you to use. And by the way we're going to go into more detail how to sign up for these services. It's kind of just to give you a flavor of the service, so don't worry if you can't follow along yet. The next lesson will give you more detail, a step by step how to get the keys in extra. All right. So I just got the EC2 Demo. So right now, I'm going to go ahead and move my file that I just downloaded, which is my private key. And then, we're going to go ahead and apply the necessary permissions on it, so that will be a chmod 600 onto that specific private key file. Now, I'm going to go here, I'm going to right click Connect. And it's going to tell you exactly how you can connect to that virtual machine. So for us, they already give us a link to do it. I'm just going to go ahead and copy that. And also, I made a mistake just now, it needs to be chmode 400 which stands for readonly. Now if I go ahead and paste that line in, it's going to ask you about authentication, just go ahead and say yes. And just a slight error. Now we're able to access our virtual machine. So I can go ahead and do typical commands that I would do on a typical Ubuntu server. So let's say pseudo got app update. So you're inside the virtual machine now, right? Right now. You're administrating the remote machine. Yeah. So it took us maybe five minutes to just get an EC2 instance up and running. And we already have the necessary resources to run just a typical web application or an IoT application that we want. Great. Right now, I'm going to do one more demo for S3. So here in S3, it's basically kind of like a file server. So some terminology that S3 uses is buckets, which is basically projects or these high-level folders that you can classify your data against. So for instance here, we see something called Jiraconfluence. So if you go into that, we see that in this project we have two folders Confluence and Jira. And then here, we have a tar file which is a backup of one of our confluence servers that we have. If I want to upload a file on here, using the GUI I can easily do that. Just upload a file. And I'm just going to go ahead and go through the pages. And now, my file's uploaded onto the servers. And a cool thing now is, as Gans said earlier, right now we're using the GUI or we're using the console-based commands to do our work. If, instead, we want to connect using some sort of device with the rest API, we can easily access this example dot text file that I just uploaded or any of the files that are on S3. So that's kind of a quick demo of the different services that you can use on AWS. Where is the list of APIs for all these services like the demo pages? The list of APIs? Yeah. Or S3, let's say. So listen, if you want to see more of how to use API-centric programming, those will be on this Amazon documents. So that's a quick search on the internet. Just search AWS S3 documentation and you'll have a console-specific and even a rest API-centric thing that you can go ahead and look at. It's all there. And Amazon does a great job of having those documentation available and very detail-oriented. So, it's all on there. So I think that's a good overview of some of the services. And we'll go ahead and do architecture of different AWS applications next.