DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • How to Install VPN on Linux?
  • Understanding the Power of AWS Organizations: Streamlining Cloud Management
  • Amazon Instance Connect Endpoint
  • What Are the 7 Rs of Cloud Migration Strategy?

Trending

  • Improving DAG Failure Detection in Airflow Using AI Techniques
  • Self-Hosted Inference Doesn’t Have to Be a Nightmare: How to Use GPUStack
  • Optimizing High-Volume REST APIs Using Redis Caching and Spring Boot (With Load Testing Code)
  • Why Good Models Fail After Deployment
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. AWS Basics

AWS Basics

A simple introduction of Amazon Web Services. We will see a few of its main services and we will also start setting up our development environment to build applications.

By 
Jawad Hasan Shani user avatar
Jawad Hasan Shani
DZone Core CORE ·
Mar. 07, 21 · Tutorial
Likes (15)
Comment
Save
Tweet
Share
27.9K Views

Join the DZone community and get the full member experience.

Join For Free

Introduction to AWS

In this post, we will get a high-level introduction to Amazon Web Services (AWS). We will see a few of its main services and we will also start setting up our development environment to build applications with AWS.

Amazon Web Services is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis.

To start with AWS services, you will need an AWS account, which is very easy to setup and you can use free-tier for some of the upcoming demos. Free-tier is great when you are just starting with AWS. It allows you to try some AWS services free of charge and once you are comfortable with AWS, you can run bigger workloads and you will be invoiced accordingly. You can find more information about billing on the official AWS website.

AWS is a collection of over 200+ services to choose from and develop with. AWS provides on-demand cloud computing platforms and APIs on a metered pay-as-you-go basis. Most services can operate independently or by integrating with other services. Few of the popular services offered by AWS are:

  • EC2
  • S3
  • RDS
  • DynomoDB
  • ElasticCache
  • AWS Lambda

Most services in AWS are accessed with a TCP connection. Often this might simply be HTTP.

Each instance of service often called a resource, is give a local IP address with which other services can communicate. This IP is not connected with the outside world but you can assign an external IP if needed.

Alternatively, some services should be referenced by their ARN (Amazon Resource Name) instead of IP.

AWS Tooling

Options available to us are:

  • Web Console
  • CLI
  • SDKs

Even though most AWS can be worked with TCP connection, SDKs make this work even easier. There are SDKs available for .NET, Java, or other popular programming languages.

These SDKs provide robust APIs that enable you to interact with services and resources inside your codebase. SDK APIs are very similar in different languages.

In order to connect your local code to the cloud, we will need to use an AWS access key to properly configure the SDK to access our account in the cloud. AWS access-key gives access to SDK and CLI.

Elastic Compute Cloud (EC2)

The core of the web of AWS is EC2. You can think of this as a service that provides servers where your applications will be running.

EC2 also forms the basis of many other services as well, such as

  • Relational Database Service (RDS).
  • Elastic Bean Stack.
  • etc.

Compute refers to compute or server resources:

  • Application Server.
  • Web Server.
  • Database Server.
  • Mail Server.
  • Media Server.
  • File Server.

In AWS they are called EC2 instances instead of servers.

Instances are pay as you go. You only pay for running instances and only for the time they are running. EC2 instances comes with some built-in options:

  • Broad selection of HW/SW.
  • Global Hosting.

Identity and Access Management (IAM)

  • Configure and manage users.
  • This service is an integral part of AWS.

Cloud Watch

  • Used for alarms and logging.
  • Also integrated very deeply in many AWS services.
  • With cloud watch, you can configure alarms to notify you or trigger automatic activity if service goes down, overloaded, or acting crazy.
  • Cloud watch can be used with SNS to send alerts to end-points (e.g. email, SMS).

AWS Lambda

AWS Lambda is a compute service that runs your code in response to events, for example, when data is inserted in a DynamoDB table or when a file is uploaded to S3 or whenever a request hits one of the API endpoints and automatically manage the compute resources for you, making it easy to build applications that respond quickly to new information.

Lambda Core Features:

  • Runs code on demand.
  • No Servers: Servers, OS Maintenance, Scaling, Provisioning, and Deployment is managed for you.
  • Code starts running within milliseconds of receiving the event trigger.

Simple Storage Service (S3)

Amazon S3 is a storage service that can also function as a web server.

In S3, you put your files in buckets.

CloudFront

CloudFront is a Content Delivery Network (CDN) service that will copy your app to edge locations around the world to improve the speed at which your app is served to your users.

API Gateway

API Gateway is a service that allows creating a REST API fully managed by AWS that acts as the front-end for other services.

It makes it easy for developers to publish, maintain, monitor, and secure APIs at any scale. In other words, it allows you to create API endpoints for your backend application without having to manage the backend servers themselves.

Also, when we use API Gateway, we did not just build a single system with finite resources, but a fault-tolerant scalable system behind the scenes to support and grow our APIs.

Install AWS Command Line

I am using windows and for other OS you can refer to the AWS website for instructions. Download installer from AWS's official website and install CLI. After install you can check the installation by running the following command:

aws --version


Next, we configure AWS by using the credentials we got earlier:

aws configure


Windows PowerShell UI

This will ask you to provide user access-key-id and secret-key and you can enter those details. Once it's completed, you will see the following files on your machine:

Files in .aws

Install AWS Toolkit for Visual Studio

If you are using Visual Studio for development purposes, you can install the tool-kit from within the visual studio extension menu item:
AWS Toolkit for Visual Studio 2017 within Extension Menu

After installing the extension, you can open AWS explorer inside visual studio and access AWS Resources:


AWS Explorer


Summary

In this post, we covered a few of the AWS resources and we also started setting up our development environment. In the next posts, we will continue from this baseline. If you have some questions or comments, feel free to ask. Till next time, Happy Coding.

AWS Amazon Web Services Web Service Cloud computing

Published at DZone with permission of Jawad Hasan Shani. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • How to Install VPN on Linux?
  • Understanding the Power of AWS Organizations: Streamlining Cloud Management
  • Amazon Instance Connect Endpoint
  • What Are the 7 Rs of Cloud Migration Strategy?

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook