Cloud Computing 101: Drifting Towards The AWS Cloud

Cloud Computing 101: Drifting Towards The AWS Cloud

Introduction: Who Is This Article For?

Are you new to cloud computing, or are you familiar with other cloud computing service providers and would love to explore AWS?

Welcome! Here’s your chance to learn about Amazon Web Services (AWS), the leading cloud computing service provider.

Cloud Computing

Cloud computing is the on-demand distribution of IT resources via the Internet with pay-as-you-go pricing. Instead of purchasing, operating, and maintaining physical data centers and servers, you can use a cloud provider to obtain technology services such as processing power, storage, and databases on an as-needed basis. Cloud computing helps you convert your infrastructure into software (as opposed to the hardware that it is), thereby eliminating the need to provide space, staff, physical security, and capital expenditure. It also eliminates assumptions and improper management of time.

Amazon Web Services (AWS) is the leading cloud computing service provider and offers a wide range of cloud-based services.

Cloud service models

These are of three types, each representing a different type of cloud computing level and offering a varying level of control over your IT resources. They are:

  • Infrastructure as a Service (IaaS): This service model provides you with networking, computing, and data storage space. It is the most flexible of the three, as it gives you the highest level of management control over your resources.

  • Platform as a Service (PaaS): This service reduces how much you need to manage hardware and operating systems, so you can focus on deploying and managing just your applications.

  • Software as a Service (SaaS): This gives you software—a completed product or an end-user application—that you only think of using, as the service provider runs and manages it for you.

Cloud computing deployment models

Likewise, there are three main environments that your application can be deployed in, called deployment models. These models show where and how much of your application is deployed in the cloud. They are:

  • Cloud: In this deployment model, your application is fully deployed and runs in the cloud, either through creating such an application in the cloud or migrating it there from a pre-existing physical infrastructure.

  • Hybrid: As the name suggests, this deployment model uses both cloud and on-premises services. In the future, it may be decided that your business will be migrated to the cloud to fully run there.

  • On-premises: Also called “private cloud”, this deployment model uses virtualization and resource management tools. While it may lack some of the benefits of cloud computing, it is sought after for its provision of dedicated cloud resources.

Benefits Of Cloud Computing

In general, the advantages of cloud computing over traditional IT can be grouped into six categories:

  • Capital expenses out; variable expenses in: Capital expenses (capex) are upfront payments you use in procuring, upgrading, and maintaining physical properties, regardless of whether you use them all the time or not. On the other hand, variable expenses differ, and you only pay for what you use and when you use it. What you maintain is reduced, and you can easily ask for services when you need them.

  • Benefit from massive economies of scale: Because hundreds of thousands of people and businesses use the AWS cloud, AWS can achieve massive economies of scale, which allows you to pay less.

  • Stop guessing capacity: Cloud services can be deployed whenever you need them; you do not have to make a prior provision for them. That way, you are saved from spending a lot of money on infrastructure in capacities you may end up not fully maximizing or needing to provision for more. In the cloud, you can get as little quantity as you need to start with, and you can either increase (scale up) or decrease (scale down) as needed.

  • Increase speed and agility: You don’t have to wait a long time for resources to be made available to you, as whatever you need is a click away and you can request it at the point of need.

  • Reduce total costs: You don’t have to spend money running and maintaining data centers, as AWS does that for you, and you have all the time to focus on your business and customers.

  • Go global in minutes: When you use AWS, you can deploy your application in several Regions, thus helping you reach a wider audience. AWS Regions also help reduce latency for your users in different parts of the world, resulting in a better experience for your customers.

Similarities Between AWS And Traditional IT

While we have discussed the advantages that cloud computing has over traditional or on-premises IT, it is important to review the similarities that they both share:

ServicesTraditional, on-premises IT spaceAWS
SecurityFirewalls, access control lists (ACLs), and administratorsSecurity groups, network access control lists (NACLs), and AWS Identity and Access Management (IAM)
NetworkingRouter, network pipeline, and switchElastic Load Balancing (ELB) and Amazon Virtual Private Cloud (Amazon VPC)
ComputeOn-premises serversAmazon Machine Images (AMIs) and Amazon Elastic Compute Cloud (Amazon EC2) instances
Storage and databaseDirect-attached storage (DAS), storage area networks (SAN), network-attached storage (NAS), and relational database management services (RDMS)Amazon Elastic Block Store (Amazon EBS), Amazon Elastic File System (Amazon EFS), Amazon Simple Storage Service (Amazon S3), and Amazon Relational Database Service (Amazon RDS)

This goes to show that you can do with AWS services what you would with a traditional data center, and then more.

AWS Services

Time after time, AWS has grown to accommodate each new business need in cloud computing, and this has given rise to over 200 services now on offer. As many as the services are, they can be properly arranged into 24 categories based on the solutions that they offer. The categories and the number of services each covers are listed below:

  • Analytics (18)

  • Application Integration (8)

  • AWS Cost Management (6)

  • Blockchain (1)

  • Business Applications (11)

  • Compute (10)

  • Containers (4)

  • Customer Enablement (4)

  • Database (9)

  • Developer Tools (14)

  • End-User Computing (3)

  • Front-end Web and Mobile (4)

  • Game Development (1)

  • Internet of Things (11)

  • Machine Learning (28)

  • Management and Governance (27)

  • Media Services (11)

  • Migration and Transfer (8)

  • Networking and Content Delivery (10)

  • Quantum Technologies (1)

  • Robotics (1)

  • Satellite (1)

  • Security, Identity and Compliance (23)

  • Storage (7)

For a basic understanding, we’ll be looking into a service from a few of the categories.

Compute Services

Amazon Elastic Compute Cloud (EC2)

Amazon EC2 remains one of the most popular AWS services, being one of the first. It allows you to create and run on-demand and scalable virtual servers in the cloud, making web-scale computing easier for developers. With it, you can configure security and manage networking and storage.

EC2 is an infrastructure as a service (IaaS); hence, you have complete control over your computing resources: you determine the operating system (OS), size, and capabilities of the servers you launch. It only takes you minutes to obtain and launch new server instances (Amazon EC2 instances) from Amazon Machine Images (AMIs), which you can then add to (scale up) or delete (scale down) depending on your computing requirements. Like most AWS services, you only pay for what you use.

Instance types are classified as one of the following:

  • General purpose: for broad use cases. E.g., a1, m4, m5, t2, t3.

  • Compute-optimized: for high-performance use cases. E.g., c4, c5.

  • Memory-optimized: for in-memory database use cases. E.g., r4, r5, x1, z1.

  • Storage-optimized: for distributed file system use cases. E.g., d2, h1, i3.

  • Accelerated computing: for machine learning use cases. E.g., f1, g3, g4, p2, p3.

    Each differs in function through its CPU, RAM, storage needs, and network bandwidth properties. An example of an instance is "t3.2xlarge", where:

    ‘t’ = family name,

    ‘3’ = generation (third generation),

    ‘2xlarge’ = vCPU and memory size.

Storage Services

Amazon Simple Storage Service (Amazon S3)

Amazon S3 is a persistent object storage system where each file becomes an object and can be accessed anywhere through a Uniform Resource Locator (URL). Businesses of all sizes use Amazon S3 to collect, store, protect, and analyze data of any amount in a wide range of cases, as it offers scalability, availability, security, and performance.

Amazon S3 is object-level storage; that is, to make a change to a particular part of the file, you have to make the change and then re-upload the entire modified file. It stores data as objects within resources called buckets. Loads of objects can be stored in a single bucket, and you can write, read, and delete objects in a bucket.

An object can be any data file: images, videos, server logs, or even database snapshots. Automatically, no data is publicly shared. In addition to the security conferred by AWS, you can also encrypt your data in transit and enable server-side encryption on the objects.

The Amazon S3 storage classes are:

  • Amazon S3 Standard

  • Amazon S3 Intelligent-Tiering

  • Amazon S3 Standard-Infrequent Access (Amazon S3 Standard-IA)

  • Amazon S3 One Zone-Infrequent Access (Amazon S3 One Zone-IA)

  • Amazon S3 Glacier

  • Amazon S3 Glacier Deep Archive

