George McKinney Adventures in Software Development

September 3, 2021

CIS 194 Fall 2021

Filed under: AWS,CIS,Cloud,LA Mission College — georgemck @ 11:31 pm

CIS 194 Compute Engines Syllabus


Amazon Web Services logo with the arrow smile underneath


Semester: Fall 2021
Class CIS 194 – Online
Class Numbers: 23961/23962

Class Introduction

Welcome to Compute Engines in Amazon Web Services

We strive to create a learning community here — one where you learn from myself, the material and your fellow students through engaging and educational activities each and every week. Although we cannot be physically together, we can still create a feeling of connection to each other through a shared experience with the assignments, labs, and discussions. Here, you along with everyone else in class are valued members of this learning community. During this Covid-19 life we are living, there are additional challenges and responsibilities in life to family, friends and work. Sometimes, because we are human, we can get sick or just become overloaded. So, if you have reached a point where you can’t meet an assignment deadline, please contact me–we will work together to make a path to success. We are in this together.

If you are a student with a disability, please do not hesitate to let me know at the beginning of the semester, if you like to. You can access the Student Services Online for assistance; access to campus is closed due to the pandemic. The telephone number there is (818) 722-6752.

If you have any questions or concerns, please reach out to me. I am here to help. The best way to contact me is through Canvas Private Message (Inbox). I will get back to you within 24 hours, Monday thru Friday. Over the weekend it might be 48 hours.

I am excited to be guiding this class, I love working with Amazon Web Services and I hope you will, too.



Class Description and Overview

This course introduces AWS (Amazon Web Services) computing related services. Students will learn about the core computing services offered by AWS. The computing services will follow the computing models: Infrastructure as a Service, Platform as a Service, Function as a Service or Micro-services and server less computing (Lambda functions). Students will set up and manage computing services, configure auto scaling and load balancing. Students will learn to code auto deployment scripts to automate the management of AWS infrastructure.



Introducing the Instructor

Instructor standing in front of the London, England skyline


Hi, I’m George McKinney, a Software Developer based in Los Angeles. For 15 years, I have worked on projects for many companies including Acura, Disney, Samsung, LG, Kraft and numerous medium-sized firms and startups. My journey as a professional developer began at Los Angeles Community College where I studied C/C++, Java and Macromedia Flash. I learned computer science and applied it in marketing, sales, automation and communication solutions. I absolutely love what I do and sharing it. As I became more experienced, I went from attending workshops and conferences to presenting at them. I co-founded a mobile user group, organized meetups, conferences and travelled the world for “fun and profit.” Along the way, I taught software for the US Navy, City National Bank, Starwood Hotels, Stanford University, Cisco Systems, Lawrence Livermore National Laboratories, and other places. I have an MBA from the University of Southern California and my undergraduate degree was in History at Stanford University.

Nine years ago, I started using Amazon Web Services because I had heard something about Cloud Computing and I thought I could use it to put a website on it… something about S3 and a lot of EC2 and I figured I should have a look. At the time, I wasn’t much interested because mobile apps was in high gear and I focused my attention there. Five years years later, I began to see more job announcements come out requesting AWS from companies like Disney, Fox and others and I told myself to pay more attention to this. Around the same time, I got an Amazon Alexa and discovered that it was programmable and I was hooked. I reopened my AWS console and saw cobwebs on my S3 buckets and went straight writing Lambda functios with Node.JS and I haven’t looked back. Today, I work on large value projects building call centers, event rooms and communications platforms. I feel great when I see my work in people’s hands.


Instructor Contact Information


Please use the Canvas Inbox to send me an email so I receive push notification to my mobile phone and can respond to you faster. It will also keep all our course-related correspondence together.

I respond to emails and private messages within 24 hours, during the hours of 9:00 am to 9:00 pm, Monday through Friday, and 48 hours on weekends. My office hours are Thursday afternoons, 4pm to 6pm. I can also meet with you individually but contact me in advance to set a day and time.



Accommodation Statement for Students with Disabilities

The college and I are committed to your success here in this course. If you were not already aware we have resources described below for you. Please contact me if I can be of help or you need accomodation.

Disabled Student Programs and Services (DSP&S)

If you are a student with a disability and require classroom accommodations, please contact me to discuss arrangements. The sooner I am aware that you are eligible for accommodations, the quicker I will be able to provide them. If you have not done so already, you may also wish to contact the DSP&S Office in Instruction Building 1018 (phone 818-364-7732 / TTD (818) 364-7861 ) and ask them to contact me with a letter stating the accommodations that are needed.

Students requesting academic accommodations should first contact them online or by email , otherwise use the following procedure:
Step 1: Obtain documentation of your disability from a licensed professional. You may contact DSPS to request a Disability Verification Form.
Step 2: Make an appointment to meet with a DSPS Specialist to review your documentation and discuss reasonable accommodations.
To schedule a meeting, please call DSPS at (818) 364-7732.
Step 3: Bring your disability documentation to your DSPS appointment. The DSPS office is located in room 1018 of the Instructional Building.
Step 4: Each semester, reach written accommodation agreement with the DSPS Specialist and your instructor.

To be most effective, students should complete this process by the end of the 3rd week of the semester. Tests with required accommodations must be taken at the DSPS office. Since this course is completely online, you can take tests where it is most comfortable for you.


Student Learning Outcomes


Student Learning Outcomes

  1. 1. The student will demonstrate an understanding of how to implement computing services in AWS, and include AutoScale and load balance features.
  2. The student will employ AWS Lambda Services to create Serverless tasks.


Course Objectives

Upon satisfactory completion of the course, students will be able to:

  1. Explain the AWS Global Infrastructure
  2. Navigate the AWS Management Console
  3. Describe important design consideration in migrating computing services
  4. Design consideration of scalable cloud applications
  5. Understand AWS billing
  6. Understanding infrastructure as a code
  7. Understanding of service load balancing
  8. Understand the architectural approach used by AWS
  9. Understand AWS PaaS services
  10. Use AWS Elastic Beanstalk to highlight the PaaS model.
  11. Understand how to configure and manage serverless Web Apps
  12. Study AWS computing best practices
  13. Explore regions and Availability Zones of AWS
  14. Use AWS Management Console to identify various types of AMI and their usage
  15. Identify the benefits of plain AMI, pre-configured AMI, and AMI from AWS Marketplace
  16. Design consideration of scalable cloud applications
  17. Configure minimum/maximum number of instances as the work load changes in an automatic fashion.
  18. Have audit trails on how many instances are created and destroyed based on workload changes.
  19. Use Federated login to simplify login procedures. Explore CodeCommit, CodeDeploy and CodeBuild to streamline application development.
  20. Apply security rules at all levels of AWS resources
  21. Understand how to configure and manage serverless Web Apps
  22. Configure and use AWS Elastic Beanstalk
  23. Deploy/Test Lambda functions
  24. Critique various case studies for AWS computing best practices



Basis for Grading, Late Policy and Extra Credit


Unit Assignments

During the semester, 10 assignments must be completed, by the scheduled date. You will be dropped from the class if you fail to turn in two assignments.

Homework is to be submitted by the due date (Friday midnight). Late homework will not receive full credit, but will be accepted until Sunday midnight for 10% penalty.  Homework must be submitted using the blue Submit button on the assignment’s page.

If there are extenuating circumstances, send me a canvas message with the name of the assignment you wish to make a past due submission, and I will consider your request.

Threaded Discussions

Participation in the weekly discussion group online through Canvas is required. Threaded discussions account for 10% of your total grade, marks are rewarded on participation vs. non-participation.


Each of the 8 weeks there will be a quiz to assess that week’s module.

Final Exam

A comprehensive final exam is at the end of the semester. It will cover most topics presented during the course.

Class Project

During the term, you will complete a class project. The project will consist of analyzing the design and development of a system which could utilize the cloud services discussed in class. You may either choose a system of your own or I will provide one that you can use that you will be familiar with if you cannot think of one from your own experience. You will be dropped from the class if you fail to complete the class project.


Category Percent
Quizzes 20%
Unit Assignments (10 total) 30%
Discussion Participation (8 weeks) 10%
Final Exam 20%
Class Project 20%


Final Letter Grade

Total Percentage
A = 90% -100%
B = 80% – 89%
C = 70% – 79%
D = 60% – 69%
F = 0% – 59%


Textbook and Class Materials


Required Text Book

There are no required text books for this course. I hope you will find all the course content and the videos in the Canvas shell to be sufficient material to succeed in this course.

