AWS Tutorial for Beginners
AWS is the largest cloud player in the market today. According to Forbes, AWS grew US$2.3 billion in revenue just in the second quarter of 2019. If you are planning for an AWS career and looking out for a resource to learn AWS, then this Amazon Web Services tutorial is the right place for you! Why Cloud Computing? Let’s understand this using an example: Let’s say, you are developing an application, something like Instagram. Now, you have this application ready on your computer. The next step is to make this available on the Internet so that people can browse and go to this website, right? How would you go about it? You will have to buy a server, on which you will be uploading your application. Next, you will have to ensure that your application is always available, by hiring people to manage your server on which this application is hosted. And of course, machines are bound to breakdown or they get outdated; therefore, you will have to keep a check on the server’s hardware whether it is up to date or not and be ready to spend some money if anything breaks down. Finally, the most important aspect, as your application grows in popularity among your users, your servers will become overburdened with all the traffic. You will have to think about scaling up, by keeping a constant check on the traffic on your application. Seems do-able? Well, the above will not only take a lot of effort but it is going to be extremely expensive too! Wondering, how to solve it? Well, the answer is Cloud Computing. Let’s go ahead in this AWS tutorial and understand ‘What is Cloud Computing?’ What is Cloud Computing? Taking the same example forward, In Cloud Computing, you can rent as many servers from your cloud provider as you want, and the cloud provider will charge you based on the number of hours you used your servers. If you used a server for 1 hour, you will only be charged for 1 hour; ‘no strings attached!’ You can configure redundancy in your servers, i.e., you can set up multiple copies of your servers in different data centers, which means if one of your servers becomes unresponsive, your application will still be served from any of the other deployed servers, hence ensuring high availability of your application. Any hardware updates or breakdown of any server will be handled by your cloud provider. This will avoid a hole in your pocket! Finally, you can configure autoscaling on your server fleet, i.e., whenever there is an increase in the traffic of your application, your cloud provider will automatically scale up your servers. And yes, if the traffic or the load decreases on your website, your servers will be scaled down automatically. So in a nutshell, What is Cloud Computing? The use of rented remote servers on the Internet, rather than using one of your own, is known as Cloud Computing. Cloud Computing has led almost all new businesses to shift to the cloud; hence, not only are they saving the initial cost of starting a business with the correct IT infrastructure but their application is now being handled by the cloud providers like Amazon, Microsoft, and Google. Amazing, isn’t it? Summarizing, with Cloud Computing, you are getting a lot of added benefits, along with the drastically decreased infrastructure cost. Thanks to the amazing pricing models offered by your cloud provider. Now, who are these cloud providers? Which companies are offering you cloud services? Let’s explore the same in our next section in this AWS tutorial. The cloud business or services are offered by a lot of companies. Among them, the top three companies in terms of market share are the following: Amazon Web Services Microsoft Azure Google Cloud Platform But why is this blog about Amazon Web Services (AWS)? Well, let’s discuss this in our next section of this AWS tutorial. Well, to answer this question, further in this AWS tutorial, let’s have a look at some statistics: AWS alone owns around 40 percent market share in the market, which is huge when you compare it with the second-largest cloud provider, i.e., Microsoft Azure, which owns around 16 percent of the market. AWS is more reliable when compared to Microsoft and Google. This was concluded, based on the cumulative downtime of the past 4 years. AWS has had the least time in cloud outages, compared to Google Cloud and Microsoft Azure. AWS is a more mature product as it was launched way back in 2006. Keeping these facts in mind, when any new company enters the cloud space, it always looks for a cloud provider that has proven a history of handling complex applications, and when stakeholders think like this AWS has a lot to show in its past decade of cloud-hosting history. For example, Netflix the world’s biggest premium video streaming service is completely hosted on AWS for its application needs. The world’s largest e-commerce company, Amazon is also hosted on the AWS infrastructure. Amazon Prime Video, which is yet another premium video streaming service from Amazon, is also hosted on AWS. When you see such big players relying on the AWS infrastructure, you as a new guy in the cloud space would naturally be inclined toward AWS for your application-hosting needs. Okay, we now understand why businesses prefer AWS for their hosting needs. Next, let us understand why it is beneficial for YOU to learn AWS. Well, if most of the companies are preferring AWS for their hosting needs, it is quite obvious that they would require AWS Engineers for their infrastructure on AWS. This directly impacts the requirement of AWS-proficient candidates in the industry, in turn creating ample job opportunities for you to apply for. This is exactly why you should learn AWS. In this AWS tutorial, let’s summarize how it is beneficial for you to learn AWS: It provides more job opportunities Since it is a mature product, there are fewer chances of changes in the future, hence offering job security It is also more reliable when compared to Google and Microsoft Azure So far in this AWS tutorial, we saw that AWS is the cloud provider that we should learn first when making a shift to the cloud sphere. Now, let us go ahead and understand what exactly AWS is. What is AWS? Amazon Web Services (AWS) is a cloud service provider by Amazon Inc. It offers cloud services in compute, storage, database, content delivery, networking, etc. Most of the offerings from AWS are Infrastructure as a Service (IaaS), but it also offers services in PaaS, such as Beanstalk and Lambda that are a hit among its users. AWS offers you all the necessary tools you would need to set up your IT infrastructure, without buying anything. From this AWS tutorial, so far, we have seen why we should learn AWS and what exactly AWS is. Let’s now move ahead and learn about the services that AWS has to offer. AWS Services AWS has around 100+ services to offer. To make it easy to understand, we will be covering only the important services in AWS, which you would be using day in day out as an AWS Engineer. With the intent of making learning simplified, in this AWS tutorial, we have divided the AWS Services into the following domains: Compute Storage Database Security Management Engagement App Integration AWS Compute The compute services in AWS are all about high-end servers which can be used to host a website, process backend data, etc. Let’s look at some of the important services in the compute domain: AWS EC2 AWS Elastic Compute Cloud (EC2) is an Infrastructure as a Service by AWS, which gives you a server with the desired OS, processor, and RAM. You can do anything on this OS, from installing software to hosting a website. Here, you have full control of the OS. Elastic Beanstalk Elastic Beanstalk is a PaaS offering from AWS that helps you in hosting a website. Since this is a Platform as a Service, you do not get access to the full OS. What you get is a dashboard and from this dashboard, you can upload your website. Technically, it’s an EC2 service with no access to the operating system and the required software pre-installed. AWS Lambda AWS Lambda is yet another Platform as a Service from AWS. This service also does not give you access to the full OS and cannot host a website. It can only be used for backend processing. This service gives us a dashboard, where we can upload our backend code. Its only tasks are to receive the request, process it according to the code uploaded, and send the results back. Autoscaling Autoscaling is a feature which can only be used in conjunction with a load balancer. This feature helps you scale the number of compute servers up or down based on parameters, such as CPU usage, memory usage, network throughput, etc. AWS Load Balancer AWS Load Balancer, as the name suggests, balances the load among multiple servers deployed at a particular instance. For example, let’s say, you have multiple servers running the same application for high availability. A user would not know which server he has to go to, right? The user will just know the URL of your application, and this URL will redirect to the load balancer, which will route the user’s request to one of the servers. Now, there are multiple ways a load balancer can decide which server a request should be sent to. These ways are basically different techniques that a load balancer can use. This leads to three types of load balancers: Classic Load Balancer: Balances the traffic randomly among healthy servers Application Load Balancer: Balances the traffic based on the URL/Path of the application Network Load Balancer: Balances the traffic based on the web protocol being used to interact with the servers, for example, HTTP, FTP, etc. AWS ECR AWS Elastic Container Repository is a fully-managed Docker container Repository. It helps you store your Docker containers in a highly available and scalable architecture. AWS ECS AWS Elastic Container Service is a highly available container orchestration service. It enables you to control your Docker applications using simple API calls. Let us now understand the Amazon Storage services from this AWS tutorial. Amazon Storage Amazon S3 Amazon Simple Storage Service (S3) is a scalable storage service offered by AWS. It stores files in the form of objects, and each object can be of size 5 TB maximum. AWS S3 Glacier AWS S3 Glacier is a backup service from AWS. The files that we store on S3 can be configured to follow a life cycle wherein if a file is not accessed for a particular amount of time, it can be migrated to low-cost storage, which is AWS S3 Glacier. AWS Elastic File System (EFS) AWS Elastic File System (EFS) is a storage solution that can be used to mount shared drives across multiple servers, i.e., a shared network drive that can be mounted on multiple servers and can share files in real-time. AWS Storage Gateway AWS Storage Gateway is a hybrid cloud solution that helps you access or store files on AWS with the lowest latency possible. It is achieved by creating an on-premises VM that acts as a gateway between AWS and your on-premises system. This VM recognizes the frequently accessed files and caches them for low latency. AWS Databases Amazon RDS Amazon RDS is a ‘managed’ relational database service, i.e., it is a service that can manage relational databases for you. It can do various automated tasks, such as doing security patches, backups, etc. DynamoDB DynamoDB is a NoSQL database service from Amazon. It supports key-value and document data. It also supports point-in-time recovery, on-demand backup, and restores. Amazon Redshift Amazon Redshift is a data warehousing service from AWS. It can provide mission-critical analytics and is used by most of the Fortune 500 companies and even startups! Amazon ElastiCache AWS ElastiCache is an in-memory data store and cache service provided by AWS. It improves the performance of your web applications by caching the frequently queried data. Further in this AWS tutorial, let us understand the AWS Security services. AWS Security AWS IAM AWS Identity and Access Management (IAM) helps you manage access for resources and users in your AWS ecosystem. It helps you dynamically give granular access to AWS resources. AWS KMS AWS Key Management System helps you create and manage keys. It gives you a central place from where you can control all your encryption keys. Now that we are done with AWS Security services, let us now go ahead and understand AWS Management tools in this AWS tutorial. AWS Management AWS CloudFormation AWS CloudFormation helps you create a collection of AWS resources from a single click. With this tool, businesses and individuals can set up a large architecture with a mere click! AWS OpsWorks AWS OpsWorks is a configuration management service by AWS, which helps you manage and configure servers on AWS using Chef and Puppet. It allows you to configure both Amazon EC2 instances and on-premises servers. AWS CloudTrail AWS CloudTrail is a logging service from AWS. It provides the event history of all AWS account-related activities. It helps you in auditing, compliance monitoring, and governance. AWS CloudWatch AWS CloudWatch is a monitoring service from AWS, which helps you monitor AWS resources in your AWS account. You can also create alarms and specify actions whenever an anomaly occurs on AWS. Further in this AWS tutorial, let us understand AWS Customer Engagement services. AWS Customer Engagement AWS Connect AWS Connect is ready to deploy a customer contact center or a customer service center. It helps you register on a toll-free number and allows you to route the incoming calls on this registered number to agents who will be attending the calls. Every functionality of this app is automated, hence enabling you to set up a customer contact center in minutes if not hours! AWS Simple Email Service AWS Simple Email Service (SES) helps you send automated emails to the required recipients. It provides you with an API, which your application can use and send emails through code. Let us now move ahead in this AWS tutorial and understand how the AWS pricing works. Amazon is the most customer-centric company in the world. With the same intent, it has come up with some amazing customer-friendly pricing options in AWS. According to the AWS pricing model, you get the following benefits: Pay-as-you-go: With AWS, you pay for only what you use, i.e., no matter how many services or servers you launch in AWS, if you use them for say 1.5 hours, you will only be charged for 1.5 hours, nothing more nothing less. The pricing of the servers depends on the configuration of the servers, starting from as low as US$0.0047 per hour! Save when you reserve: If you commit to a machine for a particular amount of time, you can save up to 70 percent on your AWS bills! Let’s say, you want a server, which you know you will be using for a longer time, say 2 years. You can reserve your machine for 2 years and pay a partial or full-upfront bill for 2 years, which will save you around 70 percent on the bill if you had not reserved your server. Payless by using more: Yes, you read it right! With the pay-less-by-using-more feature, you get volume-based discounts, i.e., if you use more storage space on AWS, the pricing rate becomes less. The following is the pricing model: Up to 50 TB: 0.023 GB/month 51–100 TB: 0.022 GB/month More than 500 TB: 0.021GB/month You can further reduce your storage bills by classifying your data into frequently accessed data and infrequently accessed data. By doing this, your data will be divided between different storage classes, such as SSD, disk storage, and magnetic tapes. SSDs are faster, and hence the data that is frequently accessed will go on SSD. The data that is less frequently accessed will go on a slower mode of storage since it will be cheaper as well. It is very simple to begin working with AWS. There are no complex procedures to start off. The rest of this AWS tutorial is devoted to giving you the steps to follow for creating an AWS account and accessing the AWS Management Console easily. Step 1: Create an AWS account by providing personal and credit/debit card details. An amount of ₹2 will be deducted to validate your card. Step 2: Choose the plan you want from Basic, Developer, or Business plans. The Basic plan is free for 12 months with certain limits. The Developer plan costs $29/month and the Business plan costs $100/month. Step 3: Now, you will get access to the AWS Management Console. You just have to learn how to use the services. AWS Security Here you will learn about the AWS security aspects including the AWS shared responsibility model, global infrastructure security model, account security, service-specific security and so on. Security in AWS Security is the most prior thing in AWS. The advantage of using the AWS service is that you can reach the requirements of the most security-sensitive organization from data center and network architecture. If your desire is to maintain secure environments then clients can go to AWS cloud and also it permits clients to scale and innovate. The services can be selected optionally for clients, and the services will be provided at a lower cost. AWS Shared Responsibility Model – Security in on-premise infrastructure is quite different from that of in Cloud. AWS cloud security depends upon two the parties, i.e., the Firm and the Service Provider. While Cloud will be responsible for securing the information, Company will be accountable for shifting the kinds of data to cloud. This sense of cooperation is called as shared Responsibility Model. This not only increases the safety but improves it too. AWS Global Infrastructure Security – AWS Global Infrastructure Security allows a company use a variety of resources for its operations. The resources consist of facilities, hardware, network, software for which the provisioning is required. AWS Account Security Features – AWS is equipped with numerous measures such as access control, creation of IAM user accounts, data encryption, Trusted Advisor Security Checks to secure the information from any attack. AWS Service-Specific Security – The security measures do not only exist at each level of software, but exist into each application. Hence every application implements advanced security in order to secure the data. AWS Compliance This section of the AWS tutorial includes the topic of AWS compliance, various resources available for AWS compliance including AWS CloudTrail and AWS Configuration. Go through the https://intellipaat.com/aws-certification-training-online/ get a clear understanding of Amazon Web Services! AWS Compliance Overview AWS makes clients to identify the vigorous controls in place with the aid of Cloud Compliance at AWS at data safety and sustain security in the cloud. The compliance responsibilities will get exchanged since the systems are created on top of the AWS cloud infrastructure. Through tying mutually governance-targeted, audit-pleasant service characteristics with appropriate compliance or audit standards, AWS Compliance enablers construct on predictable applications; helping customers to set up and function in an AWS security manages atmosphere. How does AWS ensures the compliance of resources? Well AWS comes with two different solutions that help its customers keep track of their resources and have control over that- AWS Cloud Trail – It keeps tracks of all the AWS API calls and encapsulates it in encrypted log files. It can also be customized and configured to issue SNS notifications the time when log files are created. AWS Config – This solution provides details about all the AWS assets and their configurations. It can also be configured to issue alerts at the time of regulation violation. Amazon Web Services Cloud Platform Here in this section of the AWS tutorial, you will learn the AWS cloud platform. You will understand what is the AWS command line and AWS management console, among other things. AWS Cloud Platform It is essential to have a wide variety of technologies so that it is possible to develop, operate and manage our applications. The AWS comprises several cloud services, they can be well suited to your business or to your organizational needs. The services can be extracted from the AWS management console and Command Line Interface. AWS Management Console: It is a simple and instinctive user interface through this one can access Amazon Web Services. AWS Command Line Interface: It is a tool designed to administer the AWS services. It will be easy to manage the several AWS services through this single tool, by making sure that the tool is downloaded and configured.