Home - qyjohn/AWS_Tutorials GitHub Wiki

This is a set of hands-on lab tutorials on how to get started with the various AWS services from ground zero. Here we assume that you do not have any experiences with AWS before. The goal of these tutorials is to make you an experienced AWS user, with the capability of (1) programmatically interacting with the various AWS services using bash scripts, as well as various programming languages such as Python, Java and PHP; and (2) building large-scale web applications and large-scale batch processing applications on AWS.

The 1xx tutorials cover some basic (core) services that most of us will use on a daily base. When you are able to work with these core services, you are able to build large-scale web applications and large scale batch processing applications.

The 2xx tutorials cover some extra services. We will slowly add more service to this set of tutorials.

101. AWS EC2 01

Setting up EC2 instances with SSH and RDP access. Using the AWS CLI, with a little bit on AWS credentials and IAM Roles. Getting started on AWS SDK for Python (boto3) and AWS SDK for Java.

102. AWS EC2 02

This section covers instance-store volumes and EBS volumes. We introduce disk I/O observation tools such as dd and iostat. We also cover how to set up a RAID0 disk array using multiple instance-store volumes.

103. AWS EC2 03

This section covers shared file systems such as NFS and the EFS service. We also cover some basics on distributed file systems such as MooseFS and GlusterFS.

104. AWS S3 01

This section covers the basic usage of S3. You will interact with S3 using the AWS console, AWS CLI, and the AWS SDK for Java / PHP. You will build a simple web application allowing users to upload files to your S3 bucket. You will use the ELB to provide load balancing for multiple EC2 instances running the same web application.

105. AWS RDS 01

This section covers the basic usage of RDS, with a focus on RDS MySQL. We will use the AWS CLI and SDK to create and terminate RDS instances. We will create users, databases, tables, records on your RDS MySQL instance using the MySQL client. We will also interact with the RDS instances using the Java (through JDBC) and PHP.

106. AWS ElastiCache 01

This section covers Memcached and ElastiCache Memcached. We use Java code to demonstrate how to use Memcached as the cache layer for MySQL. We use PHP code to demonstrate how to use Memcached for session sharing.

107. AWS ElastiCache 02

This is a minor training session with more information on ElastiCache. This time we cover Memcached cluster and Redis cluster.

108. Scalable Web Application

The demo application takes advantage of the various services offered by AWS such as Elastic Computer Cloud (EC2), Elastic Load Balancer (ELB), Relational Database Service (RDS), ElastiCache MemCached, Simple Storage Service (S3), Identity and Access Management (IAM), as well as CloudWatch and AutoScaling. By using AWS we are making things easier so that an engineer with a little experience with Linux can easily finish this tutorual in a couple of hours. If you are building a scalable web application on your own infrastructure or on another public cloud, the theory should be the same but the actual implementation might be somewhat different.

109. Scalable Batch Processing

Using SQS to implement a scalable batch processing system.

110. Review

A quick review of what we learn.