AWS Developer Associate
Source: [Link]
AWS Overview
Learning Objectives
By the end of the lesson, you will be able to:
Describe the history and features of AWS
Identify the AWS Regions and Availability Zones worldwide
Identify the major AWS services used by developers
Access AWS services using the AWS Management Console
Set up an AWS account and the AWS CLI
Set up AWS SDK for Java
Introduction to AWS
Introduction to AWS
Amazon Web Services (AWS) is a subsidiary of Amazon offering various cloud services such as
compute, storage, database, networking, application integration, and management that are
flexible, scalable, cost-efficient, and easy-to-use.
Introduction to AWS
Magic Quadrant for Cloud Infrastructure as a Service, Worldwide
Source: [Link]
Features of AWS
Security
Scalability
Highly secured physical
Flexible scalability to adjust the
infrastructure, software, and
capacity and maintain a steady
networking capabilities of AWS
and predictable performance
cloud services
1 2 3
Reliability
Services resilient to product
and infrastructure disruptions
Features of AWS
Operational Efficiency Security
Performance Efficiency
Continuous improvement in the Highly
Cost secured
Optimization
physical
Runs services efficiently and
ability to run systems, create Achieves
infrastructure,
business
software,
outcomes
and
scalably in the cloud while
better procedures, and gain networking
with minimum
capabilities
costs
of AWS
handling any amount of traffic
insights cloud services
1
4 2
5 3
6
Flexibility
Reliability
Provide an option to select the
Services are resilient to both
operating system, programming
service and infrastructure
language, web application
disruptions
platform, and database
AWS Regions and Availability Zones
● AWS Cloud Infrastructure is globally distributed
in the form of AWS Regions and Availability
Zones (AZs).
● AWS Regions are geographic locations around
the world with multiple physically separated
and isolated AZs.
Major AWS Regions around the world
AWS Regions and Availability Zones
Availability Zone is a cluster of discrete data centers
in separate facilities with redundant networking,
connectivity, and power.
They are:
● Connected to other AZs through high
bandwidth and low-latency links
● Highly available, fault-tolerant, and scalable
● Safe from issues such as power outages,
lightning strikes, tornadoes, and earthquakes Availability Zones in Asia-Pacific Region
Source: [Link]
Global Distribution
AWS is globally distributed over 24 geographic regions and has 77 Availability Zones.
Source: [Link]
Core AWS Services
Core AWS Services
Amazon offers various services that are broadly categorized in the following categories:
Compute Storage Database
Networking Application Management
Compute Services
The Compute services from Amazon provide resizable compute capacity in the cloud,
which is intended to make web-scale computing easier for developers.
● Enable users to control their computing
resources
● Operate under pay-as-you-go model and
only takes minutes to obtain and boot new
server instances
● Allow quick scaling when computing
requirements change Amazon Compute
Compute Services
The following are some of the AWS Compute services:
Amazon EC2 Amazon ECR Amazon ECS Amazon EKS Amazon
Lightsail
AWS Batch AWS Elastic AWS Fargate AWS Lambda AWS Serverless
Beanstalk Application
Repository
Storage Services
The Storage services from Amazon provide a secure, reliable, and scalable place for the data
in AWS Cloud with high efficiency, availability, durability, and performance.
● Allow users to store, access, and analyze
data to reduce costs, increase agility, and
accelerate innovation
● Broadly categorized into object storage, file
storage, block storage, backup, and data
migration Amazon Storage
Storage Services
The following are some of the AWS Storage services:
Amazon S3 Amazon EFS Amazon FSx Amazon EBS AWS Backup
AWS Storage AWS AWS Transfer AWS Snow
Gateway DataSync Family Family
Database Services
Amazon offers the broadest set of purpose-built databases for various application
requirements. These database services are fully managed, scalable, and highly efficient.
● Allow to choose database engines from
relational, key-value, in-memory, graph,
time-series, and ledger database types
● Support multi-region, multi-master
replication, and full oversight of the data
Amazon Database
Database Services
The following are some of the Amazon Database services:
Amazon RDS Amazon Amazon Amazon
Redshift DynamoDB ElastiCache
Amazon Amazon Amazon Amazon
DocumentDB Keyspaces Neptune QLDB
Networking Services
Amazon provides a broad set of networking services that provide essential security
features by isolating resources, encrypting data, and connecting privately on the AWS
global network.
● Offer highest network availability, with
negligible down time hours from
networking issues
● 24 AWS Regions and 77 Availability
Zones providing global coverage
Amazon Networking
Networking Services
The following are some of the Amazon Networking services:
Amazon VPC Amazon API Amazon Amazon
Gateway CloudFront Route 53
AWS VPN AWS Direct AWS Cloud AWS App
Connect Map Mesh
Accessing AWS Services
AWS Sign Up
The following are the steps to set up an AWS account:
Open the AWS home Enter your account Select Personal or
page, and select Create information, and then Professional account
an AWS Account click on Continue type
1 2 3
Read and accept the
Click on Create Account Enter your company or
AWS Customer
and Continue personal information
Agreement
6 5 4
AWS Sign Up
The following are the steps to set up an AWS account:
Add a payment method on the Enter a phone number, verify it
Payment Information page, with the PIN received, and then
and then select Verify and Add click on Continue
7 8
The confirmation page indicates
Select AWS Support Plan on the
that the account is being
Select a Support Plan page
activated
10 9
Introduction to AWS Management Console
AWS Management Console is a web application consisting of a wide collection of service
consoles for managing AWS.
Introduction to AWS Management Console
AWS Management Console home page provides access to each service console that offers tools
for working with services such as Amazon S3, EC2, and CloudFront.
Introduction to AWS Management Console
Resource Groups menu manages the AWS resources such as an EC2 instance or S3 bucket as a
group.
Introduction to AWS Management Console
Resource Groups menu can also be used to start Tag Editor, a tool for applying and
managing labels or tags to organize your resources.
Introduction to AWS CLI
AWS Command Line Interface (CLI) is an open-source tool that allows users to interact with
AWS services using commands in the command-line shell.
AWS
CLI
Introduction to AWS CLI
AWS CLI is available in two versions:
● AWS CLI version 2: It is the most recent major version of AWS CLI and supports all
the latest features. Some features introduced in version 2 are not backward
compatible with version 1.
● AWS CLI version 1: It is the original version of AWS CLI and is still supported by
AWS. It is available only for backward compatibility.
Introduction to AWS CLI
AWS CLI can be used from the command prompt in any terminal program:
● Linux shells: Shell programs such as bash, zsh, and tcsh can be used to run
commands in Linux or macOS.
● Windows command-line: Windows Command Prompt or PowerShell can
be used to run commands.
● Remotely: Amazon EC2 instances can be used to run commands through a
remote terminal program such as PUTTY or SSH.
AWS CLI v2 Features
New installation mechanism: Provides pre-built binaries for Windows,
Linux, and macOS
AWS New configuration mechanisms: Import credentials from the .csv files,
CLI v2 generated in the AWS Console using the aws configure import command
Interactive features: Include features like Server side auto-completion,
Auto-prompts, and Wizards
AWS-Shell
AWS-shell is a command-line shell program that provides convenience and productivity
features to help both new and advanced users of the AWS CLI.
aws-shell
AWS-Shell
Key features of aws-shell are:
● Fuzzy auto-completion for commands, options, and resource identifiers
● Dynamic in-line documentation for commands and options
● Execute common OS commands such as cat, ls, and cp and pipe inputs and outputs without
exiting the shell
● Export executed commands to a text editor
Assisted Practice
Set up the AWS Command Line Interface
Problem Statement: Duration: 15 mins
You have been asked to set up the AWS Command Line Interface.
Assisted Practice: Guidelines
Steps to perform to Set up the AWS Command Line Interface:
1. Setting up the AWS CLI on Windows
a. Download the AWS CLI MSI installer for Windows
b. Run the downloaded MSI installer
c. Confirm the installation using command prompt
2. Setting up the AWS CLI on Linux
a. Download the installation file using the curl command
b. Unzip the installation file using the unzip command
c. Run the install program, and confirm the installation
AWS SDKs
Introduction to AWS SDK
AWS provides SDKs for various programming languages like Java, Python, .Net, PHP, and many
others to access and manage AWS services. SDKs simplifies the complexity of a code and
abstract it in the form of language-specific APIs.
AWS
CLI
AWS SDK For
JavaScript
AWS Mobile SDK
AWS provides Mobile SDKs to build high quality mobile applications easily and quickly that
integrate with popular AWS services. Following mobile SDKs are available in AWS:
Languages Supported by AWS SDK
Most commonly used AWS SDKs are:
AWS SDK for Java
AWS SDK for Java allows to use AWS services in a simplified manner by providing a set of libraries.
It provides support for API lifecycle consideration such as credential management, retries, data
marshaling, and serialization.
AWS SDK for Java
Following are the key features of Java SDK:
Nonblocking I/O
Automatic pagination
HTTP/2 support and pluggable HTTP layer
AWS SDK for Java
The following Java tools are supported by AWS:
AWS Toolkit for IntelliJ AWS Toolkit for Visual AWS Toolkit for
Studio Code Eclipse
Amazon Corretto AWS Cloud Development
OpenJDK Kit in Java
AWS SDK for Python
Boto is an AWS SDK for Python that allows easy integration of Python applications, libraries, or scripts
with AWS services including Amazon S3, EC2, DynamoDB, and others. It provides an easy to use,
object-oriented API, as well as low-level access to AWS services.
AWS SDK for Python
The following are the key features of Boto:
Up-to-date and consistent Interface
Resource APIs
Waiters
Support for Python 2 & 3
Service-specific High-level features
Manage AWS Credentials for SDKs
Key features of AWS-shell are:
● Fuzzy auto-completion for commands, options, and resource identifiers
● Dynamic in-line documentation for commands and options
● Execute common OS commands such as cat, ls, and cp; and pipe inputs and outputs without
exiting the shell
● Export executed commands to a text editor
Assisted Practice
Set Up the AWS SDK
Problem Statement: Duration: 15 mins
You have been asked to set up the AWS SDK
Assisted Practice: Guidelines
Prerequisites:
• To use AWS SDK, you must have:
• A suitable Java Development Environment
• An AWS account and access keys
• AWS credentials
Steps to perform to set p the AWS SDK:
1. Download and extract the SDK (Not required if using Apache Maven, Gradle, Eclipse IDE)
2. Include the SDK in your project
Key Takeaways
AWS (Amazon Web Services) is a subsidiary of Amazon, offering cloud
services such as Compute, Storage, Database, and Networking.
Operational and performance efficiency, reliability, security, scalability, and
cost optimization are some of the main features of AWS.
AWS is globally distributed over 24 geographic regions and has 77
Availability Zones.
AWS Management Console is a web application that comprises a wide
collection of service consoles for managing AWS.
AWS CLI is an open-source tool that allows users to interact with
AWS services using commands in the command-line shell.
Create S3 Bucket via Console and AWS CLI
Problem Statement:
You are asked to create an S3 bucket via management console and CLI and
access it via both access types
Tools required:
AWS S3, AWS CLI
Expected Deliverables:
Screenshots of S3 bucket list