Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Useful Documentation, Code, and Tools for use on AWS

  1. The AWS Code Examples Repository contains sample code for coding solutions in every AWS Service in every SDK available

  2. The Official Source of AWS Feature Updates

  3. Query EC2 Instance Attributes such as instanceId, Region, privateIp address, and more using this python module

  4. Run bash scripts on AWS Lambda, also available as a container image

  5. Return only the relevant datapoints you need by scripting with the aws-cli and jq
    …as well as SQL

  6. Comprehensive Collection of DevOps Scripts

  7. CLI tool that recommends an instance type based on your compute and memory requirements

  8. The verified AWS-Lab repo on Github has 450+ Amazon-approved solutions documented and coded for many common issues devs face

  9. Self-Described ‘practical guide to AWS’; hasn’t been updated in awhile but contains a solid central source of key terms and concepts

  10. A curated list of awesome AWS libraries, open source repos, guides, blogs, and other resources. Definitely the gold standard in aws knowledge-sharing

  11. Hands on labs and code to help you learn, measure, and build using architectural best practices in AWS

Using an AWS Service or Tool for the First Time:

Elastic Compute Cloud (EC2)

Official AWS Documentation Pages

Changing the instance type

Placement groups

aws ec2 modify-instance-placement

EC2 Scheduler

Working with security groups in Amazon EC2

Collection of workshops to demonstrate best practices in using Amazon EC2 Spot Instances

amazon-ec2-utils contains a set of utilities and settings for Linux deployments in EC2

Setting the Time for Your Linux Instance

Amazon Web Services Elastic Compute Cloud (EC2) Rescue for Linux is a python-based tool that allows for the automatic diagnosis of common problems found on EC2 Linux instances.

Listing and Filtering Your Resources

Community Articles with Walkthroughs and Guides

EC2 instance metadata proxy for linux containers

Spot Instances usage in batch jobs

Playing the AWS ec2 Spot Market

An easy interface to query the EC2 metadata API, with caching.

Linux and Server Admin
Password Authentication

How to prevent cloud-init from disable ssh PasswordAuthentication?

How to set “PasswordAuthentication” as yes through automation


CentOS epel repository listed more than once

Micellaneous Installation Guides

How To: Install Homebrew on Amazon Linux

Homebrew Formulae – Python 3.8

How to install Python 3.8 on Ubuntu?

User data to install and run Docker in an Ubuntu AWS instance

How to Install Package Updates on Ubuntu via Command-Line

Updating instance software on your Amazon Linux instance

I want to install a Graphical User Interface (GUI) in my Amazon EC2 instance running Amazon Linux 2. How do I do this?

How To Set Up GUI On Amazon EC2 Ubuntu server

Recover Deleted Files

How to Recover deleted files in Ubuntu through TestDisk

Elastic Block Storage (EBS)

Official AWS Documentation Pages

Amazon EBS–optimized instances

Mapping between EC2 volume and your mounted filesystem

Amazon EBS encryption

Encrypting unencrypted resources

Using encryption with EBS-backed AMIs

Detaching an Amazon EBS volume from a Linux instance

Amazon EBS fast snapshot restore

EC2 Instance Metadata Query Tool – A simple bash script that uses curl to query the EC2 instance Metadata from within a running EC2 instance.

Community Articles with Walkthroughs and Guides

Amazon EBS volumes: How to Shrink ’em Down to Size

How to downsize a root EBS volume on AWS EC2 (Amazon Linux)

How to reduce volume of an AWS EC2 instance

Decrease the size of EBS volume in your EC2 instance

How to SHRINK an Amazon AWS EBS volume safely with no data loss

Extending a Linux file system after resizing a volume

How to encrypt EBS volumes of a running EC2 instance?

How to get latest Snapshot for a volume in AWS using API

how to get the latest aws volume snapshot id number using python/boto?

Lambda for snapshotting EBS, only keeping latest snapshot

Encrypt EBS volumes from AWS EC2 instances

Encrypt EBS volumes from AWS EC2 instances with a serverless StepFunctions machine


Iterate through each attached volume and encrypt it for EC2 – root

Iterate through each attached volume and encrypt it for EC2. – one instance

Tools to manage AWS EBS volumes and snapshots

Serverless Backup for your EBS Volumes on AWS, using AWS Lambda

Tag EBS Volumes with Names Similar to the hosts they’re attached too

