# KodeKloud: Beta Courses Hands-On AWS Project: Deploy Your First Crypto App

## Hands-On AWS Project: Deploy Your First Crypto App

### Introduction

- [Introduction](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Introduction/Introduction/page.md): Hands-on course on designing, provisioning, and operating scalable microservices on AWS with Terraform, ECS, ALB, IAM, and observability

### Introduction to Microservices

- [Introduction to Monolithic Architecture](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Introduction-to-Microservices/Introduction-to-Monolithic-Architecture/page.md): Overview of monolithic application architecture, its characteristics, benefits, drawbacks, and why organizations eventually migrate to microservices, illustrated by Airbnb's early Rails monolith.
- [Introduction to MicroService Architecture](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Introduction-to-Microservices/Introduction-to-MicroService-Architecture/page.md): Introduction to microservice architecture contrasting monolithic design, explaining independent services, database-per-service, communication via APIs, scalability, fault isolation, and operational trade offs
- [Benefits and Challenges](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Introduction-to-Microservices/Benefits-and-Challenges/page.md): Overview of microservices benefits and challenges, covering scalability, fault isolation, polyglot development, operational overhead, data consistency tradeoffs, and required tooling and governance
- [Comparison with Monolithic Architecture](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Introduction-to-Microservices/Comparison-with-Monolithic-Architecture/page.md): Comparison of monolithic and microservices architectures, covering scalability, deployment, technology stacks, development speed, fault isolation, complexity, and guidance for choosing the right approach.

### Overview of the project

- [Overview of the Project](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Overview-of-the-project/Overview-of-the-Project/page.md): Hands-on DevOps project teaching design, deployment, and operation of a cloud-native application with CI/CD, IaC, monitoring, security, scaling, and cost optimization
- [Understanding the requirements from developers](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Overview-of-the-project/Understanding-the-requirements-from-developers/page.md): Designing and deploying a scalable, automated AWS-based CI/CD architecture for a crypto coin web app covering hosting, databases, networking, observability, security, and cost optimization.
- [Review of existing code](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Overview-of-the-project/Review-of-existing-code/page.md): Concise review of a Flask microservice project, highlighting app.py routes, repository structure, local testing, Dockerization, and AWS deployment preparations.

### Setting up cloud9 and docker

- [Overview and setup Cloud9](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Setting-up-cloud9-and-docker/Overview-and-setup-Cloud9/page.md): Introduces AWS Cloud9, a browser-hosted IDE on AWS, its features, hosting model, use cases, and comparison with local IDEs.
- [Setup Cloud9 IDE](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Setting-up-cloud9-and-docker/Setup-Cloud9-IDE/page.md): Guide to provisioning an AWS Cloud9 IDE, cloning a CodeCommit repository, inspecting a Flask app, and preparing to containerize it with Docker
- [Work on creating the Dockerfile](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Setting-up-cloud9-and-docker/Work-on-creating-the-Dockerfile/page.md): Creating a Dockerfile to containerize a Flask app, install dependencies, expose port, and run or prepare for production deployment with recommendations.
- [Build and test dockerfile locally inside Cloud9](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Setting-up-cloud9-and-docker/Build-and-test-dockerfile-locally-inside-Cloud9/page.md): Guide to building, running, and testing a Flask Docker image in AWS Cloud9, exposing port, adjusting EC2 security group, and committing Dockerfile to Git.
- [Discuss next step](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Setting-up-cloud9-and-docker/Discuss-next-step/page.md): Guide to transition from local Cloud9 Docker development to automated AWS CI/CD with CodeCommit, CodeBuild, ECR, and deployment options like ECS EKS or EC2

### CodeBuild and ECR

- [Overview of CodeBuild and ECR](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodeBuild-and-ECR/Overview-of-CodeBuild-and-ECR/page.md): Overview of AWS CodeBuild and ECR explaining managed CI builds, Docker image storage, and steps to build and push images with buildspec.yml
- [Setup ECR](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodeBuild-and-ECR/Setup-ECR/page.md): Guides creating and using an AWS Elastic Container Registry repository and steps to authenticate, tag, and push Docker images from local machines or CI pipelines.
- [What is Buildspecyaml file](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodeBuild-and-ECR/What-is-Buildspecyaml-file/page.md): Explains using a buildspec.yml for AWS CodeBuild to build and push Docker images to Amazon ECR, covering phases, env variables, privileged mode, and IAM requirements.
- [Demo Work on Buildspecyaml file Part 01](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodeBuild-and-ECR/Demo-Work-on-Buildspecyaml-file-Part-01/page.md): Guide to creating and committing a buildspec.yml that builds and tags Docker images with CodeBuild and pushes them to Amazon ECR, plus required environment variables and IAM permissions.
- [Setup CodeBuild to Push Docker Image to ECR](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodeBuild-and-ECR/Setup-CodeBuild-to-Push-Docker-Image-to-ECR/page.md): Guide to configuring AWS CodeBuild to build Docker images from a repository and push them to Amazon ECR, including environment, IAM, buildspec and troubleshooting.
- [Demo Work on Buildspecyaml file Part 02](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodeBuild-and-ECR/Demo-Work-on-Buildspecyaml-file-Part-02/page.md): Debugging an AWS CodeBuild failure to authenticate with Amazon ECR by fixing IAM permissions so builds can log in to ECR and push Docker images
- [Test docker image in ECR locally Cloud9](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodeBuild-and-ECR/Test-docker-image-in-ECR-locally-Cloud9/page.md): Verifying and running a Docker image from Amazon ECR locally in AWS Cloud9, covering authentication, pulling, running the container, port mapping, and app validation.
- [Project architecture status](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodeBuild-and-ECR/Project-architecture-status/page.md): Overview of using AWS CodeBuild, CodeCommit, and Amazon ECR to build, tag, push, and validate Docker images using buildspec.yml and EC2 or local testing

