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
Effective Term: Summer 2024
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 30A, C S 50A and 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 compute workloads are supported using a set of core technologies in the Amazon Web Services (AWS) platform. Students use the AWS Management Console, Command Line Interface (CLI), and Cloud Formation infrastructure deployment tools to deploy services. The course takes a deep look into virtualization using AWS Elastic Compute Cloud (EC2) by detailing configuration options for specific workloads in terms of performant compute/memory/storage capabilities. Modern application architectures, such as serverless, microservices, containerization, service orchestration, and edge computing, are detailed and their deployment using AWS services are demonstrated.

Course Objectives

The student will be able to:

  1. Obtain and manage an Amazon (AWS) account and an Amazon Educate account
  2. Describe the benefits of cloud computing, cloud computing models, and the AWS Global Infrastructure, and summarize AWS services
  3. Describe and configure basic AWS storage services, including object based, archival, block based, and file based storage, and describe how they are accessed via compute instances
  4. Understand basics of AWS EC2 compute instances, including configuration, machine images, firewalls, basic security, and best practices
  5. Understand and configure fault tolerance and horizontal scaling using AWS Elastic Load Balancing (ELB) and auto scaling
  6. Explain and apply principles of AWS Docker Containers via Elastic Container Service (ECS) and explain the differences between virtual machines and containers
  7. Deploy containers via the AWS Elastic Container service
  8. Understand and deploy applications via orchestration using Kubernetes using the AWS Elastic Kubernetes service
  9. Demonstrate the principles of serverless architectures and microservices using AWS Lambda services
  10. Explain principles of applications as environments via AWS Elastic Beanstalk
  11. Demonstrate principles of provisioning and managing infrastructure using infrastructure as code principles via AWS CloudFormation
  12. Understand the basics of other AWS compute services, such as AWS Batch (batch processing), Lightsail (prepackaged application environments), WorkSpaces (desktop as a service), edge services (Local Zones)

Course Content

  1. AWS access
    1. AWS account acquisition
    2. AWS command line interface
    3. AWS Educate account acquisition
  2. AWS cloud computing concepts
    1. Business drivers/benefits
    2. Cloud computing models
    3. Security and compliance
    4. Deployment models
    5. AWS cloud platform overview
  3. AWS storage services
    1. AWS Simple Storage Service (S3) object storage overview
    2. S3 storage classes
    3. AWS Glacier archive storage
    4. S3 Cross-Region Replication
    5. S3 Lifecycle management
    6. S3 pricing
    7. S3 operations via AWS Command Line Interface (CLI)
    8. AWS Elastic File System (EFS) network file storage
      1. Creation of EFS instances via AWS console
      2. EFS Pricing
      3. EFS mounting to AWS EC2 instance
    9. AWS Elastic Block Store (EBS)
      1. EBS overview and review of block storage
      2. EBS pricing
      3. RAID block storage and EBS application
  4. AWS EC2 instances
    1. EC2 overview and features
    2. EC2 instance families and types
    3. EC2 purchase models and pricing
    4. Amazon Machine Instance (AMI) instance overview
    5. EC2 instance lifecycle
    6. Storage volumes
    7. Firewall services using AWS Security Groups
    8. Access control via encryption Key Pairs
    9. EC2 best practices
  5. EC2 fault tolerance and horizontal scaling
    1. Review of fault tolerance and AWS services that are/are not fault tolerant
    2. Load balancing
      1. Load balancing principles
      2. AWS Elastic Load Balancing (ELB)
      3. Load balancing architecture patterns
      4. ELB components and configuration
      5. DNS and load balancing
      6. ELB pricing
    3. Auto scaling
      1. Principles
      2. Launch templates
      3. Dynamic (elastic) scaling policies
      4. Availability zones (AZ) and fault tolerance
      5. Instance distribution
      6. Autoscaling lifecycle
  6. Containerization and Docker
    1. Microservices concepts
    2. Container benefits
    3. Docker containers
    4. AWS Elastic Container Service (ECS)
    5. Creation and deployment of Docker images with ECS
  7. Containerization and orchestration using Kubernetes
    1. Kubernetes overview and architecture
    2. Kubernetes deployment, change, and manifest
    3. Kubernetes services
  8. Kubernetes on AWS Elastic Kubernetes Service (EKS)
    1. EKS control plane architecture
    2. EKS workers
      1. EC2 nodes
      2. Managed nodes using AWS Fargate
    3. AWS EKS cluster deployment
  9. Serverless architectures and microservices
    1. Concepts and benefits (Functions as a Service)
    2. AWS Lambda use cases
    3. AWS Lambda function basics
    4. Lambda function invocation methods
    5. AWS Lambda security consideration
    6. AWS Lambda resource models, choice, and pricing
  10. Application environments using AWS Elastic Beanstalk
    1. N-tier architecture review
    2. AWS Elastic Beanstalk fundamentals
    3. Workflows
    4. Management
  11. Automated infrastructure deployment (infrastructure as code)
    1. AWS Cloud Formation overview
    2. Cloud Formation templates
  12. Advanced AWS Compute services
    1. AWS Batch
    2. AWS Lightsail
    3. AWS Workspaces
    4. AWS Outposts
    5. AWS Local Zones

Lab Content

  1. Create AWS working environment including AWS account, AWS Educate Account, and AWS Command line interface on local computer
  2. Create an S3 bucket with lifecycle rules to move objects to differing S3 storage categories
  3. Create Elastic File System (EFS) via the AWS Console
  4. Create an Elastic Block Storage volume via the AWS Console
  5. Create an EC2 instance running a Linux GUI, remotely connect and mount EFS and EBS volumes
  6. Create a load balanced, auto scaled EC2 deployment, and test management and fault tolerance
  7. Create a Docker image and deploy to AWS ECS
  8. Demonstrate Kubernetes cluster operations
  9. Deploy a Kubernetes cluster via the AWS EKS service and launch a sample Linux workload to the cluster
  10. Deploy a microservices application for image processing using AWS Lambda serverless and S3 storage triggers
  11. Deploy a high availability web application using an Elastic Beanstalk deployment and RDS database
  12. Deploy and modify a web application via automation via AWS CloudFront

Special Facilities and/or Equipment

1. Access to a computer with a web browser compatible with the Foothill learning management system and AWS Console.
2. A payment method for accessing AWS services (credit/debit/stored value card). AWS as a commercial service requires all accounts to be paid for accounts. AWS will provide credits and no actual spending with normal class use would be incurred.
3. A learning 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.
4. The college will provide a fully functional and maintained course management system through which the instructor and students can interact.
5. Students must have email accounts and ongoing access to computers with internet capabilities.

Method(s) of Evaluation

Methods of Evaluation may include but are not limited to the following:

Tests and quizzes
Written laboratory assignments, which include detailed instructions, sample runs, and documentation
Completion of class project implementing and describing real world compute instances using the AWS platform with AWS published tutorials and workshops
Final examination

Method(s) of Instruction

Methods of Instruction may include but are not limited to the following:

Lectures which include motivation for the architecture of the specific topics being discussed
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
Detailed review of laboratory assignments which includes model solutions and specific comments on the student's submissions

Representative Text(s) and Other Materials

All course materials provided by instructor through the online course management system.

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

  1. Reading:
    1. Reading the supplied handouts and modules averaging 30 pages per week
    2. Reading online resources as directed by instructor though links pertinent to the course
    3. Watching video presentations by AWS and other cloud providers as contained in the course
    4. Reading library and reference material directed by instructor through course handouts
  2. Writing:
    1. Writing technical prose documentation that supports and describes the programs that are submitted for grades

Discipline(s)

Computer Science