C S 55A: INTRODUCTION TO CLOUD COMPUTING IN AMAZON WEB SERVICES
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 and C S 50A. |
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 the features of AWS cloud services including computing, global infrastructure and data center deployments.
- A successful student will be able to create and deploy a basic web server on the AWS platform, enable domain-name services and upload website content.
- A successful student will be able to describe and explain the cloud computing model, history, vendor perspectives and industry offerings.
Description
Course Objectives
The student will be able to:
- Understand and describe the cloud computing model, history, vendor perspectives, and industry offerings
- Describe how to obtain and actually obtain an Amazon (AWS) account and an Amazon Educate account
- Understand the current cloud commercial and technical environments
- Explain the current AWS cloud services, including computing, global infrastructure, and data center deployments
- Understand and navigate the AWS Management Console to manage AWS services and understand the basics of the Identity and Access Management (IAM) interfaces
- Describe the basics of AWS services costs, costs management, billing, and budgeting basic tools
- Create a basic web server on the AWS platform, enable domain services, and upload website content
- Demonstrate how to implement an example web service (AWS Polly), access it, and understand pricing
- Understand AWS Elastic Compute Services, including instance types, machine images, and pricing
- Explain the purpose and use of the AWS Elastic Cloud (EC 2)
- Demonstrate how to utilize AWS educational and career offerings
Course Content
- Cloud computing fundamentals
- History
- Business drivers
- Basic concepts and terminology
- Goals/benefits
- Risks and challenges
- Vendor perspectives
- Infrastructure as a service (IaaS)
- Platform as a service (PaaS)
- Software as a service (SaaS)
- AWS access
- AWS account acquisition
- AWS Educate account acquisition
- Cloud adoption
- Current state of the cloud
- Business benefits and challenges of cloud services
- Cloud services offerings in the marketplace
- Case studies of AWS customers
- Cloud services from AWS
- Computing with AWS
- The AWS platform
- AWS global infrastructure
- Data center concepts
- Managing the AWS platform
- Understanding the AWS management console
- AWS Identity and Access Management (IAM)
- Understanding the IAM service
- IAM users, principals, groups, policies roles
- IAM user management
- AWS billing, costs, and cost monitoring
- Pricing concepts
- Free tier offering
- Establishment of budgets
- Creation of billing alarms
- Billing estimation and monthly calculator
- CloudWatch metrics
- CloudWatch fundamentals
- CloudWatch billing alarms
- S3 Simple Storage Service
- S3 storage options and pricing
- S3 bucket and object manipulation
- S3 static website operation
- Amazon Machine Learning (ML) services
- Amazon Polly Text to Speech (TTS) service
- Amazon Transcribe Speech to Text service
- Amazon Translate service
- Serverless computing
- Serverless principles and concepts
- Introduction to AWS Lambda
- AWS Lambda pricing
- AWS Lambda IDE development and functional testing
- Unstructured (NoSQL) database
- Basic database concepts
- Introduction to DynamoDB modes and pricing
- Creating and querying of NoSQL tables
- Amazon AWS Elastic Compute Cloud (EC2) services
- Introduction to virtual machines
- Overview of EC2 services and instance types
- EC2 tenancy and pricing models
- Amazon Machine Image (AMI) fundamentals
- Deployment of sample webserver
- Introduction to Linux and EC2
- Linux fundamental concepts
- Launching an EC2 instance running Linux
- Remote connections to EC2 instance running SSH
- Demonstration of EC2 Linux commands
- AWS support services and pricing
- AWS architecture best practices and tools
- Introduction to the AWS Well-Architected framework
- AWS Trusted Advisor
- Cloud careers via AWS Educate
- Learning program features
- Portfolio, certificates, and career postings
- EC2 fault tolerance
- Fault tolerance concepts
- Elastic load balancing using AWS ELB
- Fault tolerance architecture and testing
- AWS professional certifications
- Foundation Level
- Associate Level
- Specialty
- Professional Level
Lab Content
- Essay reflections on cloud services with focus on XaaS (X as a Service)
- Setup and confirmation of AWS account and AWS Educate account. Application for promotion code
- Essay reflection on AWS cloud services overview
- Review categories of AWS services
- Create/configure and utilize an AWS Identity and Access Management (IAM) user account
- Create an AWS budget and alert allowing spending oversight using both AWS Budgets and AWS CloudWatch
- Demonstrate competency on AWS S3 object storage. Estimate S3 pricing based on different models and utilizations. Create a simple static website in AWS
- Demonstrate how to deploy a simple microservice using AWS Lambda serverless compute service and define costs
- Demonstrate how to deploy a simple object database using AWS DynamoDB and define costs of different usage models
- Demonstrate AWS Polly TTS, AWS Transcribe STT, and AWS Translate ML service, and explain costs
- Use Amazon EC2 services to create an EC2 WordPress instance and manage the service
- Use Amazon EC2 services to create an EC2 instance running Linux, remotely SSH to the instance, and demonstrate basic Linux commands
- Demonstrate the services provided and cost structures for AWS support services
- Class project:
- Build an operational web service business utilizing AWS services, including:
- Authorization/authentication using AWS Cognito
- Static website content service using AWS S3
- Deployment of application code using JavaScript
- Applications Program Interface using AWS API Gateway
- Microservices business logic using AWS Lambda
- Back-end object storage using AWS DynamoDB
- Create a business presentation of the above project detailing the technologies learned in the class as well as the business aspects of the project such as architectures, design choices, performance, and costs
- Build an operational web service business utilizing AWS services, including:
Special Facilities and/or Equipment
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
Tests and quizzes
Written laboratory assignments which include detailed instructions, sample runs, and documentation
Course project which will demonstrate ability to independently deploy a complex, real world service and evaluate from the service from a business perspective
Final examination
Method(s) of Instruction
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 specific comments on the student submissions
In-person or online discussion which engages students and instructor in an ongoing dialog pertaining to all aspects of designing, implementing, and analyzing programs
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 addendum of C S department online practices
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
- Reading:
- Reading the supplied handouts and modules averaging 30 pages per week
- Reading online resources as directed by instructor though links pertinent to the course
- Watching video presentations by AWS and other cloud providers as contained in the course
- Reading library and reference material directed by instructor through course handouts
- Writing:
- Writing technical prose documentation that supports and describes the programs that are submitted for grades