# CloudBytes/dev > CloudBytes/dev — code snippets, AWS Academy lessons, and tutorials for cloud, Python, Linux, and developer tooling. ## About - [About](https://cloudbytes.dev/about): Who runs CloudBytes/dev, focus areas, and how to get in touch. - [Authors hub](https://cloudbytes.dev/authors): All authors with bios and post lists. - [Glossary](https://cloudbytes.dev/learn/glossary): Definitions of recurring AWS, CDK, Linux, and Python terms used across the site. ## AWS Academy (47 posts) - [Configure DynamoDB point-in-time recovery and deletion protection using AWS CDK](https://cloudbytes.dev/aws-academy/configure-dynamodb-point-in-time-recovery-and-deletion-protection-using-aws-cdk): How to enable point-in-time recovery and deletion protection for a DynamoDB table using AWS CDK in Python - [Create a DynamoDB table using AWS CDK in Python](https://cloudbytes.dev/aws-academy/create-dynamodb-table-using-aws-cdk-in-python): How to create a DynamoDB table with AWS CDK in Python, output the table name, add a sample item, and clean up the stack - [Running a Web Server in a Private Subnet secured](https://cloudbytes.dev/aws-academy/running-a-web-server-in-a-private-subnet-secured): Guide to running a Web Server in a Private Subnet with AWS CDK in Python. - [Creating a 3-Tier Network Architecture VPC with AWS CDK in Python](https://cloudbytes.dev/aws-academy/creating-a-3-tier-network-architecture-vpc-with-aws-cdk-in-python): Guide to creating a 3-Tier Network Architecture VPC with a public, private, and isolated subnet using AWS CDK in Python. - [Running Lambda Functions in a VPC with AWS CDK in Python](https://cloudbytes.dev/aws-academy/running-lambda-functions-in-a-vpc-with-aws-cdk-in-python): Running Lambda Functions in a VPC with AWS CDK in Python - [Using multiple environments AWS CLI and profiles with CDK](https://cloudbytes.dev/aws-academy/using-multiple-environments-aws-cli-and-profiles-with-cdk): How to use multiple environments, AWS Accounts and profiles with AWS CDK - [Configure log retention and removal policy for Lambda function using AWS CDK in Python](https://cloudbytes.dev/aws-academy/configure-log-retention-and-removal-policy-for-lambda-function-using-aws-cdk-in-python): Learn how to configure CloudWatch logs retention and removal/deletion policy for a Lambda function using AWS CDK in Python - [Granting Lambda function permission to access DynamoDB using AWS CDK in Python](https://cloudbytes.dev/aws-academy/granting-lambda-function-permission-to-access-dynamodb-using-aws-cdk-in-python): Learn how to grant Lambda permissions to access DynamoDB using AWS CDK in Python - [Granting S3 permissions to a Lambda function using AWS CDK in Python](https://cloudbytes.dev/aws-academy/granting-s3-permissions-to-a-lambda-function-using-aws-cdk-in-python): Learn how to grant S3 permissions to a Lambda function and accessing files from an S3 bucket using AWS CDK in Python - [How to create a Lambda function in a Custom Docker image using AWS CDK in Python](https://cloudbytes.dev/aws-academy/how-to-create-a-lambda-function-in-a-custom-docker-image-using-aws-cdk-in-python): This article provides a walkthrough on how to deploy an AWS Lambda function using a Custom Ubuntu Docker image with AWS CDK in Python - [How to create a Lambda function in a ECR Docker image using AWS CDK in Python](https://cloudbytes.dev/aws-academy/how-to-create-a-lambda-function-in-a-ecr-docker-image-using-aws-cdk-in-python): This article provides a walkthrough on how to deploy an AWS Lambda function using a AWS provided ECR Docker image with AWS CDK in Python - [Mount Amazon FSX Lustre filesystem and attack to AWS EC2 instance](https://cloudbytes.dev/aws-academy/mount-amazon-fsx-lustre-filesystem-and-attack-to-aws-ec2-instance): A step-by-step guide to mount Amazon FSX Lustre filesystem and attack to AWS EC2 instance - [Mount Amazon EFS Drive on EC2 Ubuntu Linux using NFS Utils](https://cloudbytes.dev/aws-academy/mount-amazon-efs-drive-on-ec2-ubuntu-linux-using-nfs-utils): A comprehensive guide to mount Amazon Elastic File Storage (EFS) on Ubuntu Linux using NFS Utils and then use it to serve files from the EFS drive. The guided includes instructions for both AWS Console & CLI - [Migrate a DB to RDS using AWS Database Migration Service (DMS)](https://cloudbytes.dev/aws-academy/migrate-a-db-to-rds-using-aws-database-migration-service-dms): Use AWS Database Migration Service (DMS) to migrate a database to Amazon RDS by configuring a replication instance, source and target endpoints, and a migration task. - [Add CORS configuration to a S3 bucket using AWS CDK](https://cloudbytes.dev/aws-academy/add-cors-configuration-to-a-s3-bucket-using-aws-cdk): Learn how to setup and configure CORS for S3 buckets using CDK - [How to create a lambda function using AWS CDK in Python](https://cloudbytes.dev/aws-academy/how-to-create-a-lambda-function-using-aws-cdk-in-python): A complete guide to creating a lambda function using AWS CDK - [How to import an existing lambda function using AWS CDK in Python](https://cloudbytes.dev/aws-academy/how-to-import-an-existing-lambda-function-using-aws-cdk-in-python): A guide to importing an existing lambda function using AWS CDK in Python and applying changes to it - [Import an existing S3 bucket in CDK](https://cloudbytes.dev/aws-academy/import-an-existing-s3-bucket-in-cdk): How to import an existing S3 bucket using different methods in CDK using Python - [Manage Python dependencies in AWS Lambda using AWS CDK](https://cloudbytes.dev/aws-academy/manage-python-dependencies-in-aws-lambda-using-aws-cdk): We look at how to package, install and manage Python dependencies in AWS Lambda using AWS CDK - [Using Lambda Layers with AWS CDK in Python](https://cloudbytes.dev/aws-academy/using-lambda-layers-with-aws-cdk-in-python): Using Lambda layers with AWS CDK in Python to handle dependencies and share code between lambda functions - [Configure event notifications using EventBridge for S3 buckets using CDK](https://cloudbytes.dev/aws-academy/configure-event-notifications-using-eventbridge-for-s3-buckets-using-cdk): Guide to configure event notifications using EventBridge for S3 buckets using CDK - [Configure event notifications using S3 buckets notifications](https://cloudbytes.dev/aws-academy/configure-event-notifications-using-s3-buckets-notifications): Guide to configure bucket notifications for S3 buckets using CDK - [Configure lifecycle rules for S3 buckets using CDK](https://cloudbytes.dev/aws-academy/configure-lifecycle-rules-for-s3-buckets-using-cdk): How to configure S3 lifecycle rules like expiration and transition - [Configure public access control for S3 buckets using CDK](https://cloudbytes.dev/aws-academy/configure-public-access-control-for-s3-buckets-using-cdk): How to configure S3 public access control - [Configure S3 encryption using CDK](https://cloudbytes.dev/aws-academy/configure-s3-encryption-using-cdk): How to configure S3 encryption for objects using CDK including SSE-S3, SSE-KMS, and SSE-C - [Configure S3 versioning using CDK](https://cloudbytes.dev/aws-academy/configure-s3-versioning-using-cdk): How to configure S3 versioning using CDK - [Create S3 bucket using CDK](https://cloudbytes.dev/aws-academy/create-s3-bucket-using-cdk): How to create an S3 bucket in CDK using Python - [How to get the ARN of a resource using AWS CDK](https://cloudbytes.dev/aws-academy/how-to-get-the-arn-of-a-resource-using-aws-cdk): A guide on how to get the ARN of a resource using AWS CDK - [Get your AWS Account ID using AWS CLI](https://cloudbytes.dev/aws-academy/get-your-aws-account-id-using-aws-cli): A guide to how to get your AWS Account ID using AWS CLI - [How to install and configure AWS CLI on Linux with Autocompletion](https://cloudbytes.dev/aws-academy/how-to-install-and-configure-aws-cli-on-linux-with-autocompletion): A guide to how to install and configure AWS CLI on Ubuntu Linux with Autocompletion turned on - [Managing dependency between stacks in CDK](https://cloudbytes.dev/aws-academy/managing-dependency-between-stacks-in-cdk): How to specify dependency between stacks in CDK - [CDK Output: How to Output data from a stack](https://cloudbytes.dev/aws-academy/cdk-output-how-to-output-data-from-a-stack): Explanation of concept of Outputs, how to use them to share data to other stacks - [How to Import Stack Output from another stack](https://cloudbytes.dev/aws-academy/how-to-import-stack-output-from-another-stack): A guide to importing Stack Outputs and using them as Cross Stack references - [Basic AWS CDK Commands - list, diff, deploy, destroy](https://cloudbytes.dev/aws-academy/basic-aws-cdk-commands-list-diff-deploy-destroy): An introduction to some of the basic AWS CDK commands such as list, diff, deploy, and destroy - [Creating multiple stacks in AWS CDK](https://cloudbytes.dev/aws-academy/creating-multiple-stacks-in-aws-cdk): Guide to the process of creating and managing multiple stacks in a single AWS CDK application - [CDK Bootstrap: Setting up your AWS account for CDK](https://cloudbytes.dev/aws-academy/cdk-bootstrap-setting-up-your-aws-account-for-cdk): This article explains what is CDK Bootstrap and how to setup your AWS account for use with CDK - [Creating a new CDK app with Python](https://cloudbytes.dev/aws-academy/creating-a-new-cdk-app-with-python): How to create a new CDK app that uses Python as the programming language - [Setup your dev environment for use with AWS](https://cloudbytes.dev/aws-academy/setup-your-dev-environment-for-use-with-aws): Instructions on how to setup the optimial development environment for use with AWS and this course - [Understanding Constructs in the AWS CDK](https://cloudbytes.dev/aws-academy/understanding-constructs-in-the-aws-cdk): Dive deep into the fundamental building blocks of the AWS Cloud Development Kit: Constructs - [Update an existing CDK app](https://cloudbytes.dev/aws-academy/update-an-existing-cdk-app): How to update an existing CDK app - [Install and configure AWS Cloud Development Kit (AWS CDK)](https://cloudbytes.dev/aws-academy/install-and-configure-aws-cloud-development-kit-aws-cdk): A guide to how to install and configure AWS CDK on Windows 10/11, MacOS, and WSL2/Linux. - [CDK API Gateway with Custom Domain](https://cloudbytes.dev/aws-academy/cdk-api-gateway-with-custom-domain): Create API Gateway and connect it with a custom domain / subdomain using Route53 - [Cross Account Access to AWS Services using IAM Roles](https://cloudbytes.dev/aws-academy/cross-account-access-to-aws-services-using-iam-roles): Access another AWS account temporarily using an IAM role and STS - [How to Install and Run WordPress on an EC2 Instance](https://cloudbytes.dev/aws-academy/how-to-install-and-run-wordpress-on-an-ec2-instance): A detailed guide on how to configure, install, and run WordPress on an EC2 instance. This guide will cover installation of NGINX, PHP, MySQL, and WordPress (LEMP stack) on Amazon Linux 2 - [How to create an AWS EC2 instance using AWS CLI](https://cloudbytes.dev/aws-academy/how-to-create-an-aws-ec2-instance-using-aws-cli): A guide to create an EC2 instance using AWS CLI and login to the server - [How to create an AWS EC2 instance using AWS Console](https://cloudbytes.dev/aws-academy/how-to-create-an-aws-ec2-instance-using-aws-console): A guide to create an EC2 instance using AWS Management console and login to the server - [Run Flask Apps on Elastic Beanstalk](https://cloudbytes.dev/aws-academy/run-flask-apps-on-elastic-beanstalk): Create a simple Flask app and run on AWS Elastic Beanstalk ## Snippets (49 posts) - [How to install multiple instances of Ubuntu in WSL2](https://cloudbytes.dev/snippets/how-to-install-multiple-instances-of-ubuntu-in-wsl2): A guide to installing multiple fresh instances of Ubuntu in WSL2 - [Upgrade Python to latest version (3.14) on Ubuntu Linux or WSL2](https://cloudbytes.dev/snippets/upgrade-python-to-latest-version-on-ubuntu-linux): A complete guide on how to upgrade Python to the latest version (Python 3.14) on Ubuntu Linux and solve associated issues. Also works on WSL2. Can also be used to upgrade to any Python version. - [Compile Expo React Native application for Android](https://cloudbytes.dev/snippets/compile-expo-react-native-application-for-android): A guide to compiling a React Native application built using Expo framework for Android - [Add new users with SSH access to EC2 instance](https://cloudbytes.dev/snippets/add-new-users-with-ssh-access-to-ec2-instance): How to new additional user with keypair for SSH access to EC2 instance - [Run Selenium and Chrome on WSL2 using Python and Selenium webdriver](https://cloudbytes.dev/snippets/run-selenium-and-chrome-on-wsl2): A guide to installating, configuring and running Selenium and Chrome for Testing on Windows Subsystem for Linux (WSL2) and run tests using Python and Selenium webdriver. - [Fix or configure Git authentication in WSL2](https://cloudbytes.dev/snippets/fix-or-configure-git-authentication-in-wsl2): Configure Git authentication in WSL2 and avoid entering credentials every time - [Run Jupyter Notebooks with Python Virtual Environments](https://cloudbytes.dev/snippets/run-jupyter-notebooks-with-python-virtual-environments): Create an isolated Python virtual environment and use it with Jupyter Notebooks - [Mount AWS Credentials on VSCode Devcontainers](https://cloudbytes.dev/snippets/mount-aws-credentials-on-vscode-devcontainers): A guide to install, configure and run selenium in Jupyter Notebook on WSL2 or Ubuntu - [Run selenium in Jupyter Notebook on WSL2 or Ubuntu](https://cloudbytes.dev/snippets/run-selenium-in-jupyter-notebook-on-wsl2-or-ubuntu): A guide to install, configure and run selenium in Jupyter Notebook on WSL2 or Ubuntu - [Running Jupyter Notebook from Terminal](https://cloudbytes.dev/snippets/running-jupyter-notebook-from-terminal): How to install, and run Jupyter Notebook from Terminal - [Make Ubuntu Fullscreen on Windows Hyper-V](https://cloudbytes.dev/snippets/make-ubuntu-fullscreen-on-windows-hyper-v): How to run Ubuntu with full resolution in fullscreen mode on Windows Hyper-V - [Install Ubuntu in a VM on Windows using Hyper-V](https://cloudbytes.dev/snippets/install-ubuntu-in-a-vm-on-windows-using-hyper-v): Step by step guide to install Ubuntu 20.04 in a VM on Windows using Hyper-V - [Enable Hyper-V on Windows 10/11 Home](https://cloudbytes.dev/snippets/enable-hyper-v-on-windows-10-11-home): Step by step guide to enable Hyper-V on Windows 10 Home or Windows 11 Home - [Run Chrome extensions with Python Selenium on AWS Lambda](https://cloudbytes.dev/snippets/run-chrome-extensions-with-python-selenium-on-aws-lambda): A detailed guide to use Selenium and Chrome with extensions on AWS Lambda - [How to install Node.js and NPM on WSL2](https://cloudbytes.dev/snippets/how-to-install-node-js-and-npm-on-wsl2): A short guide to installing Node.js and NPM on WSL2 - [Which Python Implementation you should use (Cpython, PyPy, etc.)?](https://cloudbytes.dev/snippets/which-python-implementation-you-should-use-cpython-pypy-etc): A short introduction to the different Python implementations. - [How to install WSL2 on Windows 10/11](https://cloudbytes.dev/snippets/how-to-install-wsl2-on-windows-10-11): A guide to install WSL2 on Windows 10/11 - [WSL2: Find and Delete Zone.Identifier files](https://cloudbytes.dev/snippets/wsl2-find-and-delete-zone-identifier-files): Code snippet to find and delete Zone.Identifier files that gets auto-generated while copying files to WSL2 - [Configure logging in AWS Lambda to CloudWatch using Python](https://cloudbytes.dev/snippets/configure-logging-in-aws-lambda-to-cloudwatch-using-python): How to log events to CloudWatch during AWS Lambda execution using Python - [Launching Pelican Algolia plugin for Pelican](https://cloudbytes.dev/snippets/launching-pelican-algolia-plugin-for-pelican): Launching Pelican Algolia plugin, an open source software published on PyPi, that can help integrate Algolia Search in your Pelican blog. - [Limit article tags to allowed list in Pelican SSG](https://cloudbytes.dev/snippets/limit-article-tags-to-allowed-list-in-pelican-ssg): How to limit article tags to only an allowed list in Pelican SSG and not end up with too many tags. - [Find and test invalid links and 404 errors using Python & Pytest](https://cloudbytes.dev/snippets/find-and-test-invalid-links-and-404-errors-using-python-pytest): A short guide to scrape your own website, find invalid links, and highlight links that result in 404 errors - [Build CI/CD pipelines using artifacts with GitHub Actions](https://cloudbytes.dev/snippets/build-ci-cd-pipelines-using-artifacts-with-github-actions): Create a CI/CD pipeline using GitHub Actions to build, test, and deploy you website - [Create a Pelican plugin to minify HTML, CSS, and JS](https://cloudbytes.dev/snippets/pelican-plugin-to-minify-html-css-and-js): Write a Pelican plugin to minify HTML, CSS, and JS files without breaking your website - [Firebase Hosting Redirects using Wildcard](https://cloudbytes.dev/snippets/firebase-hosting-redirects-using-wildcard): Configure redirects on Firebase Hosting using wildcards for groups of URLs - [Develop remotely on Raspberry Pi using VSCode Remote SSH](https://cloudbytes.dev/snippets/develop-remotely-on-raspberry-pi-using-vscode-remote-ssh): How to connect and develop remotely on Raspberry PI by SSHing in using VSCode - [Received & return a file from in-memory buffer using FastAPI](https://cloudbytes.dev/snippets/received-return-a-file-from-in-memory-buffer-using-fastapi): How to receive a file to the in-memory buffer and then return the file from buffer using FastAPI without saving it to disk. - [Set the default command in Python Typer CLI](https://cloudbytes.dev/snippets/set-the-default-command-in-python-typer-cli): A short guide to setting a default command using callback when making multiple commands in Python Typer - [Disable the default completion options in Python Typer CLI](https://cloudbytes.dev/snippets/disable-the-default-completion-options-in-python-typer-cli): A short guide to disable the default options such as install-completion and show-completion in Python Typer CLI, a popular CLI building tool - [Get username, hostname and home directory using Python](https://cloudbytes.dev/snippets/get-username-hostname-and-home-directory-using-python): A quick guide to fetching the username, hostname and home directory using Python on both Windows & Linux - [AWS CDK: Building a EventBridge scheduled Lambda that reads and writes to s3](https://cloudbytes.dev/snippets/aws-cdk-building-a-eventbridge-scheduled-lambda-that-reads-and-writes-to-s3): A guide to building a serverless app using EventBridge, Lambda & s3 while introducing how to create, configure, test and deploy a CDK project using Python - [Run Selenium in AWS Lambda for UI testing](https://cloudbytes.dev/snippets/run-selenium-in-aws-lambda-for-ui-testing): A guide about how to run selenium using headless chrome & chromium webdriver to automate UI testing - [Run AWS Lambda using custom docker container](https://cloudbytes.dev/snippets/run-aws-lambda-using-custom-docker-container): Learn how to use a custom docker container to run Lambda functions on AWS. - [Build & Deploy serverless apps on AWS with SAM CLI](https://cloudbytes.dev/snippets/build-deploy-serverless-apps-on-aws-with-sam-cli): Detailed step by step guide on how to use SAM CLI to build serverless apps. - [What is Anaconda for Python?](https://cloudbytes.dev/snippets/what-is-anaconda-for-python): A short introduction to Anaconda for Python, how to configure and use Anaconda. - [Python For Loops, using range vs enumerate](https://cloudbytes.dev/snippets/python-for-loops-using-range-vs-enumerate): How to use python for loops, using range vs enumerate - [How to Install, Check Python Version and Update it](https://cloudbytes.dev/snippets/how-to-install-check-python-version-and-update-it): A simple guide on how to Install Python, how to check Python version installed and upgrade Python to the latest version - [Convert a Pelican Website to PWA using Workbox](https://cloudbytes.dev/snippets/convert-a-pelican-website-to-pwa-using-workbox): A guide to converting a satic website generated by Pelican into a Progressive Web App using Google's Workbox library - [How to use Git and GitHub to contributed to Open Source Projects](https://cloudbytes.dev/snippets/how-to-use-git-and-github-to-contributed-to-open-source-projects): A guide to Git and GitHub basics, and using them correctly to contribute to open source projects on GitHub - [Add a Table of Contents using Markdown in Pelican](https://cloudbytes.dev/snippets/add-a-table-of-contents-using-markdown-in-pelican): A guide to customising Markdown to add table of contents in Python Pelican - [Clean URLs in Pelican Sitemap using Python](https://cloudbytes.dev/snippets/clean-urls-in-pelican-sitemap-using-python): Learn to use Python to remove '.html' extensions and clean URLs in sitemaps generated by Pelican - [Auto Deploy Pelican Websites to Firebase Hosting](https://cloudbytes.dev/snippets/auto-deploy-pelican-websites-to-firebase-hosting): A step by step guide to installing and configuring Pelican and hosting the final blog on Firebase Hosting - [Beginner's guide to installing Pelican in a Container](https://cloudbytes.dev/snippets/beginners-guide-to-installing-pelican-in-a-container): Step by step guide on how to install and configure Pelican in a Docker Container for development for developement os static websites following Jamstack architecture - [Configure Firebase hosting emulator](https://cloudbytes.dev/snippets/configure-firebase-hosting-emulator): Use Firebase hosting emulator to locally test your static website generated by Hugo, Gatsby, Pelican and other SSGs - [Automate deployment of Pelican Website to GitHub Pages](https://cloudbytes.dev/snippets/automate-deployment-of-pelican-website-to-github-pages): A guide to configuring automated Continuous Deployment (CD) of static site generated by Pelican SSG from GitHub repository to GitHub pages using GitHub Actions - [What is Jamstack and why should you be using it?](https://cloudbytes.dev/snippets/what-is-jamstack-and-why-should-you-be-using-it): An introduction to Jamstack concepts and why should you be using it instead of wordpress. - [Use VSCode Devcontainers instead of Python venv](https://cloudbytes.dev/snippets/use-vscode-devcontainers-instead-of-python-venv): VSCode Devcontainers are game changers that makes Python dependency management much easier. - [Configure & Fix Pelican Sitemap Error on Google Search Console](https://cloudbytes.dev/snippets/configure-fix-pelican-sitemap-error-on-google-search-console): A quick guide to correctly configurating sitemaps in Pelican & fixing URL errors thrown up by Google Search Console - [Create a Python virtual environment using venv](https://cloudbytes.dev/snippets/create-a-python-virtual-environment-using-venv): A quick guide to why you need a virtual environment, how to create, activate and manage ## Books (1 posts) - [Build WebAPIs with Python using Flask & FastAPI](https://cloudbytes.dev/books/build-webapis-with-python-using-flask-fastapi): Beginner's guide to building and interacting with APIs using Python Flask and FastAPI ## Policies - [404](https://cloudbytes.dev/404): 404 error - [Privacy Policy](https://cloudbytes.dev/privacy): Privacy policy for cloudbytes.dev - [Terms and Conditions](https://cloudbytes.dev/terms): Term of use for cloudbytes ## Feeds & data - [RSS](https://cloudbytes.dev/rss.xml): All posts as RSS 2.0. - [JSON Feed](https://cloudbytes.dev/feed.json): All posts as JSON Feed 1.1. - [Sitemap](https://cloudbytes.dev/sitemap-index.xml): Site index. - [llms-full.txt](https://cloudbytes.dev/llms-full.txt): Full content corpus for AI ingestion. ## Community - [GitHub](https://github.com/CloudBytesDotDev/CloudBytes.dev): Source code for the site and discussions for post questions. - [YouTube](https://www.youtube.com/@CloudBytesDotDev): Long-form videos that complement the written posts. ## Key facts - CloudBytes/dev is a personal knowledge base for AWS, Python, Linux, and developer tooling, written by Rehan Haider. - All content is open-source and reproducible — every post is built from working code (commands, configs, stacks). - Primary content clusters: AWS CDK in Python, AWS Lambda, S3 / EC2 / VPC, WSL2 + Linux dev environments, Selenium on Lambda, Pelican → Astro migration notes. - The site has no paywall and does not collect personal data beyond standard analytics.