Optional Reference Material

  1. Amazon Web Services in Action by G. Wittig and A. Wittig ISBN-13: 978-1617295119
  2. Learning Amazon Web Services (AWS): A Hands-On Guide to the Fundamentals of AWS Cloud Mark Wilkins ISBN: 9780135301098
  3. AWS Certified Cloud Practitioner Complete Video Course by Richard Jones
  4. Miller, M.. Cloud Computing: Web-Based Application That Change The Way You Work And Collaborate Online, 1 ed. Que Publishers, 2013, ISBN: 978-0-7897-3803-5.
  5. Erl, T., Mahmood, Z., Puttini, R.. Cloud Computing: Concepts, Technology & Architecture, 1 ed. Prentice-Hall, 2013, ISBN: 9780133387520.



Advice for Class Success


This course was created using the Course Management System (CMS) called Canvas. For instructions on how to use it, I recommend reviewing their training videos. This knowledge will be beneficial for you in other courses you take in the California Community College system.


If you have not used the Canvas mobile app for you phone, try it out. You can participate in discussions, view assignments and send messages enabling you to stay on top of the course. See Contacting the Instructor for more information.


In order to access Amazon Web Services, you will need to use a supported web browser. At the present time, Amazon supports the following browsers:

  • Google Chrome: latest 3 versions
  • Mozilla Firefox: latest 3 versions
  • Microsoft Explorer: version 11 and higher Microsoft Edge: version 12 and higher
  • Apple Safari: version 7, 8 and 9

Please use one of these supported products. Install this product on the computer you plan to use to access Amazon Web Services and the Canvas course shell.


To do well in the course it is important that you complete the course work. For more detailed information, see the Basis for Grading page.


Class Attendance/Drop Policy


Please contact me as early as possible if you will not be connected to the class longer for more than 3 days. I monitor the assignment submissions, discussions and conversations inbox for your participation. You are a valuable member of our learning community and we need you. Let me work with you to help keep you moving forward in your studies.

As per college policy, if a student is inactive for more than a week (if 8 week session) or two weeks (if 16 week session), the instructor may exclude the student from the class. For online class, this occurs when a student has not submitted assignments due that week. For materials covered in the class, refer to the schedule on Canvas. If a student misses two weeks in a row of assignments, they will be dropped.

Campus and Class Rules


Dishonesty, such as cheating or knowingly furnishing false information to instructors and college personnel, turning in work that is not one’s one will be grounds for disciplinary action at LAMC according to the Standards of Student Conduct as described on the LAMC Catalog. The penalty may range from no credit for the assignment up to an “F” grade and disciplinary action. Students are expected to adhere to all school policies, and to abide by the standards of student conduct as described in the Los Angeles Mission College Catalog. Any infringement upon the rights of other students in the class will not be tolerated. Please refer to LACCD Board Rul 9800 for further information.

Please read and be aware of the Student Code of Conduct for Los Angeles Mission College.

Los Angeles Mission College Honor Code

9803.12 Academic Dishonesty: Dishonesty, such as cheating, or knowingly furnishing false information to colleges.

This generally means violations of academic integrity which include, but are not limited to, the following actions: cheating on an exam, plagiarism, working together on an assignment, paper or project when the instructor has specifically stated students should not do so, submitting the same term paper to more than one instructor, or allowing another individual to assume one’s identity for the purpose of enhancing one’s grade.

Plagiarism Statement

All students must comply with the policies that regulate all forms of academic dishonesty, or academic misconduct, including plagiarism, self-plagiarism, fabrication, deception, cheating, and sabotage.



July 20, 2021

Upgrading to PHP 7.2 on Amazon Linux

Filed under: AWS,CIS 192,PHP — georgemck @ 10:24 pm

#Upgrading to PHP 7.2 on Amazon Linux

#check current version of PHP
php -v

#stop APACHE and PHP services
sudo service httpd stop

#uninstall APACHE and PHP
sudo yum remove httpd* php*

#Get latest updates
sudo yum update -y

#install PHP 7.2
sudo yum install php72

#install MySQL driver for PHP 7.2
sudo yum install php72-mysqlnd

#Start APACHE web server
sudo service httpd start

sudo yum clean all

June 7, 2021

A delivery loop was detected

Filed under: Uncategorized — georgemck @ 12:10 pm


One day my email stopped working… Turns out the Google Workspaces had been suspended… So, I had to address that post haste!





delivery loop email  undeliverable


Error Icon

Message not delivered

Your message couldn’t be delivered to because the remote server is misconfigured. See technical details below for more information.
The response was:
A delivery loop was detected which causes this email to be undeliverable.







May 18, 2021

WordPress Canonical URL, Permalink Redirect, ERR_TOO_MANY_REDIRECTS

