-
Contact the lecturer for Zoom & Discord links.
-
Classes run from 9:45AM-3PM Mon-Thu and 10AM-2PM Fri.
-
Student Expectations: ~5 hours of lectures and ~3 hours of homework 5 days/week.
-
1963 Timesharing - How Computers Work - Still relevant
-
1982 UNIX - See Brian Kernighan's demo @ 4:00. Also still relevant.
- Career
- Cloud Foundations
- Linux
- Networking
- Python Programming
- Databases
- AWS
- Exam Preparation
- Hardware Basics
- Virtual Machine Basics
- Database Concepts
- Cloud Service Models (IaaS, PaaS, SaaS, FaaS)
- Basic Computing Concepts
- Brief history of computing & operating systems
- CPU / Central Processing Unit
- Moore's Law
- RAM/Memory
- Storage: Mechanical Hard Drives, Solid State Drives (SSD), Tape Storage, CD/DVD/BluRay
- Brief history of Cloud Computing
- Virtual Machines & Amazon Machine Images (AMIs)
- Database Basics: Relation vs Non-Relational/NoSQL (Key-Value, Document/Object, Graph)
- EC2 Lab demonstration - Deploying a virtual machine
- Shared Responsibility Model Basics
- Memcached & Redis Basics (get/set): Try Redis
- StackShare
- Amazon S3 Basics
- Brief history of Internet (Phreaking, Dialup, ADSL, Fibre)
- Brief history of World Wide Web, HTML, and using archive.org
- Linux Basics:
cd
,mkdir
,pwd
,ls
,man
,/bin directory
, running programs. - Linux Directory Structure
- The Art of Command Line - Bookmark this for use later in the course.
- AWS Compute Options: EC2, Lambda, ECS, and others.
- Hypervisor vs Containers
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS) - e.g. Heroku, ElasticBeanstalk
- Software as a Service (SaaS)
- Function as a Service (FaaS)
- Continuous Integration / Continuous Deployment (CI/CD)
- Infrastructure as Code (IaC) Basics
- Application Programming Interfaces (APIs)
- RosettaCode
- Installing
python3
withsudo yum install python3
- Personal branding workshop
- Python String data type
str
- Python Numerics data types
int
,float
- Print to console
print()
- Takes input from console
input()
- Python Basics
- Git Basics
- Python: Lists
my_list = [1, "hello", 3.14]
, Tuplesmy_tuple = (4, "blah", 1.23)
- Functions (
def my_function():
) - Conditionals (
if
/else
/elif
) - Comments (
#
) - Debugging: Breakpoints, Stepping, Inspecting values
-
Python Dictionaries
my_dictionaries = {"innovation": "something new"}
-
Python Boolean type
my_bool = True | False
-
Nested data types: Lists within Dictionary, Dictionaries within List, Lists within List (2D array)
-
Using
pip
-
awesome-python - List of popular Python packages
-
Using
pylint
-
Local vs. Global scope
-
Classes (basics - grouping of data and functions/methods)
-
Interpreted programming languages vs compiled programming languages
-
AI brief introduction - Tensorflow, Keras, PyTorch
-
Sets
my_set = {1, 3, 'hello', 3, 5}
, Intersection and Union methods -
List slices & some methods (append, insert)
-
Keybr.com - Learn to touch type & speed up your typing.
- Python conditionals:
if
,elif
,else
- Exceptions, custom exceptions with
raise
,try
,except
,else
,finally
- Combine exception handling with functions and
return
assert
and raisingAssertionError
- Sentry for error tracking
- Create /
import
modules in Python - Using
pytest
andassert
statement for software testing. - Continuous Integration providers: Travis-CI, CircleCI
- Agile software development basics: Standups, Kanban, Sprints, Scrum
- GitHub platform in depth: Forking, Pull requests, Topics, Issue tracking, Project Management, Contributors / Bus Factor, etc
- Using loops (
while
,for
,range
,enumerate
) - List comprehensions aka easily making a list from an iterable.
- Looping through dictionaries using
.keys()
,.values()
, and.items()
. - Printing with
f-strings
- More testing with
pytest
- More on using modules
- Entry point
- Python's
in
keyword ('b' in ['a', 'b', 'c']
, and infor
loops) - Using
turtle
for small visualizations and understanding loops
- How git is used for teams of software engineers to collaborate
- How to create a Github repo, also called a
remote
repository git clone
fromremote
repositorygit init
git add remote
if there isn'tremote
repository linked already- see status of staged and unstaged changes with
git status
- view git history with
git log
git commit
git branch
git checkout
git pull
fromremote
repositorygit push
from local toremote
repository- rewrite git history, squash N number of commits history with
git rebase -i HEAD~N
- Linux Basics (Filesystem layout, navigating, working with files/processes)
- Kernel / Daemons
- Python Revision
- Command Line Revision
- Git Revision
- Linux Basics Revision
- Linux GUI vs CLI
- Continuous Integration, Continuous Delivery, Continuous Deployment concepts
which
,alias
,unalias
,export
,unset
,env
,less
,sudo !!
,cat
,sleep
PATH
, accessing environment variables e.g.$HOME
and settingPATH
,.bashrc
basics./proc
basics- Processes & Process ID's
- Job control basics:
Ctrl-Z
,bg
,fg
, Running a task in the background with&
strace
basics & system calls (syscalls) overview/purpose- File Descriptors and
/proc/<process_id>/fd/
,stdin
,stdout
,stderr
- More on these later. - tmux Basics: Prefix key (
Ctrl-B
), Vsplit%
, Hsplit"
, New windowc
, Next windown
, Previous windowp
, Switching panesarrow keys
- Types of interprocess communication: Wikipedia - Inter-process Communication
- More Linux:
head
,tail
,file
, Symbolic Links (symlinks), Permission basics:chmod +x
(so far) /etc/passwd
chsh
,/etc/shells
and different shell examples (zsh
,fish
)gcc
(akacc
) and compiling simple C programs/lib
directory, shared objects (.so
and equivalent.dll
files)- Binary (ELF) vs Text (Shell script) and
#!
at the top of scripts. - Using
time.sleep(30)
in Python and thenanosleep()
syscall. - Created a simple shell script
- awesome-shell - List of great programs
- Linux
cd
,pwd
,ls *
(list all files in nested folders) vs.ls
cp
,mv
,mkdir
,nano
- Python
argsparser
to run Python program with customizable input - Makefile, and Makefile command with input
- Makefile command shortcut to run Python program with customizable input
- Explained on a high level what API is, and most common API command
GET
,POST
,PUT
,DELETE
- More Linux:
useradd
,groupadd
,sudo su -
,/etc/sudoers
,/etc/passwd
,/etc/group
,/etc/shadow
,vipw
,vigr
, andvipw -s
(don't edit these files directly) !!
,!$
,history
and!<n>
- More Bash scripting & handling arguments (
$1
,$2
, etc in Bash &sys.argv
in Python) - Linux permissions: chmod codes cheat sheet,
ugo+rwx
(symbolic),421
(numeric), output ofls -al
- LinuxJourney.com - Thanks Ben
- Bash Cheat Sheet - Plan to learn these during your career
Optional vim stuff:
- Vim Adventures - Thanks Jarryd
- VSCode Vim Plugin - Optional
- VSCode Learn Vim Plugin - Also optional
- Advanced vim cheatsheet - Bookmark for later in your career if you decide to use vim.
- CV workshops
- Flows and conditions with Linux bash scripting:
if else elif
,for loop with {1..N}
,for loop with StringArray()
,case
,conditions []
Other resources for interview preps:
- Algorithm coding interview: https://leetcode.com/
- All topics in Tech interview: https://interviewing.io/
- General programming interview, not algorithm heavy: https://exercism.org/
- System design interview: https://github.com/donnemartin/system-design-primer
Book recommendations:
- https://www.amazon.com/System-Design-Interview-Insiders-Guide-ebook/dp/B08B3FWYBX
- https://www.amazon.com/System-Design-Interview-Insiders-Guide/dp/1736049119
- Networking Basics: Switches, Routers, TCP vs UDP, IP addresses, Ports
- Revision
- More on containerization vs virtualization.
- Architecture Basics: ARM vs x86 / x64 (aka amd64 or x86_64)
- Virtualbox Snapshots & Amazon Machine Images
- Demos/Presentations of useful utilities
- Debugging a non-ELF binary named
googlr
(created in Swift) - Matthew:
atop
,gitmux
,nnn
- Dotfiles - Configure your own setups.
- Joe:
image-scraper
,imgp
,tiv
, and cool mod to Alice's pokemon guesser game - Asimina:
cointop
,has
- Michael J:
prettyping
,gogh
& debugging shell scripts - Custom tmux configuration with .tmux
- Installing Python 3.10 from source and using
grep
. - Installing Go (see office hours recording) and extracting compressed files with
tar
. - Installing Rust (also office hours)
- Keep many CVs
- Job tracking pipeline
- Learning plan
- Manage learning pipeline
- Career progression (the technical track & the management track)
- Negotiation (pay, parking or gym perks, more WFH days, learning and certification stipends...)
- Keeping and building a code snippet library - curated pieces of code for Python, Bash...
- Router, Switch vs. Hub
- LAN vs. WAN
- IP vs. MAC
- Client Server vs. Peer to Peer
- Bus, Star, Mesh topologies and how you can go hybrid
- Introduce network layers, highlight layer 4 (TCP and UDP) and layer 7 (HTTP)
- Connection vs. Connectionless (session-less) protocol
- Binary & Hexadecimal - Hexadecimal to Binary - Organic Chemistry Tutor
- Endianness: Wikipedia, Computerphile
- Hex Editors: HxD - Windows, Hexinator - Linux, HexFiend - MacOS
- ASCII
- IPv4 Addresses
- Ports - List of common port numbers
- Regional Internet Registries
- ROT13 cipher
- Utils:
whois
,nslookup
& DNS basics (A-record),iftop
,tcpdump
- Shodan & Honeypots
- IPv4 vs. IPv6
- CIDR
- VPC, Subnets, Avaiability Zone, Regions
- How VPC can connect together
- The concept of CDN in an example related to Netflix content distribution
- History of IP Address allocation
- Classful Addressing
- IPv4 Address Exhaustion - Wikipedia
- List of assigned /8 Blocks assigned to RIR's
- ipcalc for CIDR & Subnetting
whois
ing IP ranges from countryipblocks.net and seeing who owns what.- Feynman Technique for understanding and remember something: Socratica, Thomas Frank
- Private, Partnered (Paid), and Public APIs
- REST vs. gRPC vs. SOAP
- JSON vs. dictionary
- JSON vs. XML vs. Protobuf
- Building an IP Subnetting calculator API with Python, pytest, and FastAPI.
- Friday: Good Friday (No class)
- More Networking Basics: OSI & TCP/IP Models, IPv4 Subnetting
- Review of the following networking topics:
- OSI Model & TCP/IP Model
- Example: VPN -> OSI Layer 3 tunneling to by pass IP and domain name restriction
- Example: Network firewall -> OSI Layer 4, block IP address range and port range
- Example: Application firewall -> OSI Layer 7, looking at body of requests to intercept application level attack such as SQL injection
- Network Topology
- Ethernet and Switches (vs Hubs)
- Media Access Control (MAC) addresses
- Address Routing Protocol (ARP): Requests, Responses, and Spoofing/Poisoning
- Spearphishing and some OSINT
- Internet Control Message Protocol (ICMP, used for pings). Time To Live (TTL)
- Network Address Translation (NAT)
- Request For Comments (RFC's - Documents used for describing protocol specifications among other things)
- Wireshark
- Tom7 - Using ICMP as a hard drive for SIGBOVIK'22
- NetworkChuck - NAT
- Professor Messer - OSI Model
- Professor Messer - Spoofing
- More VPC & Subnets, NAT, Internet Gateway, Security Group (layer 4 firewall)
- Public subnet, private subnet
- Security basics: Encryption in transit, encryption at rest, intelligent threat detection, anti virus/malware software
- Bitwise Operators: NOT
~
, AND&
, OR|
, XOR^
, Shift-Left<<
, Shift-Right>>
, and Rotate Left/Right (no operator in Python). - Subnetting deep dive.
- SubnettingPractice.com
- Emerging networks: 5G, long range BlueTooth, IoT networks and applications
- VPC lab demonstration for creating VPC, Subnets, and NAT Gateway - Lab 52 in Modules
- Preparing for Interviews: Technical (technology you are learning vs. technology you know vs. similar technology you know vs. technology you cannot relate), and Behavioral (including scenarios based - tell a time me when you run into a conflict with co-worker, and open ended questions - tell me where you will be in 5 years time)
- Files
- Python's
with
keyword (context manager basics) and where you want to use it. - Windows Registry
- Structs (examples in different programming languages)
- Classes & Objects / OOP Basics (
__init__ method
,self
,methods
, basic inheritance).
- Install Node.js, create React.js app with
npx create-react-app my-app
- HTML, CSS, and JavaScript Basics
- ReactJS Basics (stateless & stateful components)
Monday: ANZAC Day (No class)
- More React.js - started building a TODO App
- NodeJS & npm basics
- HTML Basics
- JS Basics:
var
vslet
&const
, definingfunction
s - Creating simple stateless components and basic use of
props
.
- ReactJS:
useState()
hooks, onClick events, event handler functions, events in React, create a counter with React - CSS: id vs classes
- Threads, Multiprocessing
- Intro to async/await and
fetch()
- ReactJS:
useRef()
hooks, get values out of a refname = myRef.current.value
, change value of element linked to refmyRef.current.value = "new value"
, deconstructing a JavaScript array (only in ES6 JSX) withnew_list = ["new_item", ...my_list]
, validating input within a handler functions,list.map()
to create a list of components - Building a simple Todo list
- Connecting React frontend to FastAPI backend
- FastAPI - Cross-Origin Resource Sharing (CORS)
- Cross-Origin Resource Sharing (CORS) MDN - Recommended reading
- Interview practice
- ReactJS:
useEffect()
, usinguseEffect
to react to change of any particular state, ifuseEffect
does not subscribe to anything -> will run once in the first render -> use this to initialize all data - FastAPI: backend API with
GET request
to get data out of a.json
file, andPOST request
to update the.json
file - Combine ReactJS + FastAPI: the simple Todo web app that can fetch initial data from file, and add more data to file. Reopenning the app will not lose data
- Homework: create a delete button on the React.js app, and make sure that all data is clear, test by refreshing the web browser
- Database Basics
- Security Basics
- Revision: Linux, Git & GitHub, React, Parallels between Python & JavaScript, HTTP GET/POST, API setup
- Database Basics
- SQLite & SQLite Sample Database
- SQLite Browser
- SQL:
SELECT
,WHERE
,ORDER BY
,LIMIT
- Connecting database to API
- Computerphile - The Problem with Time & Timezones
- Data Modeling Basics & Entity-Relationship Diagrams
- Relations: One-to-One, Many-to-One/One-to-Many, Many-to-Many, Cardinality
- Crypto Museum
- SQL string searching with
LIKE
- get data from multiple tables with
JOIN
- table short names
- multiple
JOIN
- multiple
JOIN
with conditionsWHERE
- JetBrains DataGrip - Free for Students
- Cryptography: Brief History, Ciphers (Caesar, Polybius, Cipher Machines), Feistel Network
- XOR operation, Block vs Stream Ciphers, Symmetric vs Asymmetric (Public Key) Cryptography
- The Codebreakers Book by David Kahn for more history
- Certificate Authority Basics (and DigiNotar/Comodo hacks), browsers Chain of Trust
- Hashing Basics (Block size, Digest Size, MD5 / collisions, Pigeon-hole Principle, SHA3 contest)
- table relationships, dependency, order for adding and removing entries for inter-dependent tables (
ADD artists -> albums -> tracks
andDELETE tracks -> albums -> artists
) INSERT INTO
sql statementDELETE
sql statement- Back to React homework: button to remove all contents from Todo List
- Solving duplicate key problem for a List of
<div>
- Guest Speaker: Thiago Canestraro
- More security: Hashing / Blockchains
- Recommended platforms for more cybersecurity: TryHackMe, HackTheBox (in office hours)
- Presentation practice rounds, demo of highlights, sharing own plans with class
- DataGrip SQL IDE tutorials
- Revise React.js:
useState
,useRef
,useEffect
- Todo App with complete checkbox and remove button
- Cloud
- React.js deployment Part I
- CI/CD concepts revisit
- Security revision: Symmetric vs Asymmetric (Public Key) Cryptography. Diffie-Hellman & RSA concepts.
- SSH,
ssh-keygen
, public key authentication (authorized_keys file, private key permissions) - AWS Console vs
awscli
- React.js deployment Part II (folder deployment_day_1)
- More SSH stuff
- Understanding an HTTP request
- Security Groups &
iptables
(Firewall) demo - netcat & usage of sockets for networked services
- EC2 overview
- React.js & FastAPI deployment Part III (folder deployment_day_1)
- Secure password storage (bcrypt, scrypt, Argon2)
- HaveIBeenPwned
- Digital signature basics
- DNS and
dig
: (A, AAAA, CNAME, NS, MX, TXT, PTR records) - Brief mention of Amazon SES (Simple Email Service)
- Containers Concepts & Docker installation
- Deploying a static site to S3 Part IV (folder deployment_day_2)
- Guest Speaker: Ash
- EC2 deep dive
- AWS Cost Calculator
- RDS & ElastiCache brief mention
- Linkedin workshop
- Docker: build and run
- Deploying a FastAPI app to Docker
- Docker port mapping
- Homework: deploy React.js from
react_day_6
with Docker, entry point is usingserve
- Cloud
- Deploy React.js from
react_day_6
with Docker, entry point is usingserve
- Docker Compose intro
- Environment variable intro
- "Serverless" Computing with (AWS Lambda)
- Different triggers for Lambda
- Serverless Examples - FFMpeg to GIF - Supplementary. Not required for the course.
- More deployment with Docker
- Virtual Private Cloud (VPC), Subnets, Route tables, Internet Gateways & deploying Web/Database servers to different subnets
- Infrastructure as Code (IaC) Concepts (CloudFormation, Terraform, Pulumi)
- More IaC: Pulumi & CloudFormation
- S3 & S3 Glacier
- Python virtualenvs (
python -m venv venv
andsource venv/bin/activate
)
- AWS IAM: User, Policy (Effect, Action, Resource), Role (User, Service, Cross Account)
- AWS CloudTrail: all API calls to AWS account are saved here
- Issue Tracking & Project Management
- Assignment Tips
- PowerShell
- EC2 Deployment & Elastic Block Store (EBS) Basics
- System Manager (Session Manager, Patch Manager, Compliance, Parameter - string and secrets)
- CloudWatch Metrics (given by default, and also Custom Metrics like RAM and %Drive)
- CloudWatch Alarms
- Auto Scaling Group
- EC2 Launch Template
- AWS ELB - Application vs. Network load balancing
Application Load Balancer | Network Load Balancer | |
---|---|---|
OSI Layer | Layer 7 | Layer 4 |
Target | Private/Public IP, EC2 instance in ASG, Also Lambda | Private/Public IP, EC2 instance in ASG |
Protocol | HTTP/HTTPs/gRPC | TCP/UDP/TLS |
LB Static IPs | No | Yes |
Session | Yes | Yes (new*) |
Forward source IP | Yes (new*) | Yes |
Cross-AZ balancing | Yes (by default) | Yes (not by default) |
SSL Offloading | Yes | Yes (new*) |
Authentication | Yes | No |
Private network load balancing | Yes | Yes |
Typical applications 1 | General backend with Application level awareness | Low latency media streaming (UDP) & connectivity (Gaming) |
Typical applications 2 | Complex authentications supported (SAML/LDAP/AD) | Use static IPs to share/receive data with partner companies |
- Web Security
- OWASP Top 10
- MITRE ATT&CK & D3FEND
- CyberChef & Decoding Base64-encoded JWT's
- ThoughtWorks Technology Radar
- HackerNews
- Flow Charts - Group Exercise
- Sourcegraph Dev Tool Time Playlist - Has developers talking about their workflows
- FastAPI body, query string, input parameters
- Usecases for Docker ENV - default environment variable + dependency versioning
- EC2 Instance Store vs. EBS backed
- Type of EBS drives, and appropriate usecases for each
- SSH/Apache log files, hardening & configuration
- Sockets & Building network services with Python
- Analysis of log files with Python & UNIX utils
- Monitoring Basics (more to follow)
- React
props
andchildren
(see react_day_8 folder) - More on React
- Review of UI Component Libraries
- Review of programming paradigms & concepts
- CodeWars
- CloudFront and benefits of CDN (security, cost, user experience)
- CloudFront usecases for caching static content: website hosting, paid content distribution, Lambda at Edge A/B testing, rerouting HTTP to HTTPS
- CloudFront usecases for caching dynamic content: Load Balancer distribution, HTTP response caching
- API gateway vs. Load Balancer
- Object Relational Mappings (ORMs)
- Abstracting interaction with databases
- Docker revision
- Meeting with Spark, Datacom, and Leaven.
- Continuation of CloudWatch with CloudWatch Logs (comparable to LogStash + ElasticSearch)
- ELK stack: LogStash for collecting log files, ElasticSearch for log searching and metrics generation, Kibana for visualizing metrics (comparable to CloudWatch dashboard)
- Billing console, billing report per product/department with Resource Tag
- StepFunction state machine, enabling more usecases with Lambda function
- RDS/Aurora - sync replication thinking of FailOver instance, async replication thinking of Read Replica
- Queue vs. Topic, Kafka overview concepts - topics, partition, replication factor...
- Topics vs. Queue revision
- Publish subcribe (subcribers are not aware of publisher) vs. Observer pattern (the opposite)
- SNS - push based - has many types of subscriber (email, txt messages, HTTP/HTTPs destination, SQS, Lambda...)
- SQS - pull based - for simple queue, if item pulled out -> item becomes invisible to other pollers
- ElastiCache in more depth
- RDS in more depth
- CloudQuest
- Cloud Practitioner Essentials
- Migration with RDS
- Route53 & DNS revision
- nginx configuration & examples of using DNS
- HowDNS.works
- ElasticBeanstalk
- More docker revision
- Solution Architect discussion & AWS Reference Architecture Diagrams
- AWS Architecture Blog
- Volumes (EBS, docker, and docker compose)
- Architecture for full-stack applications w/ both docker compose & AWS (frontend, backend, cache, db, queue)
- Cloud Practitioner Vouchers & Booking Exam Info
- Supplementary Fireside Chat w/ Geoffrey Hinton relating to designing software after physical/biological systems.
- Advanced EC2 features - pricing models (Spot, Reserve, On demands), Placement Group, Host settings
- DMS - Database Migration Service (one off mode and continuous replication mode, schema migration tool to convert MySQL to PostgreSQL)
- General AWS limits (S3 APIs, EC2 number of instances, ECS number of tasks...)
- Presentation Practice
- Practice Test for Cloud Practitioner exam
- More AWS practice exam here 20 free practice questions for all exams
- Advising on topics selection for the marked presentation source for basic topics, source for advanced topics
- AWS CodeCommit, CodeBuild, CodeDeploy, CodePipeline
- In place deployment, Blue/Green deployment
- Maria: S3 Static Website Hosting
- Allan: Terraform
- Matthew K: Scraping with BeautifulSoup
- Matthew R: Elastic Beanstalk
- Michael J: Automation with python and awscli
- Jarryd: AWS Amplify
- Heaven: CloudWatch
- Eden: Creating a portfolio with React
- Tahseena: Setting up and using load balancers
- Sheldon: Using IoT TwinMaker
- Robert: EC2 autoscaling
- Nisheeth: Using DynamoDB
- Nick C: Using AWS Kendra
- Asimina: Intro to TypeScript
- Wiremu: IP crawler that downloads certificates
- Joe Zhu: Using Pulumi to deploy a backend API server to AWS EC2
- Ben Browning: AWS Lambda
- Myat Lwin: Create Custom VPC with Public&Private Subnets
- John Simmons: AWS Comprehend
- Alice Kokado: Boto3 Python SDK
- Xinpeng Yang: AWS Lightsail
- Kumar AWS EC2 Backup
- More Presentations
- Another Practice Test
- Meeting with Sky
- Remaining Presentations
- Test
- Anki - Spaced-Repetition Flash Cards (see the Cloud Practitioner deck in this repo)
- DigitalCloud.training - AWS Cloud Practitioner Cheat Sheets
- AWS.PlainEnglish.io - Cloud Practitioner Study Notes
- Notes for Cloud Practitioner
- FreeCodeCamp - Cloud Practitioner 2020 - Supplementary video on preparing for CloudPrac exam. Caution: Some things have changed since then.
- Revision
- Assignment help
- Congratulations!
- EC2
- IAM
- Lambda
- S3
- Virtual Private Cloud (VPC), Subnets, Route tables, Internet Gateways
- System Manager (Session Manager, Patch Manager, Compliance, Parameter - string and secrets)
- CloudWatch Metrics (given by default, and also Custom Metrics like RAM and %Drive)
- CloudWatch Alarms
- Auto Scaling Group
- EC2 Launch Template
- Elastic Load Balancer
- EBS + EC2 Instance Store (IOPS calculation)
- CloudFront (how this relate to Load Balancer, S3, and APIGW)
- Route 53
- Elastic Beanstalk
- StepFunction (more Lambda)
- RDS/Aurora
- ElastiCache
- RedShift
- DMS
- EFS (NFS)
- S3/Glacier
- Storage Gateway
- SNS
- SQS
- CloudWatch Logs
- CloudTrail
- Organizations
- Tagging
- Billing
- Code Commit, Code Build, Code Deploy
- IaC, CloudFormation
Intended for team of up to 3 people, lasting 4 weeks
Projects ideas | Difficulty | Nature | Suggested Week 1 milestone | Suggested Week 2 milestone | Suggested Week 3 milestone | Suggested Week 4 milestone | |
---|---|---|---|---|---|---|---|
Real-time World Statistics | Medium | Frontend development + Cloud Native Hosting | Identify data source (eg. Covid data), wide frame design for the visualization website, identify a place to host the website (eg. S3+Cloudfront), finalize the scope of work | 40% of planned work | 80% of planned work | 100% of planned work, Team presentation + Demo, figure out future directions for this projects | |
A fully functioning e-Commerce Website | Low - Medium | eCommerce platform management + Cloud Native Hosting | Identify eCommerce platform (eg. Magento on LightSails, or EC2), and products to sell, finalize the features of the eCommerce website | 40% of planned work | 80% of planned work | 100% of planned work, Team presentation + Demo, figure out future directions for this projects | |
A Blogging (News aggregate) Website | Low - Medium | CMS platform management + Cloud Native Hosting | CMS engine for the Blog/News website (WordPress, Gatsby...), wide frame design for the Blog/News website, identify a place to host the website (eg. S3+Cloudfront, or LightSail, or EC2), choose and finalize the scope of work | 40% of planned work | 80% of planned work | 100% of planned work, Team presentation + Demo, figure out future directions for this projects | |
A Habit tracking app | Hard | Backend + Frontend development + Cloud Native Hosting | Identify authentication provider (AWS Cognito or Google Firebase), wide frame design for the web application, design a cloud native architecture (eg. APIGW+Lambda+S3+CloudFront), choose and finalize the scope of work | All the basic infrastructure components such as Authen provider, static web hosting infras, API gateway and backend components | Basic logins and half of the features | 100% of planned work, Team presentation + Demo, figure out future directions for this projects | |
A project management app (extension of Todos) | Hard | Backend + Frontend development + Cloud Native Hosting | Identify authentication provider (AWS Cognito or Google Firebase), wide frame design for the web application, design a cloud native architecture (eg. APIGW+Lambda+S3+CloudFront), choose and finalize the scope of work | All the basic infrastructure components such as Authen provider, static web hosting infras, API gateway and backend components | Basic logins and half of the features | 100% of planned work, Team presentation + Demo, figure out future directions for this projects | |