|Learn Amazon Web Services in a Month of Lunches|
Page 1 of 4
Author: David Clinton
This book aims to teach you Amazon Web Services (AWS) in around 20 hours, how does it fare?
Businesses are increasingly moving applications to cloud infrastructure, owing to its many advantages (e.g. elastic scalability and cost). Amazon is the biggest player in cloud provisioning - so it makes sense for IT professionals to learn something about the technology underlying this change.
The book is divided into 21 lessons, each of which should be achievable within a 1-hour lunch break. Some of the additional practical hand-on labs may take a short while longer. The book is targeted at the beginner with no AWS experience.
Below is a chapter-by-chapter exploration of the topics covered.
Chapter 1 Before you begin
The book opens with a brief overview of what cloud computing is (i.e. the provision of on-demand resources remotely over a network), together with some of its advantages (e.g. low cost, elastic scalability, quick provisioning of servers). While there are many cloud service providers, AWS is the biggest and most-feature rich (incidentally, Amazon’s main income stream is from AWS usage, and not its online store).
Sensibly, the author asks, “Is this book for you?”, and proceeds to answer with some suitable types of applications together with a link to case studies. Next, how to use the book is outlined. The initial chapters follow the creation of a step-by-step WordPress-based website, with various AWS components being successively introduced. Later chapters concentrate on enterprise features, including: scalability, elasticity and High Availability.
The importance of performing the hands-on lab exercises to reinforce the discussions is noted. The lab environment refers to using your own AWS account, AWS offers lightweight versions of most services free for the first 12 months. Your account’s console page is the central point from where the various AWS components can be used. Helpfully, a link to the AWS’s voluminous documentation is provided.
The chapter ends with an overview of how AWS works, together with a diagram showing the developments you should be capable of after you’ve read the first half of the book.
I note the terms IaaS and PaaS are both used before they have been defined, also several terms are used that might not be suitable for the complete novice (e.g. RDS). Additionally, the book does not show you how to create your Free Tier AWS account (screenshots and step-by-step instructions would be useful for the beginner, even tucked away in an appendix).
Overall, this chapter is an easy read, with good explanations and flow between sections, helpful diagrams, and useful website links for further information. It provides a gentle degree of humor that assists the reading. These traits apply to the whole of the book.
Chapter 2 The 10-minute EC2 web server
An example company website forms the link for the forthcoming chapters, with AWS features and components added to increase the website’s functionality. Here the initial aim is to have a basic HTML page greet global customers – all within a matter of 10 minutes or less…
The core service Elastic Cloud Compute (EC2) allows you to rent computing power, which together with associated storage (Elastic Block Store [EBS]) and network functionality, enables quick setup.
There’s a step-by-step walkthrough on setting up your EC2 server. The importance of Amazon Machine Images (AMI) for creating a pre-configured setup (e.g. OS, application, storage) is highlighted. You’ll create a key pair (needed for security) before launching the EC2 instance. You’ll update and install LAMP (Linux, Apache, MySQL, and PHP) software and then create a simple website on your instance.
There’s a serious point about being careful with your password since your AWS account will be associated with your credit card, using a strong password and multifactor authentication is recommended (and a relevant AWS link provided). There’s a useful reminder, especially for beginners, that AWS screenshots may change, since new services are added and updated frequently.
The chapter ends with a useful section on troubleshooting.
The book’s early exercises are based on AWS EC2 having Ubuntu version 16.04, however when I did the practicals, the version was 18.04. More importantly, several of the Linux commands (and LAMP-related software) given in the book gave me problems, searching the internet showed others had problems with similar commands. For me, this is unacceptable in a book purported to teach me how to use AWS.
Chapter 3 Provisioning a more robust EC2 website
The opening discussion looks at the resources you need to be aware of, namely: CPU capacity, Hard Drive capacity, RAM, and Network bandwidth. AWS has EC2 instances for different types of resource requirements (e.g. memory optimized). Additionally, the location of your AWS instance will also impact performance (you typically want it located near your customers).
Having created a simple website, this is extended by creating a website using WordPress – which apparently underlies 25% of all existing websites. A step-by-step walkthrough is provided, with explanations and appropriate Linux commands.
Again, I had problems with the hands-on lab. When installing mysql, the author says you will be prompted to create a password, and you’ll need this subsequently. However, there was no prompt (others had this problem too). Additionally, the author forgets to tell you to precede many of the Linux commands with sudo (i.e. super user do) – perhaps he assumes everyone is Linux aware.
Chapter 4 Databases on AWS
This chapter opens with a quick definition of a database, and its importance in data analysis. The various types of database are outlined, namely relational (strict and structured) and NoSQL (less strict and less structured). There’s a useful paragraph on how to choose the type of database.
Next, infrastructure design is discussed. While having the database stored in the same place as the web-server is adequate for small systems, for larger systems databases tend to be separated from the web-servers (e.g. for security). It’s noted that Amazon’s managed Relational Database Service (RDS) provides various relational databases (e.g. SQL Server), together with High Availability, backups, and updated (patched) software – all on a separate database server.
There’s a useful section on cost estimates, with sample monthly costs given for various levels of resource usage. The importance of the trade-off between price, performance, security etc is highlighted. There’s a useful link to Amazon’s Simple Monthly Calculator for cost estimation.
Having discussed some theory, the author now moves to migrating the MySQL database you created in chapter 3, to RDS. There’s step-by-step guidance for creating a MySQL dump (copy of database), create an RDS instance, and uploading the saved MySQL database dump to this RDS database server.
Overall, another useful practical chapter. I note the term Multi-AZ is used before being defined.
Chapter 5 DNS: what’s in a name?
Websites can be identified more easily by a meaningful name (e.g. Google.com) instead of its under IP address (e.g. 220.127.116.11). This translation is done by the Domain Name System (DNS). The section describes how to use Amazon’s Route 53 service to register a name, and then associate that name with its IP address.
If your websites are successful, routing will need to be examined if you want to maintain an optimal user experience (e.g. reroute traffic via another webserver if the load exceeds a threshold). Various rules for rerouting are discussed, including: failover, geolocation and latency. The importance of creating a Health Check to monitor and respond to problems is discussed.
Chapter 6 S3: cheap, fast file storage
When you provision an AWS server, you get a predefined amount of EBS storage, but you’ll need more storage as your application grows. Since EBS is relatively expensive, Amazon’s Simple Storage System (S3) is typically used for addition storage.
The author describes how S3 is structured into buckets. The chapter provides a step-by-step walkthrough on creating S3 buckets using an S3 wizard, this continues with another wizard that uploads files to your newly created S3 bucket. User access and permissions can be set at both the bucket and individual file level. You can also define the degree of data durability, availability, and encryption for your files – and this is illustrated.
The practical part of the chapter shows how to integrate your uploaded S3 file into your EC2-based website. The chapter ends with a useful walkthrough of using S3 to host a website, thus avoiding the cost and complexity of an EC2 server. Note S3 can only host a static website (i.e. no server-side scripting).
This chapter provides a good overview of what S3 is, together with its advantages and limitations.
|Last Updated ( Tuesday, 07 May 2019 )|