George McKinney Adventures in Software Development

June 9, 2025

CIS 192 Summer 2025

Filed under: AWS,CIS,CIS 192,LA Mission College,lamc — georgemck @ 2:28 pm

CIS 192 Introduction to Cloud Computing Syllabus

 

Amazon Web Services logo with the arrow smile underneath

 

Semester: Summer 2025
Class: CIS 192 – Online
Class Section Numbers:  12142/12143
June 16 – Sept 15, 2025
Office Hours https://laccd.zoom.us/j/83780317374 Thursday 4pm

Class Introduction

Welcome to Introduction to Cloud Computing with Amazon Web Services

My name is George McKinney and I am excited to be your course instructor. This class will go by very quickly. Cloud Computing becomes more and more relevant to our daily lives and this course will put you on the path to be at the center of the action. From streaming video with Netflix and gaming with Google Stadia to educational systems like Canvas and online sales platforms Amazon.com, Cloud Computing is everywhere. Sixteen years ago, I took courses similar to this one that provided me the foundation to work in the technology sector. With this course, you will gain an edge too and I hope you will have a fun and rewarding career.

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. 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.

–George

mckinng@lamission.edu

 

Class Description and Overview

Cloud computing shifts information systems from on-premises computing infrastructure to highly scalable internet architectures. This course provides a solid foundation of cloud computing technologies and provides students with the understanding required to effectively evaluate and assess the business and technical benefits of cloud computing and cloud applications. Students analyze a variety of cloud services (storage, servers and software applications) and cloud providers. Case studies will be used to examine various industry cloud practices and applications. The course also surveys cloud careers and discusses industry demand for cloud skills.

 

 

Introducing the Instructor

Hi, I’m George McKinney, a Software Developer based in Los Angeles. For 17 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 functions 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 Wednesday and Friday afternoons, 2 to 4pm. 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 accommodation.

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

  1. The student will demonstrate an understanding of cloud computing, it’s advantages and disadvantages and an understanding of the different cloud computing models.
  2. The student will have basic knowledge of how data center services can be migrated to the Amazon Web Service public cloud.

 

Course Objectives

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

  1. Describe the cloud computing model
  2. Describe examples of infrastructure as a service
  3. Describe examples of platform as a service
  4. Describe examples of software as a service
  5. Recognize and mitigate security concerns associated with cloud computing
  6. Recognize and mitigate legal concerns associated with cloud computing
  7. Use current cloud services from leading service providers

 

New Skills

By the end of this course, you will :

  • Understand AWS Support, Credits and Pricing
  • Create an AWS account
  • Host a static website
  • Bring words to life by converting text to speech
  • Build a Dynamic LAMP-based Website with WordPress
  • Evaluate Career Options available in Cloud Computing

 

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.

Quizzes

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 0%
Unit Assignments (10 total) 45%
Discussion Participation (8 weeks) 5%
Final Exam 20%
Class Project 30%

 

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

Canvas

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.

Communication

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.

Software

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.

Assessments

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

Attendance

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

STANDARDS FOR STUDENT CONDUCT

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.

 

 

May 25, 2025

Swift Development

Filed under: Uncategorized — georgemck @ 6:34 am

#Docker run

sudo docker run -d -p 8080:8080 –rm –volume=”$(pwd):/app” –workdir=/app -it swift

 

#What port is swift Docker running on

sudo docker ps –format “table {{.Image}}\t{{.Ports}}\t{{.Status}}”

 

#Create swift using Docker

https://www.geeksforgeeks.org/docker-swift-application/

 

#Run VS Code as SuperUser

sudo code –no-sandbox –user-data-dir /home/username/Documents/htdocs/ws-swift

 

 

May 17, 2025

AWS EC2 Auto Scaling Group

Filed under: AWS — georgemck @ 12:23 pm

AWS Amazon Web Services

Auto Scaling Group using Launch Template and Classic Load Balancer

Command Line Interface CLI

 

1. aws ec2 create-security-group –group-name ELBSG –description “ELB Security Group”

