About this book

AWS is at the forefront of Cloud Computing today. Businesses are adopting AWS Cloud because of its reliability, versatility, and flexible design.

The main focus of this book is teaching you how to build and manage highly reliable and scalable applications and services on AWS. It will provide you with all the necessary skills to design, deploy, and manage your applications and services on the AWS cloud platform.

We’ll start by exploring Amazon S3, EC2, and so on to get you well-versed with core Amazon services. Moving on, we’ll teach you how to design and deploy highly scalable and optimized workloads. You’ll also discover easy-to-follow, hands-on steps, tips, and recommendations throughout the book and get to know essential security and troubleshooting concepts.

By the end of the book, you’ll be able to create a highly secure, fault tolerant, and scalable environment for your applications to run on.

Publication date:
March 2018
Publisher
Packt
Pages
338
ISBN
9781788294454

 

Chapter 1. Getting Started with AWS

Cloud computing is driving the IT industry to restructure the application workflow. It offers low-cost services for IT resources over the internet and a pay-as-you-go pricing model. Under cloud computing, IT resources can be utilized on demand. So, you don't need to pay for unused resources or any upfront fees to provision any hardware in advance.

Amazon Web Services (AWS) is a leading cloud services provider. AWS offers different services in various graphical regions, which can be chosen by customers based on their requirements. With AWS, we can create high availability and fault tolerant applications with minimal configurations. AWS reduces the stress of managing on-premises physical servers and allows us to focus on application layers.

The following topics will be covered in this chapter:

  • Introduction to AWS
  • Sign-up process
  • Regions
  • Installation of the AWS CLI
 

Introduction to AWS


AWS is a cloud computing platform offered by Amazon. It offers a large set of services that can be utilized in various forms. AWS caters for different services, including infrastructure, networking, storage, databases, security, and many more. These different services can be used in the application life cycle. Also, AWS offers a pay-as-you-go pricing model, which means that the user will only pay for services being used, so the user doesn't have to pay any upfront fees to acquire hardware resources.

AWS offers a web service interface for all services. We can also integrate AWS services via web services with various software to make our application management easier. AWS offers multiple regions to create AWS services.

The user has the choice to select the regions based on the application usage so that latency is low. Each region has multiple Availability Zones (AZ), which means you have an option to select Availability Zones where the application will reside, to avoid failure when one availability zone is down but another may be up.

 

Services offered by AWS


AWS offers a wide range of services under different categories. The following are some of the services that are offered by AWS.

Compute

Compute offers a computing platform where we can create virtual servers, and deploy and run our applications:

  • Elastic Compute Cloud (EC2): AWS EC2 is a web service interface that allows users to create and configure compute machines in the cloud. It offers scalable compute machines with minimal configuration and reduces overall time to boot new servers. 
  • EC2 Container Service (ECS): AWS ECS allows you to work with Docker-enabled applications. We don't need to deal with the installation or configuration of prerequisite software to run on the cluster. ECS runs on Amazon EC2 clusters, so it can scale seamlessly.
  • Lightsail: AWS Lightsail is used to launch virtual private servers. Lightsail offers low-cost computing servers that can be utilized by small and medium-sized businesses (SMBs).
  • Elastic Beanstalk: AWS Elastic Beanstalk is used for deploying and handling applications without worrying about the infrastructure it is going to run. We simply upload the application's deployable file and Elastic Beanstalk automatically handles capacity provisioning, load balancing, auto scaling, and application health monitoring.
  • Lambda: AWS Lambda is a serverless computing service where we don't need to manage servers and can focus on the business logic. AWS Lambda code will be executed based on requests and it can scale automatically.
  • Batch: AWS Batch allows us to execute multiple jobs automatically. It can execute applications and container images on EC2 instances to accomplish certain tasks.

Storage

AWS offers a wide range of cloud storage services used by applications and for archival purposes:

  • Simple Storage Service (S3): AWS S3 is an object-based storage service over the web. We can store any amount of data and it can be retrieved from anywhere over HTTP. We can also host a static HTML website on S3.
  • Elastic File System (EFS): AWS EFS is a scalable file storage system that can be used with EC2 instances. EFS can be automatically scaled up and down based on files being added or removed. EFS can also be mounted on an external server residing outside the Amazon ecosystem.
  • Glacier: AWS Glacier is a low-cost storage service that can be used for data archiving and infrequently used data. Glacier offers a reliable, secure, and cost-effective storage service.
  • Storage Gateway: AWS Storage Gateway is an interface that helps to connect an on-premise storage infrastructure with an AWS storage infrastructure. Storage Gateway offers multiple storage solution types, including file gateway, volume-based, and tape-based types.

Database

AWS offers a variety of database services that can be used for storing application data in RDMSes, NoSQL databases, and caching servers:

  • Relational Database Service (RDS): AWS RDS is a cloud relational database offered by Amazon that makes it easy to configure and provide scalability. AWS RDS offers a wide range of databases to choose from, including Amazon Aurora, MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, and Oracle. Amazon also provides a database migration service that can be used by consumers to migrate on-premise or external databases to the Amazon Cloud.
  • DynamoDB: AWS DynamoDB is a fully managed NoSQL service that provides high performance and scalability. It handles databases in a distributed manner so that consumers do not have to deal with the administration of the database. Consumers will be directly dealing with tables with unlimited storage and they can store and retrieve data.
  • ElastiCache: AWS ElastiCache provides a data caching service that can be an in-memory data store that improves application performance. ElastiCache offers two open source in-memory data stores, Redis and Memcached. The user can configure clusters of caching servers that can automatically handle failover.
  • Redshift: AWS Redshift is a fully managed data warehouse service provided by Amazon. Redshift allow us to connect via SQL-based clients and business intelligence tools and is focused on analytics. It also offers fast query execution over a large set of datasets.

Networking and content delivery

AWS offers solutions for running companies' infrastructures under a secured cloud. It can deliver content using the Content Delivery Network (CDN) for low latency, and can expose DNS and REST APIs for applications running on the cloud:

  • Virtual Private Cloud (VPC): AWS VPC allows us to create private and public networks where we can create different Amazon services. Those services will run under our virtual network in the same way as those running on on-premise data centers. We have authority to configure the IP address range, subnets, network gateways, and security layers.
  • CloudFront: AWS CloudFront is a global CDN that helps to cache data over edge locations and provide data to the requester faster. The CDN helps to minimize cost and deliver content with low latency.
  • Direct Connect: AWS Direct Connect is a dedicated network service where a consumer can connect an on-premise data center directly to the Amazon network. This helps to reduce the time lag for data transmission and we can configure the connections to increase capacity.
  • Route 53: AWS Route 53 is a Domain Name System (DNS) where we can route our request to AWS infrastructures, such as EC2, RDS, or other services. It also has the capability to route to non-AWS infrastructures. It provides scalability and high availability for the Domain Name System service, so users can rely on it. Route 53 is IPv6 compliant.
  • API Gateway: AWS API Gateway is a service that exposes the front entry point (URL) for an application. API Gateway helps to build, monitor, and secure APIs, and can scale at any level. We can redirect the API calls to either AWS Lambda, web applications running on EC2, or any other servers.

Migration

AWS offers migration services that reduce the complexity and time for companies to migrate to the cloud:

  • AWS Migration Hub: AWS Migration Hub allows us to monitor the progress of an application's migration within AWS resources and other partnering software tools. This makes it easier for us to get a high level of understanding about the migration's progress.
  • Application Discovery Service: AWS Application Discovery Service is an intelligent service that collects and summarizes the usage of applications and their dependent services running on on-premise servers. This service can be where a user wants to migrate a system and wants to collect information about the on-premise server and find out about the dependent applications. It stores the collected data in the Application Discovery Service database, which will be in an encrypted format. Users can then export the data in CSV or XML format.
  • Database Migration Service (DMS): AWS DMS is a service that helps to migrate databases from an on-premise server to the Amazon Web Services cloud. It provides support for same-origin vendor database migration, such as Oracle to Oracle, and cross-origin vendor database migration, such as Oracle to MySQL.
  • Server Migration Service (SMS): AWS SMS is an automated service that migrates your on-premise server workload to AWS. This service can be scheduled and can take incremental migration as well.
  • Snowball: Snowball is a petabyte-scale data transfer service whereby a user can migrate a large number of datasets from one system to AWS or vice versa. Transferring large amounts of data will incur a heavy cost for data transition over the network and may cause security concerns. So to overcome this, Snowball provides an appliance where we can attach an appliance to our local network and transfer the data.

Development tools

AWS offers development tools, such as code storage repositories and building tools for managing deployment strategies:

  • CodeStar: AWS CodeStar is a tool where we can create, manage, and work on software projects. It comes with easy integration with other AWS services, such as CodeCommit, CodePipeline, CodeBuild, CodeDeploy, and others. It also supports various programming languages, such as C#, HTML5, Java, Node.js, Ruby, PHP, and Python.
  • CodeCommit: AWS CodeCommit is a code repository service fully managed by AWS. It provides private Git repositories for enterprises to use as source control. CodeCommit is also compatible with Git tools.
  • CodeBuild: AWS CodeBuild is a build service that compiles source code, executes tests, and creates deployable or consumable files. CodeBuild is a fully managed service provided by AWS. It scales as per user requirements and is charged based on minutes used to build the code.
  • CodeDeploy: AWS CodeDeploy is an automated application deployment service. CodeDeploy supports deployment to EC2 instances and on-premise servers, and can take deployable files from various locations, such as GitHub, AWS S3 Bucket, and Bitbucket.
  • CodePipeline: AWS CodePipeline is an automated service to release an application. CodePipeline allows us to visualize the build and deploy process. We can create multiple stages where CodePipeline first builds your application, executes tests, deploys to the pre-production environment via CodeDeploy or any other deployment process, and then moves to the production environment.
  • Cloud9: AWS Cloud9 provides an Integrated Development Environment (IDE) that resides on the cloud and can be accessed from the browser. Cloud9 allows us to write, run, and debug applications in many languages, such as JavaScript, PHP, Python, Java, and many more.
  • X-Ray: AWS X-Ray provides analysis of the application, which is useful for developers, architects, or product leads. It provides performance analysis of the application and its connected services. This analysis can later be used to identify any performance issues or errors in the system.

Management tools

AWS offers management tools to monitor applications, create an entire application stack in one shot, and support services:

  • CloudWatch: AWS CloudWatch is a monitoring service that can give you overall system health analysis, metrics collected from AWS services, log viewing, and alarms configured on metrics, which take certain actions based on the alarm triggered. We can also have custom application metrics stored on CloudWatch Metrics, which can also be used for alarm configuration or dashboard views.
  • AWS Auto Scaling: The AWS Auto Scaling service monitors our application and can auto scale based on the configuration. We can configure Auto Scaling for various AWS resources to manage high load and build performance-optimized and cost-effective applications.
  • CloudFormation: AWS CloudFormation is a service that creates the entire infrastructure of an application. This helps users to create entire infrastructures in one go, instead of creating each AWS resource individually.
  • CloudTrail: AWS CloudTrail audits the API calls made to your AWS account. It tracks the API calls made from the AWS Management Console, AWS SDKs, the AWS CLI, and from different AWS services. This helps to monitor the AWS resources being utilized and make them more secure.
  • Config: The AWS Config service tracks the configuration changes of AWS resources. We can easily see whether any changes occurred in the configuration of AWS resources and can take action accordingly.
  • OpsWorks: AWS OpsWorks is a Chef and Puppet based configuration management service. Chef and Puppet are automated configuration management tools that help to manage your server configuration using their templates.
  • Service Catalog: AWS Service Catalog is a service that maintains a list of services that can be used on the AWS account. This helps companies to track and maintain governance of AWS resources being utilized as per their policies.
  • Systems Manager: AWS Systems Manager provides an interface to manage operational data from multiple AWS resources. We can group multiple AWS resources as groups for an application and can view operational data or detect any issues going on within these groups of resources.
  • Trusted Advisor: AWS Trusted Advisor helps to guide you in implementing AWS best practices. It observes the AWS service and provides recommendations on how to reduce cost, achieve performance, secure resources, and implement fault tolerance.
  • Managed Services: AWS Managed Services is a support service that provides AWS infrastructure management and lets you focus on application management. Managed Services frees you from infrastructure operations such as monitoring. It applies patches on AWS resources, security, regular backups, and more.

Media services

AWS offers media services such as video conversion, real-time video streaming for analytics and machine learning, broadcasting videos, and more:

  • Elastic Transcoder: AWS Elastic Transcoder is a service to transcode the media file which can be executed on various devices, such as mobile phones, tablets, and PCs. Elastic Transcoder frees developers from worrying about supporting the media files on various devices. Elastic Transcoder creates the different versions for us to support various devices.
  • Kinesis Video Streams: AWS Kinesis Video Streams is a service to ingest videos over the Kinesis stream. Using Kinesis Video Streams, we can run analytics, apply machine learning, and process video data.
  • MediaConvert: AWS MediaConvert allows us to convert video files into the multiple formats that are used from various devices.
  • MediaLive: AWS MediaLive allows us to stream videos live over multiple devices, such as televisions, smartphones, tablets, and so on. We don't need to worry about the infrastructure for broadcasting the videos, as Amazon takes care of it.
  • MediaPackage: AWS MediaPackage provides a secure way to deliver videos over the internet. Based on the load for a specific video stream, AWS MediaPackage scales automatically so that the user doesn't experience any difficulties.
  • MediaStore: AWS MediaStore is a storage service for media. It provides live video streaming for videos that are stored in MediaStore.
  • MediaTailor: AWS MediaTailor allows us to add advertisements to individual video streams based on the user's choice. It can also measure the metrics for ads, and reports can be formed accordingly.

Machine learning

AWS offers artificial intelligence services that use machine learning capabilities:

  • Amazon SageMaker: Amazon SageMaker allows us to build, run, train, and deploy machine learning models. It simplifies the process of building and training the models, which are generally complex, in real time.
  • Amazon Comprehend: Amazon Comprehend is based on natural language processing (NLP). It has the ability to analyze text data and apply machine learning to identify various results.
  • AWS DeepLens: AWS DeepLens provides an AI-enabled video camera where developers can make use of machine learning models. AWS DeepLens can be integrated with Kinesis Video Stream, AWS IoT devices, SQS, SNS, S3, and more.
  • Amazon Lex: AWS Lex is used to build conversational applications. Lex uses natural language understanding (NLU) and automatic speech recognition (ASR), which can be used to build conversational applications.
  • Machine Learning: AWS Machine Learning (ML) is a service to create machine learning models from data. Users don't need to know about complex machine learning algorithms; AWS ML does this for you. ML also provides APIs to extract predictions based on the data you provided.
  • Amazon Polly: AWS Polly is a text-to-life speech conversion service. Polly supports multiple languages and voices, which can be used in speech-based applications.
  • Rekognition: AWS Rekognition is an image recognition service that can extract text, objects, scenes, and faces from images. It also provides search capabilities for faces in images.
  • Amazon Transcribe: Amazon Transcribe allows us to create text files out of audio files stored on S3. It becomes easy for developers to use the service directly, without having knowledge about how the speech needs to be converted to text.
  • Amazon Translate: Amazon Translate is a service that has the ability to translate one language to another language by applying complex neural machine learning and deep learning models.

Security, identity, and compliance

AWS offers security to access its cloud services. This helps administrators or companies to manage access to entire AWS services and secure applications using SSL certificates:

  • Identity and Access Management (IAM): AWS Identity and Access Management is a service that provides secured access to AWS resources. Using IAM, we can verify authentication and authorization to use AWS services.
  • AWS Cognito: This allows us to create and log in users for authentication and authorization to applications. The administrator can manage the permissions to be provided to certain users. Cognito also integrates with social identities, such as Facebook, Twitter, Amazon, and so on. Cognito also syncs data across the user's devices, which benefits the user experience, making it possible to have all data across all devices.
  • GuardDuty: AWS GuardDuty is a threat detection service that monitors AWS resources. It can detect any unauthorized access or unusual API calls, so that we can take precautions to protect our AWS resources.
  • Inspector: AWS Inspector is an automated tool that finds security and compliance vulnerabilities on AWS services. This tool creates detailed reports based on the severity of the vulnerability.
  • Certificate Manager: AWS Certificate Manager allows you to create and manage the Secure Sockets Layer/Transport Layer Security for use with different AWS services that are exposed over the internet. Using Certificate Manager, you can deal with the renewal of certificates without impacting your applications over AWS.
  • Directory Service: AWS Directory Service allows us to use Microsoft Active Directory (AD) on AWS. Using this service, IT administrators can set up access to AWS services for users and groups, and enable single sign-on applications.
  • WAF and Shield: The AWS Web Application Firewall (WAF) helps us to monitor HTTP/HTTPS requests for AWS CloudFront or AWS Application Load Balancer. Using AWS WAF, we can apply rules to control access to CloudFront or Application Load Balancer. AWS Shield helps us to protect from distributed denial of service (DDoS) attacks.
  • Artifact: AWS Artifact provides AWS security and compliance reports and agreements. This service is available at no additional cost. AWS Artifact provides reports with various accreditation bodies. AWS Artifact also covers agreements for a Non-Disclosure Agreement (NDA) and Business Associate Addendum (BAA).
  • Amazon Macie: Amazon Macie is a security service that uses machine learning for discovering, classifying, and protecting your data stored on AWS. It identifies sensitive data and monitors for security breaches. Reports are displayed on the dashboard and alerts are generated for any security concerns.
  • AWS Single Sign-On: AWS Single Sign-On (SSO) allows us to have centrally managed SSO for our AWS account and applications. This helps to centrally manage the user access and sign-on process at the organization level.
  • CloudHSM: AWS CloudHSM (Hardware Security Module) allows you to create and use your encryption keys on AWS. These encryption keys can easily be integrated with applications using APIs, such as the PKCS #11, Java Cryptography Extensions (JCE), and Microsoft CryptoNG (CNG) libraries.

Analytics

AWS offers an analytics compute engine that performs complex algorithms on data on demand:

  • Athena: AWS Athena is a query service that analyzes data on AWS S3. Athena supports standard queries over S3 data. It doesn't have any infrastructure to be managed, and we just need to pay for the queries being executed.
  • Elastic MapReduce (EMR): AWS Elastic MapReduce is based on the Hadoop framework, which provides fast processing of a large set of data stores using EC2 instances. AWS EMR supports a wide range of frameworks, such as HBase, Apache Spark, Presto, and Flink. AWS EMR can be integrated with various AWS services, such as S3 and DynamoDB.
  • CloudSearch: AWS CloudSearch is a search service that can be integrated with applications. CloudSearch can search a large set of data from various sources. AWS CloudSearch also scales as per the load, so users don't need to do any manual actions in order to achieve scalability.
  • ElasticSearch Service: AWS ElasticSearch Service is a managed service that allows users to create an ElasticSearch cluster in AWS. ElasticSearch is an open source search engine used for searching and analytics.
  • Kinesis: AWS Kinesis provides streams that can be used for processing real-time data streaming. It also provides Firehose, which is responsible for delivering data records received on streams to respective AWS services. It also provides Kinesis Analytics, which can be used via standard SQL.
  • Data Pipeline: AWS Data Pipeline is an automated service that processes data from one source and moves it to destinations on AWS. It has the ability to perform complex processing, it can handle workloads, it has highly availability of resources, and more.
  • Quicksight: AWS Quicksight is a business analytics tool that generates visual reports based on data. It automatically generates several visual graphs and analysis reports from static and dynamic data sources.
  • AWS Glue: AWS Glue is an extract, transform, and load (ETL) service that is used for analytics purposes. AWS Glue takes a data source as input and creates the table definition automatically in the AWS Glue Data Catalog. Then, the user can query the data over AWS Glue.

Internet of Things

AWS offers Internet of Things (IoT) solutions that can be connected to embedded devices:

  • AWS IoT: AWS IoT is a service that allows you to connect devices with AWS services. It has the ability to make devices interact with applications and send data to and from then. AWS IoT provides an SDK that helps you to connect to devices.
  • IoT Analytics: AWS IoT Analytics allows us to apply analytics on IoT data which is unstructured in nature. It allows us to filter, transform, and enhance the data based on the type of data.
  • IoT Device Management: AWS IoT Device Management allows us to manage IoT devices at a central location. Using this, we can manage a device's inventory and configurations, and provide over-the-air (OTA) updates easily.
  • Amazon FreeRTOS: Amazon FreeRTOS is an operation system for microcontrollers that securely connects to AWS services, such as AWS Greengrass and AWS IoT Core.
  • AWS Greengrass: AWS Greengrass is local software that performs computation, messaging, caching, and data syncing with connected devices. It can also act based on local events generated by devices. AWS Greengrass-supported devices can also transmit data to other devices with the AWS IoT SDK.

Contact center

AWS offers customer service on demand, which makes it easier for companies to manage it:

  • Amazon Connect: Amazon Connect is a customer contact center service. Using Amazon Connect, we can quickly set up a customer contact center and scale as per our needs. It also provides metrics and reporting that help to manage customer queries by contacting the right customer care agents.
  • Pinpoint: AWS Pinpoint helps to analyze app usage and campaign based on the statistics. It monitors app usage behavior, which users to target and send notifications to, at what time, and so on. It also supports multiple messaging channels, such as push notifications, text messages, or email.
  • Simple Email Service (SES): AWS Simple Email Service provides an effective email platform that can be used for sending and receiving emails. We can configure our own domain for email addresses. The infrastructure and maintenance requirements of email servers are costly and complex, so by using SES, we can get rid of infrastructure and maintenance activities.

Game development

AWS offers computing servers for game development:

  • Amazon GameLift: Amazon GameLift provides dedicated game servers that can used for session-based multiplayer games. It has the ability to scale servers based on load, and helps to prevent DDoS attacks and low latency.

Mobile services

AWS offers integration solutions for mobile-based applications for the backend and helps to secure mobile applications:

  • AWS Mobile Hub: This allows us to create backend features for a mobile app. AWS Mobile Hub automatically provisions and configures the AWS services that will be used by mobile apps. Based on the features configured, Mobile Hub allows you to download a sample app that shows you how to use those features.
  • AWS AppSync: AWS AppSync is a service that syncs data across devices, such as for mobile applications and web applications. Using this, we can have a rich user experience, as the user gets all their data synced to all devices. It also has the ability to store data offline and when a device is connected to the internet, it can sync data to the cloud.
  • Device Farm: AWS Device Farm is a testing service for mobile (Android and iOS) and web applications. Device Farm tests on real devices so that testing is done efficiently and correctly. Device Farm supports two ways of testing, automated testing and using remote devices.
  • Mobile Analytics: AWS Mobile Analytics is an analytics tool for your app. It can measure how the app is being used, the revenues generated from the app, new users versus old users, and so on. Based on this data, Mobile Analytics creates charts and reports so we can predict and monetize the app.

Application integration