I do not have permission to access files on the mounted volume

Key Management Service (KMS)

Official AWS Documentation Pages

AWS Key Management Service Best Practices (Whitepaper)

Share Custom Encryption Keys More Securely Between Accounts by Using AWS Key Management Service

How do I share my customer master keys (CMKs) across multiple AWS accounts?

Allowing users in other accounts to use a CMK

AWS KMS API permissions: Actions and resources reference

Community Articles with Walkthroughs and Guides

Systems Manager (SSM)

Official AWS Documentation Pages

The open source version of the AWS Systems Manager user guide. You can submit feedback & requests for changes by submitting issues in this repo or by making proposed changes & submitting a pull request.

How do I install AWS Systems Manager Agent (SSM Agent) on an Amazon EC2 Linux instance at launch?

The AWS-UpdateWindowsAmi document enables you to automate image maintenance tasks on your Amazon Windows AMIs without having to author the workflow in JSON or YAML.

How patches are installed

Query for the latest Amazon Linux AMI IDs using AWS Systems Manager Parameter Store

A utility to convert your Python or Bash programs into SSM documents (and optionally - CloudFormation templates, containing those documents).

Automation system variables

Systems Manager Automation actions reference

Running Automation workflows in multiple AWS Regions and accounts

Running an Automation workflow by using delegated administration

Attach an IAM instance profile to an EC2 instance

Community Articles, Forums, Repos with Code and Guides

Terraform module to automate patching of AMI templated EC2 Linux instances in a specify schedule

A command line utility enabling SSH-like interactive sessions and continuous output for long running commands via the AWS SSM API.

AWS Storage Gateway

Official AWS Documentation Pages



awslabs – aws-cloudformation-templates/aws/services/CloudFormation/HostnameChangeRHEL-Userdata.template

Community Articles, Forums, Repos with Code and Guides

Creating AWS File Gateway as an NFS storage for your EC2 instance.

Very very slow performance…

Community GitHub Repos

FUSE-based file system backed by Amazon S3


Official AWS Documentation Pages

Switching to an IAM Role (AWS API)

How can I configure a Lambda function to assume a role from another AWS account?

Using an IAM Role to Grant Permissions to Applications Running on Amazon EC2 Instances

Community Articles with Walkthroughs and Guides

A tool for quickly evaluating IAM permissions in AWS.

Awsume is a convenient way to manage session tokens and assume role credentials.

Auto-Scaling Groups

Official AWS Documentation Pages
Community Articles with Walkthroughs and Guides

AWS Auto Scaling based on Memory Utilization in CloudFormation

Elastic Load Balancer (ELB)

Official AWS Documentation Pages
Community Articles with Walkthroughs and Guides

What is Amazon Elastic Load Balancer (ELB)


Official AWS Documentation Pages

Viewing Available Metrics

Why isn’t my CloudWatch GetMetricStatistics API call returning data points?

Ingesting High-Cardinality Logs and Generating Metrics with CloudWatch Embedded Metric Format

Using Metric Math

Amazon CloudWatch Embedded Metric Format Client Library

Probabilistic time series modeling in Python

Push metrics and logs to CloudWatch from any system that can run Python

A CLI tool to merge schema files, and validate operations against the merged GraphQL Schema. With features like adding your own custom validation rules.

Graph Metrics Manually on a CloudWatch Dashboard

Amazon CloudWatch Embedded Metric Format Client Library

Building an Amazon CloudWatch Dashboard Outside of the AWS Management Console

Amazon CloudWatch metrics for Amazon EBS


Amazon EBS Metrics

Community Articles with Walkthroughs and Guides

access to custom cloudwatch metrics using lambda+boto3?

Metrics exporter for Amazon AWS CloudWatch

[ARCHIVE] DSL for querying against metrics stored in Amazon CloudWatch

Store custom CloudWatch metrics in a cost-effective way


Redash is our take on freeing the data within our company in a way that will better fit our culture and usage patterns.

Zabbix Scripts & templates for monitoring AWS Services

AWS CloudWatch Fluent Metrics

Start up script used to create Cloudwatch monitoring and alarms for RAM.

A Dockerized version of Ice, Netflix’s AWS Usage tool.

AWS Cloudwatch to Spreadsheet

The Node module to draw charts for AWS CloudWatch metrics

