AWS : Welcome

·

7 min read

AWS : Welcome

AWS...AWS...AWS... Assuming you're a tech noobie, I'm sure you may have come across this term a lot of time of times while exploring cloud, web development, etc. So, let me just give you your first understanding of AWS, which is how I understood it initially.

Initiation

Listen to me, Amazon Web Services(AWS) is just a bunch of "services" provided by Amazon that helps you build and deploy your application to the cloud. Now this could mean a lot of things, but let me break it down for you in simpler terms. Imagine you have an idea for a mobile app or a web app, and you want to deploy it in a very flexible and customizable manner. To make it work, you need a place to store your files, run your code, and manage your data. That's where AWS comes in. It's like having a powerful toolbox filled with all the tools and resources you need for that. Whether you need storage space for your files, virtual computers to run your code, databases to manage your data, or even AI capabilities for advanced features, AWS gives you almost everything needed here.

If you aren't familiar with the cloud, it's just a bunch of computers and servers located in different data centers around the world. AWS allows you to access and leverage this network of remote servers and computers, without needing to own or manage the physical hardware( or even sometimes the infrastructure ) yourself.

HOW IT WORKS

Now, let's dive a little deeper into how AWS actually works. As I mentioned earlier, imagine the cloud as a giant network of powerful computers and servers spread across different data centers worldwide. AWS as a cloud computing platform serves as the gateway that allows you to tap into this vast network remotely, without the need to worry about owning or managing the physical hardware or infrastructure yourself. It's like having the keys to a global network of computing resources at your fingertips. That being said, let us DIVE DEEP into how it does what it does, through its services and getting into those services themselves.

AWS offers a multitude of services, each designed to address specific needs and tasks. These services cover various areas such as computing, storage, databases, networking, artificial intelligence, machine learning, analytics, and more. Let's explore some of the key AWS services and how they contribute to building and deploying applications in the cloud.

Computing Services

First off, computing services. These are the ones that allow us to create and manage virtual servers, also known as instances. You can choose the computing power and configuration that best suits your needs and pay only for the time you use.

One of the most commonly used computing services is the Amazon Elastic Compute Cloud(EC2). Let's say you have developed a web application and want to make it accessible to users over the Internet. With EC2, you can launch an instance, similar to setting up a computer, that will run your web server software, handle incoming user requests, and serve web pages. You can select an appropriate EC2 instance type based on the expected traffic and resource requirements of your application. For example, if your website experiences high traffic, you can choose an instance type with more CPU power and memory to handle the increased load.

Another popular computing service is Lambda, which is similar to EC2 except here you don't need to manage those servers that you are using. A lot of times you would come across the term "serverless", which just means that you as a developer don't need to manage or provision servers. In this context, Lambda is in fact a serverless computing service.

One key difference between EC2 and Lambda is that EC2 requires manual or automated scaling configuration and management, where you have control over the number of instances based on your application's needs. On the other hand, Lambda provides automatic scaling without any manual intervention. This should mean that Lambda may not be preferable in scenarios where you would want to manage your own servers or when you need a very SCALABLE application, since automatic scaling may shit a lot in that case.

Storage Services

This might be the most obvious part that clicks into the mind first when we hear about cloud services, like obviously there's gotta be some rented storage. AWS provides storage solutions where you can store and retrieve any amount of data securely. It's like having a virtual hard drive in the cloud that you can access from anywhere. The 2 most used Storage Services are Amazon Simple Storage Service(S3) and Elastic Beanstalk.

  1. S3 - An object storage service designed for storing and retrieving unstructured data, such as files, documents, images, and videos. It organizes data into buckets and stores objects as key-value pairs, where each object is identified by a unique key (URL).

  2. Elastic Beanstalk - Elastic Beanstalk simplifies the deployment and management of your website. It automates the process of provisioning resources, setting up load balancers, and scaling your application based on traffic. This reduces the time and effort required to get your website up and running.

Database Services

Well, how's that different from a storage service? A Database service is built for structured data management. It provides advanced functionalities such as data indexing, querying, transactions, and data relationships. Database services enforce a specific data structure and schema, allowing you to organize and query data efficiently. Now you might ask, when could that be useful?

Imagine you have a web application where users can upload and share photos. You need a place to store these photos securely and be able to retrieve them when requested. This is where S3 would be useful since just need a bucket to dump all of this data rather than advanced data management functionalities like querying or indexing.

NOW, let's say you want to build a feature in that same web app that allows users to search for photos by their metadata, such as tags or captions. This is EXACTLY where a database service like Amazon DynamoDB would come into play. With DynamoDB, you could create a table with structured data, including fields like photo ID, tags, captions, and timestamps. DynamoDB enables you to query the table based on specific criteria, such as retrieving all photos with a specific tag or searching for photos uploaded within a certain timeframe. It provides advanced data management capabilities that go beyond simple storage, like in the case of S3.

Security and Identity Services

How can't we talk about security in all of these? Of course, there are many services related to it. But let's talk about the most important ones.

  1. Identity and Access Management (IAM) - IAM enables you to manage user identities and their permissions to access AWS resources. It allows you to create and manage users, groups, and roles, and control their access to services and resources.

  2. Key Management Service (KMS): KMS is a managed service that allows you to create and control encryption keys to encrypt your data. It integrates with other AWS services to provide seamless encryption of data at rest and in transit.

  3. Amazon Inspector: Inspector is an automated security assessment service that helps you identify security vulnerabilities and potential issues in your applications and EC2 instances.

What Next?

Okay, so. I know you must be little overwhelmed till now and I don't want to bore you further since there are like a never-ending number of AWS Services and Tools, and only with time and usage of these services, you can get a better understanding of these. I hope though that this blog was a good entry point for you to get a basic idea of what AWS is and how it works at a high level.

I highly recommend taking the AWS Certified Cloud Practitioner certification for more in-depth foundational knowledge of AWS services, basic architectural best practices, and key cloud concepts.

Again hope that you gained some valuable basic understanding of AWS through it. See you in the next blog!