Filed under: Apache,WordPress — georgemck @ 3:22 pm

WordPress uses .htaccess to automatically attempt to correct URLs that are misunderstood. This behavior can lead to errors such as ERR_TOO_MANY_REDIRECTS and prevent intended funcationality such as using an index.html as a landing page for the domain. It is possible to Disable WordPress Canonical URL or Permalink Auto Redirect to fix these problems.


This code snippet can be placed at the top of the theme’s functions.php file:

remove_filter('template_redirect', 'redirect_canonical'); 

April 20, 2021

Alexa Fact Skill Content

Filed under: Alexa,Amazon,AWS — georgemck @ 5:41 pm


const GET_FACT_MESSAGE = ‘Here\’s your information: ‘;
const HELP_MESSAGE = ‘You can say tell me a fact, or, tell me about something… What can I help you with?’;
const HELP_REPROMPT = ‘What can I help you with?’;
const STOP_MESSAGE = ‘Goodbye!’;

const data = [
‘Fact Number One.’,
‘Fact Number Two.’

const GetNewFactHandler = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return request.type === ‘LaunchRequest’
|| (request.type === ‘IntentRequest’
&& === ‘GetNewFactIntent’);
handle(handlerInput) {
const factArr = data;
const factIndex = Math.floor(Math.random() * factArr.length);
const randomFact = factArr[factIndex];
const speechOutput = GET_FACT_MESSAGE + randomFact;

return handlerInput.responseBuilder
.withSimpleCard(SKILL_NAME, randomFact)

March 10, 2021

AWS CLI Builder

Filed under: AWS — georgemck @ 6:19 pm

Tool for constructing AWS CLI commands

Created by

AWS BASH Export Lambda Functions

Filed under: AWS — georgemck @ 6:18 pm

AWS CLI 2 for Exporting Lambdas

Export all lambda functions to lambdafunctions directory as indivudual zip files. Be sure to update the region, currently set to us-east-1


mkdir lambdafunctions
aws lambda list-functions | \
grep FunctionName | \
cut -d '"' -f4 | \
while read -r name; do
aws lambda get-function --function-name $name | tail -n 3 | egrep -o 'https?://[^ ]+' | sed 's/"//' | xargs wget -O ./lambdafunctions/$

AWS BASH Export Lex Bots

Filed under: AWS — georgemck @ 6:14 pm

AWS CLI 2 for Exporting a Bot

Export all bots to lexbots directory as indivudual zip files. Be sure to update the region, currently set to us-east-1


mkdir lexbots
aws lex-models get-bots | grep name | cut -d '"' -f4 | \
while read -r name; do
echo $name
url=$(aws lex-models get-export --name $name --resource-type BOT --export-type LEX --resource-version 1 --region us-east-1 --output json | grep url | cut -d '"' -f4)
wget $url -O ./lexbots/$


March 9, 2021

AWS Shell Gradle Install

Filed under: AWS — georgemck @ 3:12 am

Gradle versions available from:


sudo mkdir /opt/gradle
wget -c
sudo unzip -d /opt/gradle
export PATH=$PATH:/opt/gradle/gradle-6.8.3/bin

gradle -v


**NOTE:   export PATH will have to be done over with every launch of the shell. Alternatively, add it to ~/.bash_profile



AWS Shell Java Install

Filed under: AWS — georgemck @ 3:05 am

You can switch between versions with sudo



Step 1 – Install Java on Amazon Linux

The OpenJDK 8 is available under default yum repositories and OpenJDK 11 is available under Amazon Linux 2 extras repositories. You can simply install Java 11 or Java 8 on the Amazon Linux system using the following commands.

  • Run below commands to install Java 11 on Amazon Linux:
    sudo amazon-linux-extras install java-openjdk11
  • Run below commands to install Java 8 on Amazon Linux:
    sudo yum install java-1.8.0-openjdk

Step 2 – Check Active Java Version

After successfully installing Java on Amazon Linux using the above steps, Let’s verify the installed version using the following command.

java -version

openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

Step 3 – Switch Java Version

Use alternatives command-line utility to switch active Java version on your Amazon Linux system. Run below command from the command line and select the appropriate Java version to make it default.

sudo alternatives --config java

Install Java on Amazon Linux

After switching let’s check again active Java version:

java -version

openjdk version "11.0.7" 2020-04-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.7+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.7+10-LTS, mixed mode, sharing)




Older Posts »

Powered by WordPress