CloudWatch to AWS Lambda to Slack Channel Alerts and Charts. Posts CloudWatch Alerts via SNS topic via Lambda function to Slack channel. And draws charts for CPUUtilization metrics(both for EC2 abd RDS).

Just dump all the CloudWatch metrics.

Queries AWS for metrics of running EC2 instances.

An API to export Cloudwatch Metrics to Prometheus exposition format

Allowing to display your AWS Cloudwatch dashboards on your website or locally

Bring Amazon AWS Cloudwatch metrics into Graphite

Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.

Send metrics from AWS Cloudwatch to Sumo Logic

Extremely Useful AWS CLI shell scripts to be used with CloudWatch

20+ Grafana dashboards for AWS CloudWatch metrics: EC2, Lambda, S3, ELB, EMR, EBS, SNS, SES, SQS, RDS, EFS, ElastiCache, Billing, API Gateway, VPN, Step Functions, Route 53, CodeBuild, …

Lambda to create cloudwatch metric filters, custom metrics and dashboard

Relational Database Service (RDS)

Official AWS Documentation Pages

Importing Data into Oracle on Amazon RDS

Community Articles, Forums, Repos with Code and Guides

Database Migration Service (DMS)

Official AWS Documentation Pages

Using an Oracle Database as a Source for AWS DMS

Best practices for migrating an Oracle database to Amazon RDS PostgreSQL or Amazon Aurora PostgreSQL: Source database considerations for the Oracle and AWS DMS CDC environment

How can I troubleshoot AWS DMS endpoint connectivity failures?

Create AWS CloudFormation templates for AWS DMS tasks using Microsoft Excel

Community Articles, Forums, Repos with Code and Guides

Using AWS Data Migration Service with RDS

Creates an example AWS DMS for replicating an (on-prem) Oracle database to a cloud-based Postgres database

Sample code that reads Microsoft Excel workbook/CSV File for the details required to create a DMS task CloudFormation template

AWS Simple Storage Service (S3)

Official AWS Documentation Pages

Why am I getting Access Denied errors on ListObjects actions when I run a sync command on my Amazon S3 bucket?

Community Articles, Forums, Repos with Code and Guides

Print usage stats of S3 buckets

Amazon QuickSight

Official AWS Documentation Pages

Amazon QuickSight Python3 SDK

Advanced analytics with table calculations in Amazon QuickSight

Python3 Example of Embedding a Dashboard with Amazon QuickSight

A QuickSight dashboard embedding sample for web apps.

ARN Formats

Amazon QuickSight Embedded Analytics

Evolve your analytics with Amazon QuickSight’s new APIs and theming capabilities

Community Articles, Forums, Repos with Code and Guides

AWS Quicksight - Quick Guide

Tools that make it easier to analyze AWS Cost and Usage reports. Initial version provides support for Athena and QuickSight.

Amazon QuickSight, Amazon Athena and Amazon Spectrum workshop. Workshop will focus on ingesting data into Athena & Spectrum, combining it with other data sources, and visualizing it in QuickSight.

The objective of the project is to build a data pipeline which helps in extracting insights from the data with faster turnaround time.

Python3 Example for Getting the Dashboard URL from the App Server

HTML Example for Embedding a Dashboard with Amazon QuickSight Using the URL from the App Server

AWS Glue

Official AWS Documentation Pages

Find Matches Examples

FAQ for AWS Glue

Utilities for AWSGlue

Samples of AWS Glue Implementation

Dynamic Dataframes

Community Articles, Forums, Repos with Code and Guides


Official AWS Documentation Pages

The Amazon ECS CLI enables users to create and manage their ECS projects, from source code, infrastructure to operations.

Docker Basics for Amazon ECS

The role of AWS Fargate in the container world

Community Articles, Forums, Repos with Code and Guides

Full IAC to build jenkins master (AMI, master & slave docker image), slave cluster in different regions on EC2, ECS EC2 & fargate on AWS

Fargate CLI

How to use AWS Fargate and Lambda for long-running processes in a Serverless app

AWS Fargate Labs

Deploy serverless containers to the cloud from your command line (Go-based Fargate CLI)

Copies all the stuff in account, region “a” to account, region “b” in regards to ECR. A quick lift and shift deal.

Testing ground for container orchestration on AWS


Official AWS Documentation Pages

Best Practices