AWS allows us to create modular applications using application integrations. Different applications can be integrated with various services, such as SNS, SQS, MQ, and so on:

  • Step Functions: AWS Step Functions is a service that executes distributed applications in a series of steps. We can have microservice applications as each step, and Step Function allows us to create visual workflows and the steps can be changed easily. Step Function is invoked automatically and each step state is logged and retried when an error occurs.
  • Amazon MQ: Amazon MQ is a message broker service for Apache ActiveMQ. It allows us to easily set up and scale a message broker service for distributed applications. Amazon MQ is compatible with Apache ActiveMQ, so we can reuse the existing APIs to connect to Amazon MQ without making any changes to our code.
  • Simple Notification Service (SNS): AWS Simple Notification Service is a publisher/subscriber model where we can send data to the subscribed channels. The publisher will publish data on the SNS topic and subscribers will be notified about the messages published on the topic. Subscribers may include AWS SQS, Lambda, Email, HTTP/S, and SMS. SNS mobile notifications can also be used for push notifications on mobile devices, such as Android, iOS, Windows, Baidu-based devices, and Fire OS.
  • Simple Queue Service (SQS): AWS SQS is a distributed message queuing service. SQS can be used where applications are distributed and each single component has its own set of responsibilities, so that requests can be passed on to SQS and the consumer applications of SQS can read messages and process data. SQS is a fully managed service, so users don't need to worry about infrastructure and maintenance.
  • Simple Workflow Service (SWF): AWS SWF helps to define a series of workflows for any application. It helps to execute background processing jobs that have parallel or sequential execution. AWS SWF maintains the state and knows which task needs to be invoked next.

Business productivity

AWS offers document management services that can be used by companies to maintain and track multiple versions of documents:

  • Alexa for Business: AWS provides an intelligent service to businesses where employees can talk to a voice assistant to get information, dial in to conferences, get report details, and so on.
  • WorkDocs: AWS WorkDocs is a storage and sharing service for enterprises. WorkDocs can be used for securely sharing documents over the cloud with administrative control for access. We can maintain different versions of documents and users can even comment on the documents.
  • WorkMail: AWS WorkMail provides a business email and calendar service. WorkMail provides support for email clients on Android, iOS, Microsoft Outlook, any IMAP email client, and can also be accessed from a web browser.
  • Amazon Chime: Amazon Chime is a meeting communication service that provides high quality audio and video in real time. Chime provides an application to use and sync data across all device applications.

Desktop and app streaming

AWS provides remote desktops to work and run desktop-based applications on the cloud:

  • WorkSpaces: AWS WorkSpaces provides remote desktops that can be used for such things as providing access to documents. AWS charges you hourly or monthly for the WorkSpaces you create.
  • AppStream 2.0: AWS AppStream 2.0 is an application streaming service that can stream your desktop application deployed on AWS to HTML5-supported browsers running on any devices.

AR and VR

AWS provides rich APIs for developing applications based on augmented reality and virtual reality:

  • Amazon Sumerian: Amazon Sumerian allows us to create augmented reality (AR), virtual reality (VR), and 3D applications easily. Amazon Sumerian comes with rich APIs that can be used to develop rich 3D applications.
 

Sign-up process


To access Amazon Web Services, we need to create an account, which will ask for certain information and payment details. Let's create an account:

  1. Sign-up console: Go to http://aws.amazon.com and click on Create an AWS Account, or directly go to https://portal.aws.amazon.com/billing/signup:

Figure 1.1: Sign-up page

Fill in the details for Email address, Password, Confirm password, and AWS account name, and click Continue. Choose a strong password to prevent getting hacked.

  1. Provide Contact Information: Here, we need to provide the contact information of the AWS account holder:

Figure 1.1: Contact Information

Choose the Account type as per your choice, provide the required details, and click Create Account and Continue.

  1. Provide Payment Information: Here we will provide the payment information. AWS will charge us based on our AWS account billing:

Figure 1.3: Payment Information

  1. Phone Verification: Here we need to verify our phone number:

Figure 1.4: Phone Verification