These are designed for different use cases, so what you seek to achieve will inform what class you are to go for. Like Amazon EC2, you only pay for what you use in Amazon S3. The costs may be influenced by: storage class type, amount of storage, number and type of requests, and data transfer.

Networking And Content Delivery Services

Amazon Virtual Private Cloud (Amazon VPC)

Amazon VPC is a service that lets you provision an isolated virtual network of the AWS Cloud (a virtual private cloud, or a VPC) where you can launch your AWS resources. Amazon VPC gives you control over the selection of your IP address range, the creation of subnets, and the configuration of route tables and network gateways. An Amazon VPC is divided into one or more subnets (range of IP addresses) that you can customize by creating a public-facing subnet with access to the public internet for web servers and a private-facing subnet with no internet for backend systems (databases, application servers, etc.). You can leverage multiple layers of security, including security groups and network access control lists (NACLs), to control access to the EC2 instances in each of your subnets.

A route table contains a set of rules called routes. These routes direct network traffic from the subnet, as each route specifies a destination and a target. The destination is the destination CIDR block you want traffic from your subnet to go to, while the target is what the destination traffic is sent through. Automatically, every route table contains a local route, and you can customize route tables by adding routes.

For each subnet in the VPC, there must be an associated route table. The main route table is automatically assigned to your VPC and controls the routing for all subnets not associated with any other route table. While a subnet can only belong to one route table at a time, multiple subnets can belong to the same route table.

Security, Identity, And Compliance Services

AWS Identity and Access Management (IAM)

AWS IAM is a web service that helps to control who has access to your AWS resources, how, and to what level they can access the resources. When you create an AWS account, you have a sign-in identity that can be accessed through the email address and password you used in creating the account. This is the root user account and has total access to all AWS services and resources. AWS strongly recommends not using the root user account for everyday tasks, and this is where AWS IAM comes in.

AWS IAM is used to control who is signed in (authenticated) and has permission (authorized) to use your resources. With IAM, you can:

  • manage IAM users and their access

  • manage IAM roles and their permissions

  • manage federated users and their permissions.

That way, you can grant different permissions to different people to use different resources. While you might allow someone to have full access to your Amazon EC2 and Amazon S3, you might allow someone else to have read-only access to just a few S3 buckets, yet allow another person access to just the account billing information and nothing else.

There are four IAM components, each with a different role and function:

  • IAM user: This is a person or application defined in your AWS account that can make API calls to your AWS services.

  • IAM group: This is a group of IAM users, and you can use it to specify and manage the same permissions for multiple users. An IAM user in an IAM group can also be an IAM user in another IAM group or other IAM groups.

  • IAM policy: This is a document that states permissions for what users can do in your AWS account. An IAM policy can either be identity-based (attached to an IAM user, group, or role) or resource-based (attached to a resource, such as an S3 bucket). Policy documents are written in JSON (JavaScript Object Notation), an open standard file and data interchange format.

  • IAM role: This is a tool used to grant temporary access to specific AWS resources in your AWS account. An IAM role is similar to an IAM user as it is an identity that you can attach permission policies to, but it differs from an IAM user as it can be assumed by anyone and is not unique to one person.

Database Services

Amazon Relational Database Service (Amazon RDS)

Amazon RDS is an AWS-managed, cost-efficient, and scalable service that makes it easy for you to set up, operate, and scale a relational database in the cloud. This is to address the challenges of running an unmanaged and standalone relational database. While using Amazon RDS, you only need to focus on your data and optimize your application for fast performance, high availability, security, and compatibility.

Amazon RDS is available on several database instance types and provides you with six well-known database engines—Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database, and SQL Server—to choose from. You can also use the AWS Database Migration Service (AWS DMS) to migrate or replicate your databases existing in an on-premise data center to Amazon RDS.

Conclusion

Now that you have gone through the article, I hope it has successfully done what it was aimed to do: demystify the concept of cloud computing and Amazon Web Services (AWS) for beginners. The next step—the first step to AWS Cloud Computing—would be to go on and create an account so you can start exploring.