An open API service indexing awesome lists of open source software.

https://github.com/akashdip2001/aws


https://github.com/akashdip2001/aws

aws aws-ec2 aws-lambda aws-s3

Last synced: 10 months ago
JSON representation

Awesome Lists containing this project

README

          

![Pattern_Social_16x9](https://github.com/user-attachments/assets/74dc65b6-5208-47aa-a502-524a9d123e9f)


[Verify all Badges : ](https://www.credly.com/users/akashdip2001)











![Typing SVG](https://readme-typing-svg.herokuapp.com?size=30&width=600&lines=If+you+LOVE+me+-->+give+a+Star+⭐)
![Typing SVG](https://readme-typing-svg.herokuapp.com?size=24&width=600&color=7063ce&lines=click+the+Image+billow+and+Nominate+Star)
[](https://stars.github.com/nominate/)


Linux with AWS Cloud Bootcamp

==============================
Linux with AWS Cloud Bootcamp
==============================

Duration : 2 to 3 weeks

Pre-Requisites : Your time + Concentration + Practice

Course Content :

1) Windows Vs Linux
2) Linux History
3) Linux Distributions
4) Linux VM Setup
5) Working with Files & Directories
6) Working with text editors
7) User Management
8) File Permissions
9) Networking commands
10) Pacakge Managers

11) On-Prem Infrastructure
12) Cloud Computing
13) Cloud Providers (Amazon, MS, Google)
14) AWS Cloud Introduction
15) AWS Console tour
16) EC2 (Elastic Compute Cloud)
17) RDS (Relational Database service)
18) S3 (simple storage service)
19) Beanstack (web app deployment)
20) IAM (Identity & Access Mgmt)
21) Lambdas (Serverless computing)
22) Route 53 (DNS)

Frontend Technologies : Angular/React

Backend Technologies : Java Springboot MS

Databases : Oracle , Mysql + Mongo DB

DevOps tools : mvn, git, docker, jenkins, k8s

Operating Systems : linux

Cloud Services: Aws services

===========================
What is Operating System ?
===========================

=> OS is a software

=> OS act as a mediator between users and computers

=> Wihout OS we can't use computers

=> We have several Operating Systems in the market

Ex : Windows, Linux, Mac, Solaris, Anroid, IOS

============
Windows OS
============

=> Developed By Microsoft company

=> It is GUI based OS

=> It is licensed OS

=> Single user based OS

=> Security features are less

Note: Anti Virus software we have to install.

=> Windows OS is recommended for personal use

Ex : watch movies, games, browsing, online classes

===========
Linux OS
===========

=> Developed by Linus Torvalds

=> It is free and open source

=> Linux supports both GUI and CLI

=> Linux is multi user based OS

=> Linux is Virus free (security is very high)

=> It is highly recommended for business use cases

Ex : Database servers, app servers, k8s cluster, jenkins server, sonarqube server, docker server, nexus server, ELK, Log files...

=================
Linux OS History
=================

1990

Unix --> challenges

Minux

(Li)nus + Mi(nux ) = Linux

====================
Linux Distributions
====================

200+ distributions

amazon linux
ubuntu linux
cent os linux
kali linux
suse linux
fedora linux
red hat linux

AWS Account Setup : https://www.youtube.com/watch?v=xi-JDeceLeI

====================
Linux Machine Setup
====================

Approach-1 : Install Linux OS directley in PC

Approach-2 : Install Linux as Guest OS using Virtual Box

Approach-3 : Setup Linux VM in windows using Vagrant

Approach-4 : Take linux vm for rent in cloud platform (AWS)

EC2 service we can use to setup virtual machines in aws cloud.

AWS Free Tier account (1 year)

EC2 : To setup virtual machines

Monthly : 750 hours free of cost

===============
Lab Practicals
===============

Step-1 : Login into aws account

Step-2 : Go to EC2 service and launch new instance

AMI : amazon linux

instance type : t2.micro / t3.micro

Keypair : Create new keypair (.pem)

Step-3 : Select machine and click on Connect (SSH Client)

Step-4 : Open gitbash from keypair location and execute commands (chmod and ssh)

## Connect with EC2 VM using MobaXterm: https://www.youtube.com/watch?v=uI2iDk8iTps&t=458s

## Connect with EC2 VM using GitBash:
https://youtu.be/JMlQaTXvw5o?si=okXzG9jKkBn1xcMY

## Connect with EC2 VM using Putty : https://www.youtube.com/watch?v=GXc_bxmP0AA

===================
Linux Architecture
===================

1) Apps / Commands

2) Shell

3) Kernel

4) Hardware components