The cfn-init helper script reads template metadata from the AWS::CloudFormation::Init key and acts accordingly to, Fetch and parse metadata from AWS CloudFormation, Install packages, Write files to disk, Enable/disable and start/stop services

Templates exemplifying the conditional creation of resources based on environment

Run arbitrary python code in your CloudFormation templates

A collection of useful CloudFormation templates

Community Articles, Forums, Repos with Code and Guides


Official AWS Documentation Pages

Blank AWS Lambda Function with Python Runtime

Community Articles, Forums, Repos with Code and Guides

Get AWS account id inside Lambda function programmatically - python

Run Bash scripts in AWS Lambda via Layers

Amazon Web Services Modules (aws-modules, awsm’s) contain pre-written, isolated functions ready to run on one or multiple AWS Lambda functions. Some examples are: functions that send out emails, register users or handle webhooks from other services.

The AWS Lambda container image converter tool (img2lambda) repackages container images (such as Docker images) into AWS Lambda function deployment packages and Lambda layers.

Elastic Kubernetes Service (EKS)

Official AWS Publication
Community Sourced

A curated list of awesome tools for Amazon EKS

General Utilities

Official AWS Publication

The AWS Deployment Framework (ADF) is an extensive and flexible framework to manage and deploy resources across multiple AWS accounts and regions based on AWS Organizations.

Create CloudFormation templates from existing infrastructure – this version of the CloudFormer solution can be used to launch the solution into an existing VPC.

Serverless app designed for any customer with two or more accounts to view resources across accounts/regions in simple single pane of glass website


Imputation of missing values in tables.

A solution which enables a multilingual conversational platform, facilitating the creation of applications using voice and text

This repo contains a simple application that consists of three microservices. Each application is deployed using different Compute options on AWS.

The AWS CDK is a new software development framework from AWS with the sole purpose of making it fun and easy to define cloud infrastructure in your favorite programming language and deploy it using AWS CloudFormation.

Official AWS CDK Roadmap

Collection of AWS Scripts

Community Sourced

A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.

Rich Morrow’s Personal Compilation of Helpful AWS Links

Use Boto3 to Assume a Role in another AWS Account

Building Beautiful Command Line Interfaces with Python

All Datasets used as part of articles – good repo to read sample data from

This script will process cloudtrail records to create a sqlite db of resources and their creators, and then use that sqlitedb to tag the resources with their creator’s name.

A tool to load bulk simulation data into AWS IoT Analytics

This is a set of boilerplate scripts describing the normalized script pattern that GitHub uses in its projects. While these patterns can work for projects based on any framework or language, these particular examples are for a simple Ruby on Rails application.

On this lab we will convert our infrastructure into code by using CloudFormation to stand up the same stack from last week.

AI and Machine Learning with Kubeflow, Amazon EKS, and SageMaker


Boto and LibCloud to automate AWS and OpenStack related tasks (CloudWatch/AutoScaling/Glacier/Volumes/EC2/S3/SNS/etc)



List of open source tools for AWS security: defensive, offensive, auditing, DFIR, etc.

A repository of useful functions (offensive & defensive) to interact with AWS services

Project to manage AWS Organization using boto3

Cartography is a Python tool that consolidates infrastructure assets and the relationships between them in an intuitive graph view powered by a Neo4j database.

Rules engine for cloud security, cost optimization, and governance, DSL in yaml for policies to query, filter, and take actions on resources

Cloud Custodian Policies

Windows Subsystem for Linux

Awesome list dedicated to Windows Subsystem for Linux

Amazon Linux as a WSL Instance. Supports multiple install.

Setting up Ubuntu (WSL) for Linux GUI Apps

Targeting the Windows Subsystem for Linux from Visual Studio

Tutorials, Certification and Trainings

General Algorithms, Data Structures, Big O, etc

Big O Cheatsheet

Data Structures


Environment variables to configure the AWS CLI

Getting credentials from EC2 instance metadata

AWS CLI Cheatsheet

How to run a script or a command on EC2 instance via AWS CLI?


yq is a lightweight and portable command-line YAML processor

AWS CLI v2 Docker image

AWS CLI with jq and Bash – The CLI is utilitarian, but a little jq sauce makes it beautiful

AWS CLI with jq make things easy

jq in-browser test queries

AWS Lambda Layer for AWS CLI

Examples of querying AWS through ‘–query’ flag with AWS-CLI, as well as through SQL and other means

Querying Instances using Filter on Tag Values