### Deploying serivce on to ECS

- [Discuss deployment options](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Deploying-serivce-on-to-ECS/Discuss-deployment-options/page.md): Guide to deploying Docker containers on AWS using ECS, comparing Fargate and EC2 launch options, ECR integration, ALB, and CI/CD deployment flows and best practices
- [Overview of ECS](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Deploying-serivce-on-to-ECS/Overview-of-ECS/page.md): Overview of AWS ECS benefits, features, launch types and integrations, explaining when to use Fargate or EC2 and preparing to create an ECS cluster.
- [Creating of ECS cluster](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Deploying-serivce-on-to-ECS/Creating-of-ECS-cluster/page.md): Guide to creating an Amazon ECS EC2 launch type cluster via the AWS Console, covering CloudFormation provisioning, Auto Scaling, networking, capacity setup, and monitoring.
- [What is Service and Task](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Deploying-serivce-on-to-ECS/What-is-Service-and-Task/page.md): Overview of AWS ECS concepts and how services use task definitions to run, update, and manage tasks and containers within a cluster.
- [Deploy the docker image manually using Console on ECS](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Deploying-serivce-on-to-ECS/Deploy-the-docker-image-manually-using-Console-on-ECS/page.md): Step-by-step guide to deploy a Docker image to AWS ECS Fargate using the console by creating task definitions, container definitions, services, optional Application Load Balancer, and testing the app.

### Task definition, Image tags in production and Load Balancer

- [Automate task definition registration](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Task-definition-Image-tags-in-production-and-Load-Balancer/Automate-task-definition-registration/page.md): Automating registration of Amazon ECS task definitions in CI/CD using CodeBuild to version task-definition.json, push images to ECR, and register new revisions.
- [Role of image tags in production](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Task-definition-Image-tags-in-production-and-Load-Balancer/Role-of-image-tags-in-production/page.md): Explains Docker image tagging best practices for CI/CD, using both human-friendly tags and immutable commit-hash tags with an AWS CodeBuild example for traceability and safe rollbacks.
- [Update the application with latest change and validating image tags](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Task-definition-Image-tags-in-production-and-Load-Balancer/Update-the-application-with-latest-change-and-validating-image-tags/page.md): Demonstrates updating an app UI, running CI/CD to build and push Docker images to ECR, updating ECS service, and tracing deployed image back to the Git commit hash
- [Attaching load Balancer into Services](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Task-definition-Image-tags-in-production-and-Load-Balancer/Attaching-load-Balancer-into-Services/page.md): Guide to attaching an Application Load Balancer to an Amazon ECS service, configuring target groups and listeners, troubleshooting subnet Availability Zone errors, and verifying application access.
- [Attaching load Balancer into Services](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Task-definition-Image-tags-in-production-and-Load-Balancer/Attaching-load-Balancer-into-Services/page.md): Guide to attaching an Application Load Balancer to an Amazon ECS service, configuring target groups and listeners, troubleshooting subnet Availability Zone errors, and verifying application access.

### Rolling deployment and Rollback of deployments

- [Rolling Update on ECS Deployment of the application](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Rolling-deployment-and-Rollback-of-deployments/Rolling-Update-on-ECS-Deployment-of-the-application/page.md): Guide to ECS rolling updates, ALB health checks and connection draining, deployment tuning, failure handling and rollback options
- [Rolling Update on ECS Deployment of the application](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Rolling-deployment-and-Rollback-of-deployments/Rolling-Update-on-ECS-Deployment-of-the-application/page.md): Guide to ECS rolling updates, ALB health checks and connection draining, deployment tuning, failure handling and rollback options
- [Rolling deployment failure](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Rolling-deployment-and-Rollback-of-deployments/Rolling-deployment-failure/page.md): Shows a simulated Amazon ECS rolling deployment failure, explains why ECS does not auto rollback, and outlines mitigations like deployment circuit breaker, health checks, CodeDeploy, and CI/CD safeguards
- [Understanding why manual rollback is failing](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Rolling-deployment-and-Rollback-of-deployments/Understanding-why-manual-rollback-is-failing/page.md): Explains why ECS manual rollbacks fail when task definitions use mutable image tags like latest and how to use immutable tags in pipelines for reliable rollbacks
- [Fixing tagging convention](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Rolling-deployment-and-Rollback-of-deployments/Fixing-tagging-convention/page.md): Describes replacing mutable latest image tags by commit hash tagged Docker images in CodeBuild and updating ECS task definitions for immutable, reproducible ECS deployments.
- [Understanding Rolling Update again](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Rolling-deployment-and-Rollback-of-deployments/Understanding-Rolling-Update-again/page.md): A walkthrough reproducing and troubleshooting a failing AWS ECS rolling update, showing build and deploy steps, root causes, and recommendations like immutable image tags and deployment circuit breaker.
- [Understanding circuit breaker and Automated Rollbacks of ECS Deployment](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Rolling-deployment-and-Rollback-of-deployments/Understanding-circuit-breaker-and-Automated-Rollbacks-of-ECS-Deployment/page.md): Explains Amazon ECS deployment circuit breaker and automated rollback to stop failing rolling updates, prevent endless restarts, and restore previous healthy task revisions.
- [Understanding circuit breaker and Automated Rollbacks of ECS Deployment](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Rolling-deployment-and-Rollback-of-deployments/Understanding-circuit-breaker-and-Automated-Rollbacks-of-ECS-Deployment/page.md): Explains Amazon ECS deployment circuit breaker and automated rollback to stop failing rolling updates, prevent endless restarts, and restore previous healthy task revisions.

### CodePipeline automated deployment

- [Overview of CodePipeline](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodePipeline-automated-deployment/Overview-of-CodePipeline/page.md): Overview of AWS CodePipeline automating CI/CD workflows to build, test, and deploy applications from source repositories to runtime environments like Amazon ECS.
- [Creating a CodePipeline with Source and Build stage](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodePipeline-automated-deployment/Creating-a-CodePipeline-with-Source-and-Build-stage/page.md): Guide to creating an AWS CodePipeline with CodeCommit source and CodeBuild build stages, validating builds, pushing fixes to trigger pipeline, and manually updating ECS service
- [Deploy a new task and service using CodePipeline](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/CodePipeline-automated-deployment/Deploy-a-new-task-and-service-using-CodePipeline/page.md): Guide to add an ECS Deploy stage in CodePipeline, update buildspec to produce imagedefinitions.json, and automate rolling deployments via CodeBuild, ECR, and ECS.

### Monolith to Microservice design

- [Need of Independently Deployable Components](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Need-of-Independently-Deployable-Components/page.md): Explains why and how to migrate a monolithic app to independently deployable services, covering CI/CD changes, scaling benefits, communication patterns, and migration steps.
- [Create AWS RDS instance](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Create-AWS-RDS-instance/page.md): Guide to provisioning and configuring an AWS RDS PostgreSQL instance, initializing a users table, and securing credentials for a login application's database.
- [Run DB initialization script](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Run-DB-initialization-script/page.md): Guide to initialize a PostgreSQL users table with dummy accounts for a login microservice, including cloning the repo, running a helper script, and verifying via DBeaver.
- [Overview of login application code](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Overview-of-login-application-code/page.md): Overview of a Flask login application demonstrating user authentication, database queries, redirects to a product service, and security best practices.
- [Setup CodePipeline for login application](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Setup-CodePipeline-for-login-application/page.md): Guide to set up an AWS CodePipeline and CodeBuild workflow that builds, tags, and pushes a Dockerized Flask login microservice to Amazon ECR for deployment.
- [Setup service on ECS for login application](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Setup-service-on-ECS-for-login-application/page.md): Deploying a Flask login app to AWS ECS using an Application Load Balancer, creating task definitions and services, validating health, and fixing redirect and networking issues.
- [Connecting login microservice with product microservice](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Connecting-login-microservice-with-product-microservice/page.md): Connecting a login microservice to a product microservice by redirecting authenticated users to the product load balancer using environment variables and CI/CD deployment verification
- [Automate service deployment of login microservice via codepipeline](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Automate-service-deployment-of-login-microservice-via-codepipeline/page.md): Automates deploying a login microservice to AWS ECS via CodePipeline, creating imagedefinitions.json and adding an ECS Deploy stage for continuous deployment
- [Continuous deployment of both application](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Continuous-deployment-of-both-application/page.md): Implementing continuous deployment for two microservices using AWS CodeCommit, CodePipeline, CodeBuild, and ECS to automatically build, deploy, and verify UI updates.
- [Comparing initial and final design](https://notes.kodekloud.com/docs/Hands-On-AWS-Project-Deploy-Your-First-Crypto-App/Monolith-to-Microservice-design/Comparing-initial-and-final-design/page.md): Transforming a monolithic crypto app into AWS microservices, comparing initial and final architectures, CI/CD, deployment strategies, and operational best practices