=> Shell is responsible to validate command given by user and translate that into kernel understandable format.

=> Kernel is one of the core component in linux os. Kernel is responsible to give instructions to hardware to process command execution.

====================
Linux File System
=====================

=> In linux os everything will be represented as file only.

/
/bin
/opt
/etc
/lib
/var
/mnt
/media
/home


Note: In Linux VM for every user one home directory will be available like below.


ec2-user : /home/ec2-user

ashok : /home/ashok

sita : /home/sita

================
Linux Commands
================

pwd: display present working directory.

cd : change directory

touch : create empty files

ls : listing the data of pwd

ls -l : long listing with alphabetical order

ls -lr : display files in reverse of alphabetical

ls -lt : display latest files on top

ls -ltr : display old files on top

ls -la : show hidden files also

mkdir : create new directory

rmdir : remove empty directory

rm : remove file

rm -rf : remove non-empty directories

cat : create file with data + append data + print data

cat > abc.txt

cat >> abc.txt

cat abc.txt

cat -n abc.txt

tac : print data from bottom to top

cp : copy one file to another file

mv : rename + move

history : display user activities in linux

head : display first 10 lines of the file.

head f1.txt

head -n 5 f1.txt

head -n 100 f1.txt

tail : display last 10 lines of the file.

tail f1.txt

tail -n 15 f1.txt

tail -n 50 app.log

tail -f app.log

=========================================
grep : global regular expression print
=========================================

=> It is used for searching data in the file

# print lines which contains ashokit keyword
grep 'ashokit' app.log

# print lines which contains ashokit keyword along with line numbers and ignore case sentivie

grep -n -i 'exception' app.log

# print lines which doesn't contains ashokit keyword

grep -v 'ashokit' app.log

# search for ashokit keyword in last 10 lines
tail app.log | grep 'ashokit'

# search for exception keyword in last 100 lines
tail -n 100 app.log | grep -n -i 'exception'

==========
vi editor
==========

=> It is used to edit the files in linux os

=> Using vi we can open existing files and we can create new files also.

$ vi java.txt

=> vi command works based on 3 modes

1) command mode (read data)

2) insert mode (press i in keyword)

3) esc mode (press esc key)

=> save and close (:wq + Enter)

=> close without saving (:q! + Enter)

=====================
Networking Commands
=====================

ifconfig : To check IP address of our machine

ping: To check connectivity

ping www.google.com

ping www.facebook.com

ping 172.31.4.278

wget: To download files from internet

wget

curl: To send Http request to server

curl https://reqres.in/api/users

================
User Management
================

-> Linux OS is a multi user based OS

-> Multiple Users can connect with linux vm at a time.

Note: When we create linux vm using "Amazon Linux" AMI we will get 'ec2-user' as a default user with sudo priviliges.

SUDO : Super user doing operation

# check users available
cat /etc/passwd

# create new user

Syntax : sudo useradd

Ex : sudo useradd john

# set password for user

Syntax : sudo passwd

Ex : sudo passwd john

================================
What is sudoers file in linux ?
================================

Note: To give sudo priviliges for the users we need to add them in sudoers file.

# open sudoers file
sudo visudo

Note: Configure user like below (just below root user)

john ALL=(ALL) ALL
smith ALL=(ALL) ALL

Note: After adding user, close that file using "CTRL + X + Y + Enter"

===================================================
How to enable password based authentication in linux ?
===================================================

=> In Linux VM by default PasswordAuthentication is disabled.

=> If we want to connect with Linux vm using username and password we need to enable that.

# open sshd_config file
sudo vi /etc/ssh/sshd_config

=> Find the Line containing ‘PasswordAuthentication’ parameter and change its value from ‘no’ to ‘yes’

Note: save that file and close it using :wq + Enter

# restart sshd service
sudo service sshd restart

# exit from the machine
exit

# connect with linux vm usng john user
# open gitbash

# execute ssh command
ssh john@public-ip

==================
File Permissions
==================

=> File permissions are divided into 3 types

a) read (r)
b) write (w)
c) execute (x)

=> File permissions will be represented like below

Ex : -rwxrwxrwx f1.txt
drwxrwxrwx ashokit

=> First 3 characters will represent owner permissions (the user who created that file)

=> Middle 3 characters will represent group permissions.

=> Last 3 characters will represent other users permissions.

Ex:

-rw-r-xr-x f1.txt

owner => read + write
group => read + execute
others => read + execute

-rwx------ f2.txt

owner : read + write + execute
group : Nothing
Others: Nothing

=> To add or remove file permissions we will use 'chmod' command.

# add execute permission for user(owner)
chmod u+x f1.txt

