31,19 €
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.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 242
Veröffentlichungsjahr: 2018
Copyright © 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor: Vijin BorichaAcquisition Editor: Namrata PatilContent Development Editor: Deepti ThoreTechnical Editor: Nirbhaya ShajiCopy Editor:Safis EditingProject Coordinator: Shweta H BirwatkarProofreader: Safis EditingIndexer: Priyanka DhadkeGraphics: Jisha ChirayilProduction Coordinator: Shraddha Falebhai
First published: March 2018
Production reference: 1290318
Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK.
ISBN 978-1-78829-445-4
www.packtpub.com
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
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
GogulaRaja S. R. is a DevOps engineer at Cloudenablers Inc, a product-based company in Chennai, India. He takes care of analyzing and setting up the environments in the public cloud for the customers. He has also worked extensively with automation technologies (Chef and Ansible). He possesses the ability to deep dive into a specific area whenever the need arises and make sense of it quickly.
Dhwani Dyer is a software engineer from India. She's done her bachelor's from Gujarat University and master's from Gujarat Technological University and is currently working at Infostretch as an implementation analyst on Java-based applications. She's interested in freelancing for development, AWS, Jenkins, and Relational Database. She's keen interest in writing tech blogs, book reviews, and is actively involved in knowledge sharing communities with knowledge of Java, HTML, CSS, AWS, Linux basic, data modeling, relational database, and has experience on the client side too.
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Title Page
Copyright and Credits
Amazon Web Services Bootcamp
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the author
About the reviewers
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Getting Started with AWS
Introduction to AWS
Services offered by AWS
Compute
Storage
Database
Networking and content delivery
Migration
Development tools
Management tools
Media services
Machine learning
Security, identity, and compliance
Analytics
Internet of Things
Contact center
Game development
Mobile services
Application integration
Business productivity
Desktop and app streaming
AR and VR
Sign-up process
Sign-in process
Regions
Installing the AWS CLI
Windows
Linux
Summary
Configuring IAM
Policies
AWS Management Console
Creating a policy
AWS CLI
Creating a policy
Creating a policy version
AWS SDK – Java
Creating a policy
Creating a policy version
AWS CloudFormation
Role
AWS Management Console
Creating a role
AWS CLI
Creating a role
Attaching managed policies
Creating an inline role policy
AWS SDK – Java
Creating a role
Attaching managed Policies
Creating an inline role policy
AWS CloudFormation
Group
AWS Management Console
Creating a group
AWS CLI
Creating a group
Attaching a group policy
Adding a group policy – Inline
AWS SDK – Java
Create Group
Attaching a group policy
Adding a group policy – Inline
AWS CloudFormation
Users
AWS Management Console
Create an user
AWS CLI
Create an user
Creating an access key
Creating a login profile
Adding a user to the group
Attaching a user policy
AWS SDK – Java
Creating a user
Create an access key
Creating a login profile
Adding a user to a group
Attaching a user policy
AWS CloudFormation
Summary
Building Servers Using EC2
EC2 instance types
Amazon Machine Images
Key pairs
AWS Management Console
Creating key pairs
AWS CLI
Creating key pairs
AWS SDK - Java
Creating key pairs
Security groups
AWS Management Console
Creating a security group
AWS CLI
Creating a security group
Adding an inbound rule
AWS SDK – Java
Creating a security group
Adding an inbound rule
AWS CloudFormation
EC2 instance
AWS Management Console
Launching an instance
Connecting to the EC2 instance
AWS CLI
Launching an instance
AWS SDK - Java
Launching an instance
AWS CloudFormation
Elastic Load Balancer
AWS Management Console
Creating a load balancer
AWS CLI
Creating a load balancer
Creating load balancer listeners
Configuring a health check
Registering an instance
AWS SDK - Java
Creating a load balancer
Creating load balancer listeners
Configuring a health check
Registering a instance
AWS CloudFormation
Auto Scaling groups
AWS Management Console
Creating an Auto Scaling group
AWS CLI
Creating a launch configuration
Creating an Auto Scaling group
Creating a scaling policy
AWS SDK - Java
Creating a launch configuration
Creating an Auto Scaling group
Creating a Scaling Policy
AWS CloudFormation
Elastic Block Storage
Summary
Storing Files on S3
Bucket
AWS Management Console
Creating a bucket
AWS CLI
Creating a bucket
AWS SDK (Java)
Creating a bucket
AWS Cloud Formation
Objects
AWS Management Console
Creating a folder
Uploading an object
Getting an object
AWS CLI
Creating a folder
Uploading an object
Getting an object
AWS SDK (Java)
Creating a folder
Uploading an object
Getting an Object
Static Website Hosting
AWS Management Console
Summary
Managing RDS
Supported databases
Amazon Aurora
MariaDB
Oracle
MySQL
PostgreSQL
Microsoft SQL Server
DB instance
AWS Management Console
Creating a security group
Creating a DB instance
Testing the database connection
AWS CLI
Creating a DB instance
AWS SDK – Java
Creating a DB instance
AWS CloudFormation
Summary
Implementing DynamoDB – NoSQL Database
Basic concepts
Tables
Items
Attributes
Data types
Primary keys
Secondary indexes
Streams
DynamoDB tables
AWS Management Console
Creating a table
AWS CLI
Creating a table
AWS SDK - Java
Create table
AWS CloudFormation
CRUD operations
Create item
Get item
Query items
Scanning items
Update item
Delete item
Summary
Implementing Caching Using ElastiCache
ElastiCache – Memcached
AWS Management Console
AWS CLI
AWS SDK – Java
AWS CloudFormation
ElastiCache – Redis
AWS Management Console
Creating Redis (cluster mode disabled) ElastiCache server
Creating the Redis (cluster mode enabled) ElastiCache
AWS CLI
Creating Redis ElastiCache node
Creating Redis (cluster mode disabled) ElastiCache
Create Redis (cluster mode enabled) ElastiCache
AWS SDK – Java
Create Redis ElastiCache node
Create Redis (cluster mode disabled) ElastiCache
Create Redis (cluster mode enabled) ElastiCache
AWS CloudFormation
Create Redis ElastiCache node
Create Redis (cluster mode disabled) ElastiCache
Create Redis (cluster mode enabled) ElastiCache
Summary
Triggering Notifications
Protocols
Topics
AWS Management Console
AWS CLI
AWS SDK – Java
AWS CloudFormation
Subscription
AWS Management Console
AWS CLI
AWS SDK – Java
AWS CloudFormation
Publishing a message
AWS Management Console
AWS CLI
AWS SDK – Java
Summary
All About CloudWatch
Metrics
Publishing metric data
Alarms
AWS Management Console
AWS CLI
AWS SDK – Java 
AWS CloudFormation
Events
Logs
Publishing logs
Viewing logs
Dashboards
AWS Management Console
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
AWS is at the forefront of cloud computing today. Businesses are adopting AWS Cloud because of its reliability, versatility, and flexible design.
The book will guide you to build and manage highly reliable and scalable applications and services on AWS. Also, you will be learning all the necessary skills to design, deploy, and manage your applications and services on the AWS cloud platform. Initially, we will walk you through various web services offered by Amazon. This will help you to get a high-level of understanding of different services.
Moving forward, we will be exploring Amazon IAM, EC2, S3, RDS, and more, to get you well-versed with core Amazon services. Each chapter will contain different ways to access AWS resources such as AWS Management Console, AWS CLI, AWS SDK (Java), and Cloud Formation. Later, you may choose any of the ways to create your cloud infrastructure. The book also contains easy-to-follow hands-on steps, tips, and recommendations, along with security and troubleshooting concepts.
By the end of the book, you will be able to create a highly secure, fault-tolerant, and scalable environment for your applications to run on.
Let’s play with Amazon Web Services!
This book targets IT professionals and system administrators looking at designing, deploying, and managing your applications and services on the AWS cloud platform. Developers looking at building highly scalable cloud-based services will also find this book useful. A basic understanding of AWS would be beneficial.
Chapter 1, Getting Started with AWS, briefs you about the basics of cloud computing and what Amazon Web Services (AWS) offers in cloud computing ecosystem. We will have walkthrough on different services offered by Amazon and sign-up processes.
Chapter 2, Configuring IAM, explains how to manage the access to AWS resources. This is a central security service around which all different AWS resources are surrounded for access management.
Chapter 3, Building Server Using EC2, helps you to build highly available and scalable applications using EC2 instances. We will learn how to configure the load balancer and auto-scaling feature, which helps to scale our application dynamically.
Chapter 4, Storing Files on S3, demonstrates how to utilize the cloud storage for more than one. We will learn about how to store data to and retrieve data from S3 and host a static HTML website.
Chapter 5, Managing RDS, lets you set up and operate database over the cloud. We will learn about different database engines supported by Amazon RDS and how to set up the MySQL database instance.
Chapter 6, Implementing DynamoDB – NoSQL Database, lets you create and operate a DynamoDB table. We will talk about auto-scaling the provisioned throughput on the DynamoDB table and secondary indexes, and then we have an example that will demonstrate CRUD operations.
Chapter 7, Implementing Caching Using ElastiCache, guides you through creating a caching server on the AWS cloud. We will learn about caching servers supported by the Amazon ElastiCache service and how to set up the infrastructure.
Chapter 8, Triggering Notifications, lets you create an SNS topic and send notifications to subscribers. We will also talk about push notifications on mobile devices and desktops.
Chapter 9, All about CloudWatch, explains how to monitor the AWS resources and applications to make sure they are up and running. You will learn about different features of CloudWatch, such as Alarm, Metrics, Logs, and Events.
There are a few considerations to follow the examples in this book: a text editor or IDE (I use IntelliJ IDEA), internet access, and admin rights to your machine to install software.
You can download the example code files for this book from your account at www.packtpub.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.
You can download the code files by following these steps:
Log in or register at
www.packtpub.com
.
Select the
SUPPORT
tab.
Click on
Code Downloads & Errata
.
Enter the name of the book in the
Search
box and follow the onscreen instructions.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
WinRAR/7-Zip for Windows
Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux
The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Amazon-Web-Services-Bootcamp. In case there's an update to the code, it will be updated on the existing GitHub repository.
We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: http://www.packtpub.com/sites/default/files/downloads/AmazonWebServicesBootcamp_ColorImages.pdf.
Feedback from our readers is always welcome.
General feedback: Email [email protected] and mention the book title in the subject of your message. If you have questions about any aspect of this book, please email us at [email protected].
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!
For more information about Packt, please visit packtpub.com.
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
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.
AWS offers a wide range of services under different categories. The following are some of the services that are offered by AWS.
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.
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.
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.
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.
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