Deploy Spring Boot and Docker Microservices to AWS using ECS and AWS Fargate

Take your first steps towards cloud with AWS ECS Fargate. Deploy REST APIs and Microservices with Spring Boot and Docker Containers to the cloud.

   Watch Promo

Spring Boot is the No 1 Java Framework to develop REST API and Microservices. AWS (Amazon Web Services) is the No 1 Cloud Service Provider today.

How about learning AWS by deploying Spring Boot Docker Containers to Cloud using ECS Fargate?

This course would be a perfect first step as an introduction to Amazon Web Services - AWS and the Cloud.

In this course, we deploy a variety of Java Spring Boot Microservices to Amazon Web Services using AWS Fargate and ECS - Elastic Container Service.

You will learn the basics of implementing Container Orchestration with ECS (Elastic Container Service) - Cluster, Task Definitions, Tasks, Containers and Services. You will learn about the two launch types of ECS - EC2 and AWS Fargate. In this course, we would focus extensively on AWS Fargate to simplify your Container Orchestration. You will learn to deploy multiple containers in the same ECS task.

You will learn to Build Container Images for your Java Spring Boot Microservice Projects.

You will implement the following features for your Microservices

  • Centralized Configuration Management with AWS Parameter Store
  • Distributed Tracing with AWS X Ray
  • Auto Scaling and Load Balancing with ECS, Elastic Load Balancers and Target Groups
  • Service Mesh using AWS App Mesh. You will learn the basics of AWS App Mesh - Mesh, Virtual Nodes and Virtual Services. You will learn to perform Canary Deployments using AWS AppMesh.
  • Service Discovery with Route 53 Hosted Zones and DNS.
  • Continuous Integration and Continuous Deployment with AWS Code Pipeline

You will learn to debug problems with deploying containers using Service events and AWS CloudWatch logs.

You will learn about automating deployments and creating a continuous delivery pipeline with AWS Code Pipeline. You will learn how to Auto Scale applications based on load as well as deploy multiple instances behind a load balancer using AWS ECS Fargate.

You will be using a number of AWS Services - ECS - Elastic Container Services, AWS Fargate, EC2 - Elastic Compute Cloud, S3, AWS CodePipeLine, AWS CodeBuild, IAM, CloudWatch, ELB, Target Groups, X Ray, AWS Parameter Store, AWS App Mesh and Route 53.

You will be using deploying a variety of projects to Amazon Web Services (AWS). These projects are created with Spring Boot (REST API Framework), Spring (Dependency Management), Maven (dependencies management), Eclipse (Java IDE) and Tomcat Embedded Web Server. We will help you set up each one of these.

What you'll learn

  • You will Learn the Fundamentals of Amazon Web Services from Zero, no previous experience required
  • You will learn to deploy Spring Boot REST API and Microservices to AWS with AWS Fargate and ECS
  • You will learn the basics of implementing Container Orchestration with ECS (Elastic Container Service) - Cluster, Task Definitions, Tasks, Containers and Services
  • You will learn to Build Container Images for your Java Spring Boot Microservice Projects
  • You will learn about the two launch types of ECS - EC2 and AWS Fargate
  • You will learn to debug problems with deploying containers using Service events and AWS CloudWatch logs
  • You will be using a number of AWS Services - ECS - Elastic Container Services, AWS Fargate, EC2 - Elastic Compute Cloud, S3, AWS CodePipeLine, AWS CodeBuild, IAM, CloudWatch, ELB, Target Groups, X Ray, AWS Parameter Store, AWS App Mesh and Route 53
  • You will learn to create a continuous delivery pipeline with AWS Code Pipeline
  • You will learn how to Auto Scale applications based on load as well as deploy multiple instances behind a load balancer using AWS Fargate.
  • You will learn to implement Centralized Configuration Management for your Java Spring Boot Microservices with AWS Parameter Store
  • You will learn to implement Distributed Tracing for Java Spring Boot Microservices with AWS X Ray
  • You will learn the basics of AWS App Mesh - Mesh, Virtual Nodes and Virtual Services. You will learn to perform Canary Deployments for Java Spring Boot Microservices using AWS AppMesh.
  • You will Join 300,000 Learners having AMAZING LEARNING Experiences with in28Minutes