# remove write permission for user(owner)
chmod u-w f1.txt

# add write and execute permissions for group
chmod g+wx f1.txt

# remove read permission for others
chmod o-r f1.txt

=> We can represent file permissions using numeric numbers also.

0 => No Permissions

1 => Execute

2 => Write

3 => (2+1) => Write + Execute

4 => Read

5 => (4+1) => Read + Execute

6 => (4+2) => Read + Write

7 => (4+2+1) => Read + Write + Execute

# user-read, group-write, others- r+e
chmod 425 f1.txt

# u+rw, g+w, o+we
chmod 623 f1.txt

#u-rwx, g-rwx , o+rwx
chmod 7 f1.txt

#u-rwx, g+rwx , o+rwx
chmod 77 f1.txt

======================================
How to change ownership of the file ?
======================================

=> using chown command we can change ownership

$ sudo chown ashok f1.txt

==================
Package Managers
==================

Package : A software

=> Package managers are used to manage softwares installation in linux machines.

=> Package Managers are specific to linux distribution.

yum : amazon linux, cent os

apt : ubuntu , debian

rpm : red hat

# install git
sudo yum install git -y
git --version
whereis git

# install java
sudo yum install java -y
java -version
whereis java

# install maven
sudo yum install maven -y
maven -version
whereis maven

🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥

====================
AWS Cloud Bootcamp
====================

Pre-Requisites : Linux Basics

=========
Syllabus
=========

1) What is infrastructure ?

2) On-Prem Infrastructure Challenges

3) Cloud Computing

4) Advantages with Cloud Computing

5) AWS Introduction

6) AWS Services Tour

7) Regions & AZs

8) EC2 + Load Balancer

9) S3

10) RDS

11) IAM

12) Beanstack

13) Lambdas

14) Route 53 (DNS)

========================
What is Infrastructure?
========================

=> Resources required to run our business.

IT Infrastructure :

1) Machines
2) Servers
3) Databases
4) Storage
5) Network
6) Power
7) Security
8) Backup
9) Monitoring

=> We can deal with IT infrastructure in 2 ways

1) On-Prem infrastructure

2) Cloud Infrastructure

=> On-Prem infrastructure means we need to purchase everything and manage everything on our own.

=> We have to deal with below challenges when we go for on-prem infrastructure

1) Lot of investment
2) Scalability
3) Availability
4) Security
5) Storage
6) Monitoring

=> To overcome the challenges with On-Prem infrastructure, companies are moving to cloud computing.

==========================
What is Cloud Computing ?
==========================

=> The process of delivering IT resources over the internet on demand basis is called as Cloud Computing.

=> Cloud Computing works based on pay as you go model.

=> We have below advantages with cloud computing

1) Pay as you go

2) Scalability

3) Availability (24/7)

4) Unlimited Storage

5) Security

6) Backup & Restore

7) Monitoring

===============
Cloud Provider
===============

=> The company which is providing IT infrastructure based on
"pay as you go" model.

1) Amazon => AWS

2) Microsoft => AZURE

3) Google => GCP

4) Salesforce

=====================
Cloud Service Models
=====================

1) IAAS : Infrastructure as a service

2) PAAS : Platform as a service

3) SAAS : Software as a service

==========
AWS Cloud
==========

=> AWS stands for Amazon Webservices.

=> Amazon company started AWS cloud in 2006.

=> Today 190+ countries using AWS cloud services

=> Instead of we are puchasing, managing and maintaining infrastructure simply we can use AWS cloud infrastructure.

=> AWS providing services based on pay as you go model.

=> AWS having global infrastructure using Regions & Availability Zones.

=> We can create free tier account (1 year validity)

=> In AWS cloud we have 200+ services (some are free and some are paid)

=> If we use paid service in AWS, bill be generated.

Note: in AWS, bill amount auto-deduction will not happen. If we don't pay bill amount aws will suspend our account.

Note: As a beginner we can request AWS support team to get free credits.

=============
AWS Services
=============

EC2 : Elastic Compute Cloud => Virtual Servers

S3 : Simple Storage Service => Unlimited Storage

RDS : Relational Database Service => RDBMS

IAM : Identity and Access Management => Users, Groups & Roles

VPC : Virtual Private Cloud => Network

Route 53 : DNS => Domain Mapping

EKS : Elastic Kubernetes Service => K8s Cluster

Beanstack : Platform as a service

Lambdas : Serverless computing => Run application without thinking abt server

===========
Assignment
===========

@@ Reference video : https://youtu.be/GSu1g9jvFhY?si=7VVcaxkZZw_WKWsC

Step-1 : Create Mysql DB using AWS RDS

Step-2 : Check DB connection with workbench

Step-3 : Develop application to connect with RDS DB.

Step-4 : Delete RDS database instance.

=====
EC2
=====

=> EC2 means elastic compute cloud

=> It is used to create virtual machines in aws cloud

EC2 instance = server/machine/vm/instance

=> EC2 is a paid service

=> Minimum billing period for EC2 instance is 1 hour.

9:15 AM - 9:30 AM ===> 1 hour

9:45 AM - 10:00 AM ===> 1 hour

=> To create EC2 instance we will use below resources

1) AMI (OS)
2) Instance Type (configuration)
3) Key Pair (.pem)
4) VPC (networking)
5) Security Group (firewall rules)
6) EBS (storage)

=> Windows Machines will run on RDP protocol and Linux machines will run on SSH protocol.

RDP => 3389

SSH => 22

============
Assignment
============

=> Deploy SpringBoot application in EC2 Linux VM and access that using browser in windows machine.

@@ Reference video : https://www.youtube.com/watch?v=cRQPgbwOWq0

=====================
What is Web server ?
======================

=> Web Server is a software which is used to run web applications.

=> Web applications are divided into 2 types

1) static web application

2) dynamic web application

=> The web app which is giving same response for every user is called as static web application.

Note: To run static websites we can use "httpd" as a webserver.

=> The web app which is giving response based on user is called as dynamic web application.

Note: To run dynamic website we can use "apache tomcat" as webserver.

=============================================
Hosting static website using amazon linux vm
=============================================

Step-1 : Create EC2 VM with amazon linux ami

Step-2 : Connect with EC2 VM using SSH Client

Step-3 : Install "HTTPD" webserver to run static websites

Step-4 : Setup webpages (html files)

Step-5 : Enable http protocol with 80 port number in SG inbound rules.

Step-6 : Access website using EC2 VM public ip in our browser.

-------------------------------------
sudo su
yum install httpd -y
service httpd start

cd /var/www/html

vi index.html
-------------------------------------

Website URl : http://public-ip/

=====================
What is user data ?
=====================

=> It is used to execute the script while launching EC2 VM.

Note: User data will execute only once when the machine is started.

#! /bin/bash

sudo su
yum install httpd -y
cd /var/www/html
echo "

Welcome to AWS Cloud

" > index.html
service httpd start

=============
Assignment
=============

=> Setup a static website using "nginx" web server using EC2 Linux VM.

=======================
What is Load Balancer
=======================

=> When we run our application in single server then we have to face below challenges

1) One server should handle all reqs
2) Burden will increase on server
3) Response will be delayed for clients
4) Server can crash
5) Single Point Of Failure
6) Business Loss

=> To avoid above problems, we will run our application using Load Balancer.

=> Load Balancer is used to distribute load to multiple servers in round robbin fashion.

=> We have below advantages with Load Balancer

1) App will run in multiple severs

2) Load will be distributed

3) Burden will be reduces on servers

4) Fast Performance

5) High Availability

=> We have 4 types of load balancers in aws

1) Application Load Balancer

2) Network Load balancer

3) Gateway Load Balancer

4) Classic Load balancer (previous generation)

# AWS Foundational Voucher Skill Builder Course Requirements