Update your details if there are any changes and click Call Me Now. A code will be displayed on the screen and simultaneously you will get a call from Amazon to verify your phone number. Please verify it by providing the displayed code when called, and once verified, you can see on the window that your phone is verified and you will be redirected to the next screen.

  1. Select a Support Plan: Here, we need to choose a support plan that we need for our AWS account:

Figure 1.5: Support Plan

For our example, we are good with the Basic support plan, which is Free. Click Free and you will be redirected to the AWS Registration Confirmation Page.

 

Sign-in process


You have an AWS Account created and now we can sign in to the AWS Management Console to start using the services. Go to https://console.aws.amazon.com:

Figure 1.6: Sign-in page

Provide the AWS account Email address and click Next:

Figure 1.7: Sign in - Password

Provide the Password of your AWS account and click Sign in to log in to the AWS Management Console:

Figure 1.8: AWS Management Console

 

Regions


AWS offers services in multiple regions. This helps to reduce latency for an application. It is important to choose a specific region where customers are going to use your application. The following are the regions available for users:

  • US East (Northern Virginia)
  • US East (Ohio)
  • US West (Northern California)
  • US West (Oregon)
  • Canada (Central)
  • EU (Ireland)
  • EU (Frankfurt)
  • EU (London)
  • EU (Paris)
  • Asia Pacific (Singapore)
  • Asia Pacific (Sydney)
  • Asia Pacific (Seoul)
  • Asia Pacific (Tokyo)
  • Asia Pacific (Mumbai)
  • South America

To know which services are supported in each region, please visit https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/.

 

Installing the AWS CLI


The AWS Command Line Interface (CLI) is one of the ways to interact with AWS services. We will be showcasing CLI commands to use certain services in forthcoming chapters. So, as a prerequisite, we will install the AWS CLI on our machine.

Windows

To install the AWS CLI on Windows, we can install it directly by using MSI Installer or by using pip (package manager for Python). We will demonstrate the installation using MSI Installer:

  1. Download the installer from the following link, as per your machine's compatibility:
  1. Execute MSI Installer and follow the instructions.
  2. Once installed, you can check the installation by using the following command:
aws --version

The following output should be visible on the command line. The version may vary if you are installing older or later versions:

Figure 1.9: AWS CLI version

Linux

To install the AWS CLI on a Linux machine, we need to installpip (a package manager for Python):

  1. Download the script for installing pip:
curl -O https://bootstrap.pypa.io/get-pip.py
  1. Install pip:
python get-pip.py -user
  1. Add the pip installation path in the environment variables:
export PATH=~/.local/bin:$PATH
  1. Verify the pip installation:
pip --version
  1. Install the AWS CLI:
pip install awscli --upgrade --user
  1. Once installed, you can check the installation using the following command:
aws -version

The following output should be visible on the command line. The version may vary if you are installing older or later versions:

Figure 1.10: AWS CLI version - Linux

 

Summary


In this chapter, we covered an overview of AWS and the various services offered by AWS. It is very important to choose the appropriate service, which can be efficient, reliable and cost effective. We also covered steps for creating an AWS account, the regions offered by AWS, and the installation of the AWS CLI, which will be used in the future chapters.

In the next chapter, we will be learning about the Identity and Access Management (IAM) service, which is a core part of AWS.

 

About the Author

  • Sunil Gulabani

    Sunil Gulabani is a software engineer based in India. He is currently working on Java EE and the AWS Cloud platform. He is also a cloud evangelist who helps IT folks to leverage the AWS cloud platform for their business needs. He has insightful knowledge on designing microservices, system architecture and integration, data modeling, relational databases, and NoSQL in order for an application to achieve high throughput.

    He has authored the following books:

    • Developing RESTFul Web Services with Jersey 2.0
    • Amazon S3 Essentials
    • Practical Amazon EC2, SQS, Kinesis, and S3

    Browse publications by this author

Latest Reviews

(1 reviews total)
Good, easy and practical book

Recommended For You

Book Title
Access this book, plus 7,500 other titles for FREE
Access now