Requirements

  • You have an attitude to learn while having fun :)
  • You have some programming experience with Java, Spring and Spring Boot
  • You have a valid debit or credit card to create a AWS Account
  • AWS Fargate is not in FREE Tier. You are responsible for monitoring the usage of AWS resources to reduce your billing.
  • You DO NOT need to have any experience with AWS (Amazon Web Services)

Step By Step Details

Getting Started with the Course

  • Step 00 - Deploying Spring Boot Microservices with ECS and AWS Fargate - Introduction
  • Step 01 - Deploying Spring Boot Microservices with ECS and AWS Fargate - Getting Started with the Course

Getting Started with AWS

  • Step 01 - Creating an AWS Root Account
  • Step 02 - Creating an IAM User for your AWS Account

Getting Started with ECS and AWS Fargate

  • Step 01 - 10000 Feet Overview of Cloud, AWS, ECS and AWS Fargate
  • Step 02 - Getting Started with AWS Fargate - Deploy First Docker Container to AWS
  • Step 03 - Launch Sample App in Browser
  • Step 04 - Understanding AWS ECS Task Definition - Create first task definition for Hello World API
  • Step 05 - Create an ECS Service for Hello World API
  • Step 06 - Explore ECS Services - Launch Hello World REST API in Browser
  • Step 07 - Its Your Responsibility to Monitor Billing on the Cloud - 5 Recommendations
  • Step 08 - Monitor AWS Billing - Setting Billing Alerts
  • Step 09 - Reduce Bills - Set Service Desired Tasks to 0
  • Step 10 - Launch an AWS Fargate Task Directly
  • Step 11 - Run Batch Programs Using ECS Tasks - Simple Spring Task

Getting Started with ECS with EC2 instances

  • Step 01 - Getting Started with ECS with EC2 instances
  • Step 02 - Create a Cluster for ECS with EC2 instances
  • Step 03 - Create a Service - Introduction to Region and AZ
  • Step 04 - Using Host Network Mode - Create New Task Definition and Service
  • Step 05 - ECS Cluster Management - Scale EC2 Instances
  • Step 06 - Debugging ECS and Fargate Problems using Service Events
  • Step 07 - Debugging Problems - Container Status, Stopped Reason and Cloud Watch Logs
  • Step 08 - Clean up Cluster
  • Step 09 - ECS with EC2 vs AWS Fargate

Introduction to Microservices

  • Step 01 - Introduction to Microservices
  • Step 02 - Microservices - Challenges
  • Step 03 - Advantages of Microservices

Deploying Currency Exchange Microservice with H2 to AWS Fargate

  • Step 01 - Import Microservices Projects into Eclipse
  • Step 02 - Code Review and Running Currency Exchange Microservice on Local
  • Step 03 - Build and Run Docker Container Image on Local for Currency Exchange Microservice
  • Step 04 - Push Currency Exchange Microservice Docker Image to Docker Hub
  • Step 05 - Currency Exchange Microservice with H2 - Create Task Definition and Service
  • Step 06 - Execute Currency Exchange Microservice on AWS
  • Step 07 - Using Task Metadata service to populate environment information
  • Step 08 - Exercise - Build Container Images for Hello World and Spring Task Projects

Deploying Currency Exchange Microservice with MySQL to AWS Fargate

  • Step 00 - Quick Tip - Use Prebuild Container Images from Docker Hub
  • Step 01 - Currency Exchange Microservice with MySQL - Code Review
  • Step 02 - Launch MySQL as a Docker Container in Local
  • Step 03 - Connect Local Currency Exchange Microservice with MySQL
  • Step 04 - Create Currency Exchange Microservice with MySQL Docker Image and Push to Docker Hub
  • Step 05 - Create MySQL Database on AWS using RDS
  • Step 06 - Create Task Definition and Service for Currency Exchange Microservice with MySQL
  • Step 07 - Configure Security Group to all traffic from Microsevice to RDS Database
  • Step 08 - Creating a New Security Group for RDS Database

Deploying Currency Conversion Microservice to AWS Fargate

  • Step 01 - Code Review and Running Currency Conversion Microservice on Local
  • Step 02 - Create Docker Image for Currency Conversion Microservice and Connect to Exchange Microservice using same network
  • Step 03 - Deploy Currency Conversion Microservice to AWS Fargate - Create ECS Task Definition and Service
  • Step 04 - Execute Currency Conversion Microservice on AWS Fargate
  • Step 05 - Running Currency Conversion Microservice and Currency Conversion Microservice in Same Task - Part 1
  • Step 06 - Running Currency Conversion Microservice and Currency Conversion Microservice in Same Task - Part 2