![skillbuilder](https://github.com/user-attachments/assets/060004d6-9f3f-49aa-a194-ae503ebcd0a2)

[GitHub Foundations exam logo](https://github.com/akashdip2001/AWS)

In order to receive the discounted AWS Foundational Certification exam voucher reward, you must take an AWS Skill Builder Exam Prep course and complete an AWS Skill Builder Official Practice Question Set with a passing score of 70% or higher for the certification you are seeking. Please note that the courses must be completed under the AWS Skill Builder account that has the same email as your AWS Educate account.

Qualifying AWS Skill Builder Exam Prep courses are: [click](https://explore.skillbuilder.aws/learn/courses/14050/exam-prep-official-question-set-aws-certified-cloud-practitioner-clf-c02-english)
1) [AWS Cloud Practitioner Essentials](https://explore.skillbuilder.aws/learn/course/134/AWS%2520Cloud%2520Practitioner%2520Essentials)
2) [Exam Prep Standard Course: AWS Certified AI Practitioner](https://explore.skillbuilder.aws/learn/course/external/view/elearning/19554/exam-prep-standard-course-aws-certified-ai-practitioner-aif-c01)

Qualifying AWS Skill Builder Official Practice Question Sets are:
1) [Exam Prep Official Practice Question Set: AWS Certified Cloud Practitioner](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14050/exam-prep-official-question-set-aws-certified-cloud-practitioner-clf-c02-english)
2) [Exam Prep Official Practice Question Set: AWS Certified AI Practitioner](https://explore.skillbuilder.aws/learn/course/external/view/elearning/19790/exam-prep-official-practice-question-set-aws-certified-ai-practitioner-aif-c01-english)

You can find these courses directly by following these steps:
1. Go to AWS [Skill Builder](https://explore.skillbuilder.aws/learn)
2. Use the following search filters: - Languages: English - Domain: Cloud Essentials or AI Practitioner - Course Level: Fundamental (Fundamental includes Foundational and Associate exams, Intermediate includes Professional, and Advanced includes Specialty) - Training Category: Exam Preparation (for practice test), Digital Course (for the Essentials course)
3. Choose the course. As a reminder please make sure your Skill Builder email matches the email associated with your ETC/Educate account.

---

[![Screenshot (466)](https://github.com/user-attachments/assets/5beabdaf-fb3d-4296-9128-8e03e2a0f236)](https://explore.skillbuilder.aws/learn/courses/16434/retiring-exam-prep-standard-course-aws-certified-cloud-practitioner-clf-c02-english)

# AWS Associate Voucher Skill Builder Course Requirements

In order to receive the discounted AWS Associate Certification exam voucher reward, you must complete an AWS Skill Builder Exam Prep course and complete an AWS Skill Builder Official Practice Question Set with a passing score of 70% or higher for the certification you are seeking. Please note that the courses must be completed under an AWS Skill Builder account that has the same email as your AWS Educate account. Depending on your desired certification, qualifying ones are:

Qualifying AWS Skill Builder Exam Prep courses are:
1) [Exam Prep Standard Course: AWS Certified Solutions Architect - Associate](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14760/exam-prep-standard-course-aws-certified-solutions-architect-associate-saa-c03)
2) [Exam Prep Standard Course: AWS Certified SysOps Administrator - Associate](https://explore.skillbuilder.aws/learn/course/external/view/elearning/18546/exam-prep-standard-course-aws-certified-data-engineer-associate-dea-c01)
3) [Exam Prep Standard Course: AWS Certified Developer - Associate](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14724/exam-prep-standard-course-aws-certified-developer-associate-dva-c02)
4) [Exam Prep Standard Course: AWS Certified Data Engineer-Associate](https://explore.skillbuilder.aws/learn/course/external/view/elearning/18546/exam-prep-standard-course-aws-certified-data-engineer-associate-dea-c01)
5) [Exam Prep Standard Course: AWS Certified Machine Learning Engineer- Associate](https://explore.skillbuilder.aws/learn/courses/20365/exam-prep-standard-course-aws-certified-machine-learning-engineer-associate-mla-c01-english)

Qualifying AWS Skill Builder Official Practice Question Sets are:
1) [Exam Prep Official Practice Question Set: AWS Certified Solutions Architect - Associate](https://explore.skillbuilder.aws/learn/course/external/view/elearning/13266/exam-prep-official-practice-question-set-aws-certified-solutions-architect-associate-saa-c03-english)
2) [Exam Prep Official Practice Question Set: AWS Certified SysOps Administrator - Associate](https://explore.skillbuilder.aws/learn/course/external/view/elearning/12485/exam-prep-official-practice-question-set-aws-certified-sysops-administrator-associate-soa-c02-english)
3) [Exam Prep Official Practice Question Set: AWS Certified Developer - Associate](https://explore.skillbuilder.aws/learn/course/external/view/elearning/13757/exam-prep-official-practice-question-set-aws-certified-developer-associate-dva-c02-english)
4) [Exam Prep Official Practice Question Set: AWS Certified Data Engineer- Associate](https://explore.skillbuilder.aws/learn/course/internal/view/elearning/16985/exam-prep-official-practice-question-set-aws-certified-data-engineer-associate-dea-c01-english)
5) [Exam Prep Official Practice Question Set: AWS Certified Machine Learning Engineer- Associate](https://explore.skillbuilder.aws/learn/courses/19688/exam-prep-official-practice-question-set-aws-certified-machine-learning-engineer-associate-mla-c01-english)

You can find these courses directly by following these steps:
1. Go to [AWS Skill Builder](https://explore.skillbuilder.aws/learn)
2. Use the following search filters: - Languages: English - Domain: SysOps, Architecting, Developing, Data Engineer, and Machine Learning Engineer - Course Level: Fundamental (Fundamental includes Foundational and Associate exams) - Training Category: Exam Preparation (for exam prep course)
3. Choose the course. As a reminder please make sure your Skill Builder email matches the email associated with your ETC/Educate account.