Academic Catalog

C S 55C: COMPUTE ENGINES IN AMAZON WEB SERVICES

Foothill College Course Outline of Record

Foothill College Course Outline of Record
Heading Value
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 55A.
Degree & Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Student Learning Outcomes

  • A successful student will be able to explain and apply principles of AWS Docker Containers via Elastic Container Service (ECS).
  • A successful student will be able to manage scaling of web servers using AWS Elastic Load Balancer.
  • A successful student will be able to demonstrate the principles of Serverless Architectures and Microservices using AWS Lambda Services

Description

In this course, students explore how cloud computing systems are built using a common set of core technologies, algorithms, and design principles centered around distributed systems. Students will use the Amazon Web Services (AWS) Management Console to provision, load-balance and scale their applications using the Elastic Compute Cloud (EC2) and the AWS Elastic Beanstalk. The course discusses, from a developer perspective, the most important reasons for using AWS and examines the underlying design principles of scalable cloud applications.

Course Objectives

The student will be able to:
A. Obtain and manage an Amazon (AWS) account and an Amazon Educate account
B. Describe basic cloud computing concepts and AWS services
C. Apply basic AWS storage services
D. Understand basics of AWS EC2 compute instances
E. Explain and apply principles of AWS Docker Containers via Elastic Container Service (ECS)
F. Demonstrate the principles of Serverless Architectures and Microservices using AWS Lambda Services
G. Explain principles of applications as environments via AWS Elastic Beanstalk
H. Understand and manage scaling of web servers using AWS Elastic Load Balancer
I. Demonstrate principles of provisioning and managing infrastructure using AWS Cloud Formation

Course Content

A. AWS access
1. AWS account acquisition
2. AWS command line interface
3. AWS Educate account acquisition
B. AWS cloud computing concepts
1. Business drivers
2. Cloud computing models
3. Security and compliance
4. AWS cloud platform overview
C. AWS storage services
1. AWS Simple Storage Service (S3) object storage
a. Creation and management of S3 Buckets via CLI
2. AWS Glacier archive storage
3. AWS Elastic File System (EFS) network file storage
a. Creation of EFS instances via AWS console
4. AWS Elastic Block Store (EBS)
5. AWS Snowball data transport service
6. AWS CloudFront content distribution service
D. AWS EC2 instances
1. Amazon Machine Instance (AMI) instance types
a. Machine sizing
b. System image types
2. Secure login via key pairs
3. Storage volumes
4. Availability zones
5. IP addressing
6. Virtual network
7. Pricing considerations
8. Security groups
E. AWS Docker Containers
1. Concepts
2. Container benefits
3. ECS Container Service
4. Creation and deployment of Docker images with ECS
F. Serverless Architectures and Microservices
1. Concepts and benefits (Functions as a Service)
2. AWS Lambda programming
3. Serverless best practices
4. Sample programming with Lambda functions employing DynamoDB
G. Application environments using AWS Elastic Beanstalk
1. Create an example Node.js web app using Elastic Beanstalk
2. Manage the application
H. Scaling of web servers using AWS Elastic Load Balancing
1. Creation of scaled and load balanced web application via the web interface
2. Creation of scaled and load balanced web application via the CLI
I. Basics of AWS Cloud Formation
1. Provisioning of infrastructure via JSON templates

Lab Content

A. Create AWS IAM Accounts (Root, Student, Professor)
B. Create and manage an AWS S3 Bucket via CLI
C. Create Elastic File System (EFS) via the AWS Console
D. Setup Linux LAMP EC2 Server with the required security settings
E. Setup Linux Server EC2 Instance for use as a template for the other servers in the course
F. Create and configure a Docker Image and deploy with ECS (Module 4)
G. Create a Lambda "Hello World API Gateway Trigger"
H. Create a Lambda function to provide a DynamoDB Read Engine
I. Use Elastic Beanstalk to create, view and deploy a simple Node.js web app
J. Configure and deploy a Classic Elastic Load Balancer and Auto Scaling web servers via the web interface
K. Classic Elastic Load Balancer and Auto Scaling web servers via the CLI and then setup a Scaled and Load-Balanced Application via Command Line Interface

Special Facilities and/or Equipment

A. Access to a computer laboratory with web browsers.
B. Website or course management system with an assignment posting component (through which all lab assignments are to be submitted) and a forum component (where students can discuss course material and receive help from the instructor). This applies to all sections, including on campus (i.e., face-to-face) offerings.
C. When taught via Foothill Global Access on the internet, the college will provide a fully functional and maintained course management system through which the instructor and students can interact.
D. When taught via Foothill Global Access on the internet, students must have currently existing email accounts and ongoing access to computers with internet capabilities.

Method(s) of Evaluation

A. Tests and quizzes
B. Written laboratory assignments, which include detailed instructions, sample runs and documentation
C. Final examination

Method(s) of Instruction

A. Lectures which include motivation for the architecture of the specific topics being discussed.
B. In-person or online labs (for all sections, including those meeting face-to-face/on campus), consisting of:
1. An assignment webpage located on a college-hosted course management system or other department-approved internet environment. Here, the students will review the specification of each assignment and submit their completed lab work.
2. A discussion webpage located on a college-hosted course management system or other department-approved internet environment. Here, students can request assistance from the instructor and interact publicly with other class members.
C. Detailed review of laboratory assignments which includes model solutions and specific comments on the student submissions.
D. In person or online discussion which engages students and instructor in an ongoing dialog pertaining to all aspects of designing, implementing and analyzing programs.
E. When course is taught fully online:
1. Instructor-authored lecture materials, handouts, syllabus, assignments, tests, and other relevant course material will be delivered through a college-hosted course management system or other department-approved internet environment.
2. Additional instructional guidelines for this course are listed in the attached addendum of C S department online practices.

Representative Text(s) and Other Materials

Ryan, M., and F. Lucifredi. AWS System Administration. O'Reilly Publishers, 2018. ISBN-13: 978-1449342579.

Sarkar, Aurobindo, and Amit Shah. Learning AWS: Design, Build, and Deploy Responsive Applications using AWS Cloud Components, 2nd ed. Packt Publishing, 2018. ISBN-13: 978-1787281066.

 

Types and/or Examples of Required Reading, Writing, and Outside of Class Assignments

A. Reading:

1. Textbook assigned reading averaging 30 pages per week.

2. Reading the supplied handouts and modules averaging 10 pages per week.

3. Reading online resources as directed by instructor though links pertinent to programming.

4. Reading library and reference material directed by instructor through course handouts.

B. Writing:

1. Writing technical prose documentation that supports and describes the programs that are submitted for grades.

 

Discipline(s)

Computer Science