Implement Centralized Configuration Management with AWS Parameter Store

  • Step 01 - Introduction to Centralized Configuration Management with AWS Parameter Store
  • Step 02 - Update ECS Task Definitions to use Centralized Configuration
  • Step 03 - Provide access to Parameter Store for ECS Task Execution Role and Test the REST API
  • Step 04 - Centralized Configuration Management - A Review


Implement Distributed Tracing with AWS X Ray

  • Step 01 - Introduction to Distributed Tracing with AWS X Ray - Code Review
  • Step 02 - Deploy Currency Exchange Microservice with AWS X Ray - Update Task Def and Service
  • Step 03 - Provide access to AWS X Ray for ECS Task Execution Role
  • Step 04 - Currency Conversion Microservice with X Ray - Code Review and Deployment to AWS
  • Step 05 - CCS and CES in X Ray - Service Maps, Traces and Analytics

Implement Auto Scaling and Load Balancing with AWS Fargate

  • Step 01 - Introduction to Auto Scaling and Load Balancing - Create ELB
  • Step 02 - Deploy New Load Balanced Service for Currency Exchange Microservice
  • Step 03 - Testing Currency Exchange Microservice through Load Balancer
  • Step 04 - Deploy New Load Balanced Service for Currency Conversion Microservice
  • Step 05 - Testing Currency Conversion Microservice through Load Balancer
  • Step 06 - Configure Auto Scaling for Currency Exchange Microservice
  • Step 07 - AWS Fargate Auto Scaling in Action - Scale in and Scale out
  • Step 08 - Clean Resources from this section
  • Step 09 - Tracing Request across Microservices using AWS CloudWatch Log Groups


Deploying Service Mesh using AWS App Mesh

  • Step 01 - Introduction to AWS App Mesh
  • Step 02 - Introduction to Service Discovery and Implementing Service Discovery for Currency Exchange Microservice
  • Step 03 - Implementing Service Discovery for Currency Conversion Microservice - Review Hosted Zones and DNS
  • Step 04 - Creating EC2 Instance in VPC for Service Discovery Testing
  • Step 05 - SSH into EC2 Instance and Run Microservices using curl
  • Step 06 - Quick Tip - Format using jq
  • Step 07 - Basics of AWS App Mesh - Mesh, Virtual Nodes and Virtual Services
  • Step 08 - Integrate Microservics with AWS App Mesh - Update ECS Task Definitions and Service
  • Step 09 - Review AWS App Mesh - Cloud Watch Logs and X Ray Tracing
  • Step 10 - App Mesh and X Ray - Zero Microservice Code Change Needed - Deploy Non X Ray Microsevices to AWS Fargate
  • Step 11 - Canary Deployments with AWS AppMesh - Deploy Multiple Version of Microservice - 1
  • Step 12 - Canary Deployments with AWS AppMesh - Deploy Multiple Version of Microservice - 2
  • Step 13 - Clean Up Services and Hosted Zones

Implement CI and CD with AWS Code Pipeline

  • Step 01 - Overview - CI and CD with AWS Code Pipeline - Create ECR Repository
  • Step 02 - Commit Hello World REST API Project to GIT Repository
  • Step 03 - Updating Application Specification for ECS Deployment with Task Definition and Container Name
  • Step 04 - Create Code Pipeline for Hello World REST API
  • Step 05 - Provide Access to ECR to Code Build Role
  • Step 06 - Understanding Code Build Specification - Build Spec
  • Step 07 - Review of AWS Code Pipeline


Your Instructor


in28Minutes
in28Minutes

in28Minutes is the world's leading course provider for Spring Framework with more than 100,000 students pursuing our courses on in28Minutes Platform(https://courses.in28minutes.com), Udemy and YouTube.

Brain child of Ranga Karanam, an Architect with 15 Years of Java programming and design with major banking clients across the world, we started in28Minutes with the aim to create Hands-on Courses with Real World Projects.

We use 80-20 Rule. We discuss 20% things used 80% of time in depth. We touch upon other things briefly equipping you with enough knowledge to find out more on your own.

We love open source and therefore, All our code is open source too and available on Github.


Course Curriculum



Frequently Asked Questions


When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.

This course is closed for enrollment.