Useful AWS command line tools using JMESPath and jq

AWS-CLI Cheatsheet

AWS-CLI commands(Region, AZ, IAM, EC2)

AWS-CLI commands examples (Autoscaling and EC2)

Query AWS resources with SQL

Quick Reference to Common AWS CLI Commands

Controlling command output from the AWS CLI

How can I list Amazon EBS volume or snapshot information for my Amazon EC2 instance by using the AWS CLI?

awsq provides a way to query and filter data from aws ec2 describe-instances

JMESPath exploration tool in the terminal

aegea - Amazon Web Services Operator Interface

Shell Scripting

Bash Scripting Tutorial - 5. If Statements

Passing Arguments to Bash Functions

Script to fetch an MFA token for you to use temporary aws access credentials

AWK command in Unix/Linux with examples

Bash Read Comma Separated CSV File on Linux / Unix

How to do integer & float calculations, in bash or other languages/frameworks?

Is there any way to copy all lines from open file to clipboard in VI editor?

How can I preview HTML documents from the command line?

Bash script to easily set shell environment with temporary access tokens using a config file and the AWS credentials file

DevOps Bash Tools

The GNU Awk User’s Guide

A CLI tool and go library which recommends instance types based on resource criteria like vcpus and memory


Open Container Initiative – Creating open standards around container technology

This is the public roadmap for AWS container services (ECS, ECR, Fargate, and EKS).



Docker Certified Associate

Simple Docker image with the AWS CLI

How To Install and Use Docker on Ubuntu 18.04

User data to install and run Docker in an Ubuntu AWS instance

Examples using the Docker Engine SDKs and Docker API

docker build

How To SSH Into A Running Docker Container And Run Commands

Dockerize your Python Application

This project provides source code of example applications for people to get started using AWS Serverless Application Repository.

How to containerize your legacy apps without sweating


What is Podman? Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. Containers can either be run as root or in rootless mode. Simply put: alias docker=podman.

Podman Installation Instructions

How to run Podman on Windows with WSL2

libpod is a library used to create container pods. Home of Podman.

Configuring container networking with Podman

containerd is available as a daemon for Linux and Windows. It manages the complete container lifecycle of its host system, from image transfer and storage to container execution and supervision to low-level storage to network attachments and beyond.

Building, Running, and Managing Containers with RHEL8

Unprivileged Sandbox Tool

A quick guide to podman and toolbox in Debian (and maybe Ubuntu)



comp3321 NSA Python Training Document

Leetcode Algorithms

Number Of Islands Tutorial (Python)

heapq — Heap queue algorithm

Python Sorting Algorithms


Stop pip from failing on single package when installing with requirements.txt

An easy interface to query the EC2 metadata API, with caching.

Parse ARNs using Python

Wrap a WSGI application in an AWS Lambda handler function for running on API Gateway or an ALB.

A Simple and Scalable Logging Utility With a Beautiful Visualization Dashboard

bunker is a command line program for setting up an ec2 in AWS for remote development or as a backup. It can clone your git repos, and transfer ignored files from your machine to the ec2.

A collection of useful decorators for making AWS Lambda handlers

Boto3 (Python SDK for AWS)

Async client for aws services using botocore and aiohttp

Async AWS SDK for Python

Resources – Boto3

boto3 quick hands-on

Pandas on AWS

Migration from Boto2.x to Boto3

A basic boto3 based tool for retrieving information from running EC2 instances.

Manipulate and parse data in Python using dataframes, also includes info on handling csv and Excel files (.xlsx, .xlsm)

xlsxwriter – Adjust excel reference cells in loop when creating formula

openpyxl – Accessing many cells; Ranges of cells can be accessed using slicing:

openpyxl – Sheet: Data Access

Examples of automation of excel via python, and related useful things

Ingest Excel data automatically into Amazon QuickSight

How to Export Pandas DataFrame to an Excel File

Removing duplicate entries in a csv file using a python script

Pandas – Python | Pandas dataframe.drop_duplicates()

Joining DataFrames in Pandas

How To Append Rows to a Pandas dataframe using a for loop in Python

A Python extension for writing structured and reusable inline HTML.

Apply and Lambda usage in pandas


This repo is meant to be a place where AWS concepts, documentation, guides, and code can be shared freely. All credit for work is attributed, let me know if I missed something.




No releases published


No packages published