New to AWS? Let’s get you started.
Tags: aws, ec2, beginners
Published: 2022-07-05 17:43:42

If you are an enthusiast of technology or into business, then you have definitely heard of Amazon Web Services(AWS). In terms of business, AWS business model is very revolutionary when it comes to lowering other businesses overhead for server costs by hosting almost all of the infrastructure on Amazon Data Centers. 


AWS is the top cloud provider and it offers a wide range of remote cloud services for application development like analytics, blockchain, AI etc. and can assist individuals and organizations in the development and sustainable growth of any application. Following are the key building blocks of the AWS environment as shown below:

 
 
 ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0309gn68e44m76n0cupp.png)


  
## **AWS VPC**
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eulqa8lj2fnpoywtpf48.png)
 
A VPC is a virtual network specific to you within AWS for you to hold all your AWS services. It is a logical data center in AWS and will have gateways, route tables, network access control lists (ACL), subnets and security groups. When you open up a service within a public cloud, it is effectively open to the world and can be at risk to attacks from the internet. In order to lock your instances down and secure them against attacks from the outside, you lock them within a VPC. The VPC restricts what sort of traffic, IP addresses and also the users that can access your instances.

## **AWS Elastic Compute Cloud(EC2)**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lrf5r9wuoulerrdwr2i2.png)
 
This is a virtual server that helps you run numerous applications on the AWS infrastructure. It allows subscribers to run applications in a computing environment that is practically capable of serving an unlimited set of virtual machines. Let’s say that you have a database or software you need hosted on a machine. Back in the day, you would probably host this on an actual machine of some sort. Depending on your business, this setup could be pretty pricey or pretty risky. So software like Amazon EC2 allows you to rent a portion of a larger machine so that you can eliminate the risk of a disaster and lower the cost of hardware.
That’s the basics of it. It also comes with other great features that would eliminate the need for an infrastructure team to manage.
Let’s say I needed a dedicated server to put my WordPress installation on. I would easily be able to do this using AWS using an easy one-click install and then any other changes needed I could just SSH into my machine and have full access. All for the price of shared hosting like GoDaddy. Awesome.

## **AWS S3**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5jwdd2d26hq810ix7625.png)
 
Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance. This service is more like a virtual drive to store and retrieve data. According to the AWS definition, “You can use Amazon S3 to store and retrieve any amount of data at any time, from anywhere on the web.”

- Files in S3 are stored in buckets ( Buckets are like folders )
- S3 is object-based storage (Like Images, videos, documents etc)
- Bucket names should be unique globally because when we create a bucket in S3 it will have a unique URL.
- It's a good practice to create buckets in the nearest region to you or for your customers.

## **AWS DynamoDB**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/19xq10rh6tr16do1qfol.png)
 
Amazon DynamoDB is a key-value and document database that delivers single-digit millisecond performance at any scale. DynamoDB is a no-sql database that scales with the amount of data coming in. What makes a no-sql database different from a SQL database is that it doesn’t use SQL and doesn’t have relational features. 
The benefits for this is how lightweight the database can be as a result of not having these features. So AWS DynamoDB is an awesome free data storage option, however NoSQL Databases has its own use cases as does Relational Databases. So it is important to figure out what kind of storage option is best for your specific project before going forward.

AWS docs provideon the basics of DynamoDB, below is a list of some of the basic terminology I have gotten to know about DynamoDB:

**Primary Key**

This is a simple one, Primary key uniquely identifies the 'item' in the table, it can be a single attribute or a combination of attributes.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/41qhr1yudk6jq82xrh4c.png)
 
_Image credit [AWS docs](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.TablesItemsAttributes)_

**Tables**

Strange name, given DynamoDB is NoSQL, However, it serves as a good mental model, and helps understand how data is grouped together. These 'tables' consist of a collection of 'items'.

**Items**

Items can be thought of as 'rows' in the tables, But unlike traditional tables, it does not have or need a specific schema. Aside from the primary key, it can contain any number of 'key-value' relations, and can also store nested objects upto 32 levels deep.
 

## **AWS Lambda**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p2fgyj3ff3276ed07swu.png)
 
AWS Lambda is an event-driven serverless compute platform, spinning up the service in response to an event. AWS Lambda lets you run code without provisioning or managing servers.
The function itself has the following important aspects associated with it:

- **Trigger**: A set of activities which invokes the function (runs the code you provide). The activity could be anything like a new object coming to your S3 bucket, a website or a service going down, an API call, etc.
- The actual **function**: This is the run-time code that constitutes the function. AWS supports Python, Node.js, C#, Go and Java8 as runtime environments. 
- **Resources**: Each function can be assigned certain Roles, which grants the function certain privileges such as reading S3 bucket contents, writing results to a database and so on.

Lambda allows you to do this easily without having to deploy anything. Just create an instance and insert your Node, Python code etc and you will have the functionality of a server to return the results of your code for you. What makes this great is that it charges you on a usage basis. Only pay what you have to.
This means you can create your applications using your frontend frameworks and not have to worry about setting up your server. 

## **AWS LIGHTSAIL**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f68p41omanm7uvg9ug4s.png)
 

Lightsail is an easy-to-use cloud platform that offers you everything needed to build an application or website, plus a cost-effective, monthly plan. Whether you’re new to the cloud or looking to get on the cloud quickly with AWS infrastructure you trust, we’ve got you covered.

This one is more straightforward than the other ones. Essentially, it takes all different types of application you would need (Database, server, etc) and puts it in a container which is easy for you to use. I chose Lightsail over EC2 since it is a managed system focused on Wordpress. It also has a pre-set image for Wordpress so it’s pretty quick to launch.

AWS Lightsail offers a variety of options such as supporting a Windows server or a choice of Linux distros, thus helping core professionals to take advantage of this service package.
One of the best advantages of using AWS Lightsail is that the size of your website doesn’t matter. This service is able to host your website on the AWS environment seamlessly. 

## **AWS ANALYTICS**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/73fqbjo4k4wa6r13dmmk.png)
 
AWS offers real-time web analytics with Kinesis Data Analytics solution that allows you to:

- Easily track your website activities. 
- See who visits your website
- From where are they visiting
- What are they doing on your website
- It provides a framework to analyze and visualize the metrics so that you can add more metrics instead of managing underlying infrastructure.

## **Conclusion**

At a  glance AWS can seem tough and overwhelming, however, its cloud services will deliver your business-critical enterprise applications reliably and cost-effectively, while giving you opportunities to cut delivery times for new products and services and replicate infrastructure environments quickly and easily. Moreover, it allows you to choose what kind of software makes sense for your scenario.
To get started in the ecosystem, take advantage of their free-tier. Once you understand what some of the services are, you can then start to understand most of them and how they can apply to what you want to use for your world domination. 
Learn the basic shell commands in Linux like ssh, cd , mv , mkdir, rm, touch and so on. Make sure you know atleast vim, VS code or a similar editor.