2. aws ec2 authorize-security-group-ingress –group-id sg-XXXXXXXXXXXX –protocol tcp –port 80 –cidr 0.0.0.0/0

3. aws ec2 describe-subnets

4. aws elbv2 create-load-balancer –name CLELB –subnets subnet-XXXXXXXXXXXX subnet-XXXXXXXXXXXX

5. aws ec2 create-launch-template –launch-template-name auto-scaling-template –version-description version1 –launch-template-data ‘{“ImageId”:”ami-0953476d60561c955″,”InstanceType”:”t2.micro”}’

6. aws autoscaling create-auto-scaling-group –auto-scaling-group-name ASG01 –launch-template LaunchTemplateId=lt-XXXXXXXXXXXX –min-size 3 –max-size 5 –vpc-zone-identifier “subnet-XXXXXXXXXXXX,subnet-XXXXXXXXXXXX”

7. aws ec2 describe-instances

 

February 27, 2025

AWS Transfer Usage for SFTP

Filed under: AWS,Security — georgemck @ 3:14 am

AWS Transfer is an SFTP service within AWS. Using SSH keys, an SFTP connection can be established to upload and download files to AWS (most likely to S3). There are two approaches for restricting what the user can do. The simple approach is to use the built-in feature with AWS Transfer: Restricted directory. While creating the user, check the restricted box and select the Home directory and optional path. The second approach leverages AWS security policy. You can set the fine-grained permission of Effect, Allow and Resource (by ARN):

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“s3:PutObject”,
“s3:GetObject”,
“s3:DeleteObject”,
“s3:DeleteObjectVersion”,
“s3:GetObjectVersion”
],
“Resource”: “arn:aws:s3:::my.bucket.com/restricted-home/path/*”
},
{
“Effect”: “Allow”,
“Action”: [
“s3:ListBucket”,
“s3:GetBucketLocation”
],
“Resource”: “arn:aws:s3:::my.bucket.com”
}
]
}

note: to create a service-managed user, follow the standard instructions for generating an SSH key. macOS, Linux, or Unix Windows

Create an SSH key with RSA:
ssh-keygen -t rsa -b 4096 -f Zbsg

Connect to SFTP
sftp -i Zbsg Zbsg@sftp.myserver.com

Once connected (if you have the permission), you can upload a file with a Put command:
sftp> put file.txt
Uploading file.txt to /file.txt
file.txt 100% 0 0.0KB/s 00:00
sftp>

Download a file
sftp -i Zbsg Zbsg@sftp.myserver.com:file.txt file.txt

November 14, 2024

Working with AWS SDK in JavaScript v3

Filed under: AWS — georgemck @ 12:10 pm

https://github.com/aws/aws-sdk-js-v3

https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/javascript_code_examples.html

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/

https://aws.amazon.com/blogs/compute/managing-aws-lambda-runtime-upgrades/

October 3, 2024

Deploying WordPress on AWS Lightsail

Filed under: AWS,Lightsail,Linux — georgemck @ 8:31 am

After logging into AWS and launching the Lightsail service, it is necessary to create an instance. The instance for WordPress is based on the Linux Debian operating system packaged by Bitnami. Lightsail applications run standalone from AWS at large though can be integrated with it. When an instance is created, with the Route 53 service an hosted zone is created for the domain. It is barebones containing only the SOA and NS records. If it’s necessary to migrate an existing website into AWS/Lighstail, you must add the name service records for MX, CNAME, TXT, etc. This can be done by exporting the existing zone and then importing them into Route 53 but not adding the SOA and NS records (optional, depends on if you will still need them.)

Accessing the database directly is not allowed. To use the phpmyadmin included in Lightsail, you must create an SSH tunnel. Bitnami documents the procedure on this page and specifically with this video.

In order to access SFTP with a program like Filezilla on AWS, follow the documentation here.

If you add files to WordPress, it is likely that there will be permissions issues. You will see in the admin dashboard messages about not being to access certain files or folders. You can change the permission by connecting to the instance using SSH. This procedure is shown as a prerequisite for opening phpmyadmin. After successfully connecting, you can change ownership of the problematic files and folders with the following command which must be updated for the target machine.

sudo chown -R daemon:daemon uploads
sudo chown -R daemon:daemon application/config
sudo chown -R daemon:daemon /opt/bitnami/apache/htdocs/temp

In order for the domain name to resolve on the internet, you will need to update the Hosted Zone. In the hosted zone, add an A record pointing to the IP address of the Lightsail instance. This will work but will not support https (that is there is no SSL certificate). AWS documents how to add an SSL certificate to Lightsail. However, Bitnami has a better solution for this.

February 26, 2024

AWS Transcribe CLI Workflow

Filed under: AWS,ffmpeg — georgemck @ 6:28 pm

Recently I needed to create transcriptions for a number of videos. I decided to use Amazon Transcribe to make it faster for me than typing. I used ffmpeg and S3 to lighten the load.

 

— 1. separate audio from the video file

ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 44100 -ac 2 output.wav

— 2. upload audio to S3 bucket
aws s3 cp output.wav s3://transcribe-for-canvas

 

— 3. extract the text from the audio through transcription
aws transcribe start-transcription-job –transcription-job-name canvascaptions –media MediaFileUri=s3://transcribe-for-canvas/output.wav –output-bucket-name transcribe-for-canvas –subtitles Formats=srt –language-code en-US –region us-east-1

— 4. check on the transcription progress
aws transcribe get-transcription-job –transcription-job-name canvascaptions

 

— 5. download the transcription files
aws s3 cp s3://transcribe-for-canvas –recursive

 

ffmpeg cheatsheet

Filed under: ffmpeg — georgemck @ 10:15 am

 

 

–Combine video and audio
ffmpeg -i ‘video.mp4’ -i ‘audio.m4a’ -c copy -map 0:0 -map 1:0 output.mp4

 

–Extract audio from video
ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 44100 -ac 2 output.wav

 

 

February 14, 2024

LAMP Server on AWS EC2 Amazon Linux 2023 AMI

Filed under: Amazon Linux,AWS,Fedora — georgemck @ 2:40 pm

#!/bin/bash
dnf upgrade -y
dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel
dnf install mariadb105-server
systemctl start httpd
systemctl enable httpd
systemctl is-enabled httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;
echo “” > /var/www/html/phpinfo.php

February 7, 2024

AL2023 PostgreSQL DNF Available

Filed under: AL2023,Amazon Linux,AWS,Cloud,Linux — georgemck @ 2:09 pm

This is a list of packages available in the Amazon Linux 2023 as of today on Elastic Beanstalk.

 

postgresql-odbc.x86_64
13.01.0000-5.amzn2023.0.1

postgresql-odbc-tests.x86_64
13.01.0000-5.amzn2023.0.1

postgresql15-contrib.x86_64
15.5-1.amzn2023.0.1

postgresql15-docs.x86_64
15.5-1.amzn2023.0.1

postgresql15-llvmjit.x86_64
15.5-1.amzn2023.0.1

postgresql15-plperl.x86_64
15.5-1.amzn2023.0.1

postgresql15-plpython3.x86_64
15.5-1.amzn2023.0.1

postgresql15-pltcl.x86_64
15.5-1.amzn2023.0.1

postgresql15-private-devel.x86_64
15.5-1.amzn2023.0.1

postgresql15-server-devel.x86_64
15.5-1.amzn2023.0.1

postgresql15-static.x86_64
15.5-1.amzn2023.0.1

postgresql15-test.x86_64
15.5-1.amzn2023.0.1

postgresql15-test-rpm-macros.noarch
15.5-1.amzn2023.0.1

postgresql15-upgrade.x86_64
15.5-1.amzn2023.0.1

postgresql15-upgrade-devel.x86_64
15.5-1.amzn2023.0.1

 

This is useful when launching an instance and knowing which packages are available in the repository.

 

 

 

 

 

 

dnf list available postg*

 

 

 

 

 

 

Nice reading on Elastic Beanstalk

Older Posts »

Powered by WordPress