/deploy-spring-boot-aws-eb

Deploying Spring Boot Apps to AWS using Elastic Beanstalk

Primary LanguageJava

Deploy Spring Boot Applications to AWS using Elastic Beanstalk

Image

Take your first steps towards cloud with AWS Elastic Beanstalk. Deploy REST APIs, Full Stack Applications, Web Applications and Containers to the cloud.

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 Applications to Cloud using Elastic Beanstalk?

Getting Started

Installation Guides

Required Tools

  • Node v8+ for npm
  • Visual Studio Code - Latest Version
  • Java 8+
  • Eclipse - Oxygen+ - (Embedded Maven From Eclipse)
  • Git
  • Docker
  • ELB CLI

Installing Guides

Troubleshooting Installations

Course Overview

In this course, we deploy a variety of Spring Boot Applications to the Cloud:

  • REST APIs - Hello World and Todo - Jar
  • Todo Web Application War
  • Full Stack Application with React and Spring Boot
  • Single Container with REST API
  • Multi Container with Todo REST API talking to MySQL

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

You will learn about automating deployments with Elastic Beanstalk CLI 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 Elastic Beanstalk.

You will be using a number of AWS Services - EC2, S3, AWS CodePipeLine, AWS CodeBuild, SQS, IAM, CloudWatch.

You will be using deploying a variety of projects to Amazon Web Services (AWS). These projects are created with React (Frontend Framework), Spring Boot (REST API Framework), Spring (Dependency Management), Spring Security (Authentication and Authorization - Basic and JWT), BootStrap (Styling Pages), Maven (dependencies management), Node (npm), Visual Studio Code (TypeScript IDE), 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 to AWS with AWS Elastic Beanstalk
  • You will learn to deploy Java, Spring Boot Full Stack Applications to AWS with AWS Elastic Beanstalk and S3
  • You will be using a number of AWS Services - EC2, S3, AWS CodePipeLine, AWS CodeBuild, SQS, IAM, CloudWatch.
  • You will learn to deploy containerized Java Spring Boot applications to AWS
  • 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 Elastic Beanstalk.
  • You will Join 250,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
  • 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 Applications with AWS Elastic Beanstalk - Introduction
  • Step 01 - 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 AWS Elastic Beanstalk

  • Step 01 - 10000 Feet Overview of Cloud, AWS and Elastic Beanstalk
  • Step 02 - Getting started with AWS Elastic Beanstalk - Creating First Application and Environment
  • Step 03 - Quick Exploration of AWS Elastic Beanstalk
  • Step 04 - Quick Introduction to AWS Regions
  • Step 05 - AWS Resources created by Elastic Beanstalk - An Overview
  • Step 06 - Its Your Responsibility to Monitor Billing on the Cloud - 5 Recommendations
  • Step 07 - Monitor AWS Billing - Setting Billing Alerts

Deploying Java Spring Boot Hello World REST API to AWS Elastic Beanstalk

  • Step 01 - Importing Seven Spring Boot Projects from Github
  • Step 02 - Quick Tip - Use Artifacts from build artifacts folder
  • Step 03 - Running 01 Spring Boot Hello World Application in Local
  • Step 04 - Building jar for 01 Spring Boot Hello World Application
  • Step 05 - Deploy 01 Spring Boot Hello World Application to AWS Elastic Beanstalk

Deploying Java Spring Boot Todo REST API to AWS Elastic Beanstalk

  • Step 01 - Setting up 02 Spring Boot Todo REST API in Local
  • Step 02 - Testing 02 Spring Boot Todo REST API in Local
  • Step 03 - Build and Deploy 02 Spring Boot Todo REST API in AWS Elastic Beanstalk
  • Step 04 - Exploring AWS Elastic Beanstalk Application Versions
  • Step 05 - Exploring Termination of AWS Elastic Beanstalk Application Environments
  • Step 06 - Exploring Logs from AWS Elastic Beanstalk Application Java JAR Environments

Deploying Java Spring Boot H2 Web App to AWS Elastic Beanstalk

  • Step 01 - Running 03 Spring Boot H2 Web App on Local
  • Step 02 - Deploying 03 Spring Boot H2 Web App WAR to AWS Elastic Beanstalk
  • Step 03 - Testing 03 Spring Boot H2 Web App AWS Deployment
  • Step 04 - Exploring AWS Environment logs of 03 Spring Boot H2 Web App

Deploying Java Spring Boot Web App talking to MySQL with AWS Elastic Beanstalk and AWS RDS

  • Step 01 - Code Review of 04 Spring Boot MySQL Web App - Environment Variables
  • Step 02 - Running MySQL as Docker Container on Local
  • Step 03 - Connect 04 Spring Boot MySQL Web App to MySQL on Local
  • Step 04 - Deploy 04 Spring Boot MySQL Web App to AWS Elastic Beanstalk
  • Step 05 - Testing 04 Spring Boot MySQL Web App Deployment on AWS Elastic Beanstalk
  • Step 06 - Exploring AWS Relational Database Service - RDS
  • Step 07 - Exploring AWS - Understanding Security Groups
  • Step 08 - Creating AWS RDS Database outside AWS Elastic Beanstalk
  • Step 09 - Setting up 04 Spring Boot MySQL Web App to connect to RDS - Environment Variables and Security Groups
  • Step 10 - Creating new AWS Security Group for AWS Elastic Beanstalk Application
  • Step 11 - Exploring AWS Elastic Beanstalk Save Environment Configuration Feature

Deploying Java Full Stack Spring Boot React App with AWS Elastic Beanstalk and AWS S3

  • Step 01 - Exploring 05 Java Full Stack Spring Boot React App
  • Step 02 - Running React Frontend in Local
  • Step 03 - Deploying Java REST API Backend to AWS Elastic Beanstalk
  • Step 04 - Building React Frontend Code for AWS Deployment
  • Step 05 - Quick Introduction to AWS Simple Storage Service - S3
  • Step 06 - Deploying React Frontend to AWS S3 Static Website

Deploying Containerized Java Applications with AWS Elastic Beanstalk

  • Step 01 - Code Review for 06 Single Container Java Spring Boot REST API
  • Step 02 - Creating and Running Local Docker Image for 06 Java Spring Boot REST API
  • Step 03 - Pushing 06 Single Container Java Spring Boot REST API Docker Image to Docker Hub
  • Step 04 - Deploying 06 Single Container Java Spring Boot REST API Image to AWS Beanstalk
  • Step 05 - Running 07 Multi Container Java Spring Boot REST API with MySQL on Local
  • Step 06 - Deploying 07 Multi Container Java Spring Boot REST API with MySQL to AWS Beanstalk
  • Step 07 - Testing 07 Multi Container Java Spring Boot REST API with MySQL on AWS - Security Groups

AWS Elastic Beanstalk - CLI, Blue Green Deployments and Worker Apps

  • Step 01 - Introduction to AWS Elastic Beanstalk Command Line Interface EB CLI
  • Step 02 - Exploring AWS Elastic Beanstalk Command Line Interface EB CLI - Commands
  • Step 03 - Exploring AWS Elastic Beanstalk Blue Green Deployments
  • Step 04 - Creating and Deploying Java Worker App to AWS Elastic Beanstalk
  • Step 05 - Testing Java Worker App on AWS Elastic Beanstalk using SQS - Simple Queing Service

AWS Elastic Beanstalk - Creating Load Balanced Auto Scaling Environments

  • Step 01 - Creating Load Balanced Auto Scaling Environments with AWS Elastic Beanstalk
  • Step 02 - Understand Magic of AWS Elastic Beanstalk - AZ, ELB, ASG and CloudWatch Alarms
  • Step 03 - Playing with AWS Elastic Beanstalk Auto Scaling Features
  • Step 04 - Playing with AWS Elastic Beanstalk Rolling Deployment Options - 1
  • Step 05 - Playing with AWS Elastic Beanstalk Rolling Deployment Options - 2

Continuous Delivery for Java Spring Boot Applications with AWS CodePipeline and AWS CodeBuild

  • Step 01 - Getting Started with AWS CodePipeline and AWS CodeBuild
  • Step 02 - Creating Github Repo and Commit Spring Boot Java Project
  • Step 03 - Configuring AWS CodeBuild and AWS CodePipeline
  • Step 04 - Creating AWS CodeBuild Build Specification
  • Step 05 - Testing Continuous Deployment with AWS CodePipeline

Diagrams

graph architecture {

node[style=filled,color="#59C8DE"]
//node [style=filled,color="#D14D28", fontcolor=white];
rankdir = TB;
node[shape=record]

IAM -- Console
Console -- UserID
Console -- Password
IAM -- Application
Application -- AccessKeyID
Application -- SecretAccessKey

IAM[label=<IAM User>]
AccessKeyID[label=<Access Key Id>]
UserID[label=<User Id>]
SecretAccessKey[label=<Secret Access Key>]
Console[label=<Management Console>]
Application[label=<APIs>]
}


graph architecture {

node[style=filled,color="#59C8DE"]
//node [style=filled,color="#D14D28", fontcolor=white];
rankdir = TB;
node[shape=record]

Users -- RootUser
Users -- IAM

RootUser[label=<Root User>]
IAM[label=<IAM User>]

}



graph architecture {

node[style=filled,color="#59C8DE"]
//node [style=filled,color="#D14D28", fontcolor=white];
rankdir = TB
node[shape=record, width=2]
edge [width=0]
graph [pad=".75", ranksep="0.05", nodesep="0.25"];

Applications -- Software [style=invis]
Software -- OS [style=invis]
OS -- Hardware [style=invis]

}


graph architecture {

node[style=filled,color="#59C8DE"]
//node [style=filled,color="#D14D28", fontcolor=white];
rankdir = TB
node[shape=record, width=3]

Containers, LocalImages [height=1]

DockerClient -- Daemon
Daemon -- Containers 
Daemon -- LocalImages
Daemon -- ImageRegistry

DockerClient[label=<Docker Client>]
ImageRegistry[label=<Image Registry <BR /><FONT POINT-SIZE="10">nginx<BR />mysql<BR />eureka<BR />your-app<BR /><BR /></FONT>>];
Daemon[label=<Docker Daemon>]


}


graph architecture {

node[style=filled,color="#59C8DE"]
//node [style=filled,color="#D14D28", fontcolor=white];
rankdir = TB
node[shape=record, width=2]
Hypervisor,HostOS, Hardware[shape=record, width=6.5, style=filled,color="#D14D28", fontcolor=white]
edge [width=0]
graph [pad=".75", ranksep="0.05", nodesep="0.25"];

Application1 -- Software1 [style=invis]
Application2 -- Software2 [style=invis]
Application3 -- Software3 [style=invis]

Software1 -- GuestOS1 [style=invis]
Software2 -- GuestOS2 [style=invis]
Software3 -- GuestOS3 [style=invis]
GuestOS1 -- Hypervisor [style=invis]
GuestOS2 -- Hypervisor [style=invis]
GuestOS3 -- Hypervisor [style=invis]
Hypervisor -- HostOS [style=invis]
HostOS -- Hardware [style=invis]

}


graph architecture {

node[style=filled,color="#59C8DE"]
//node [style=filled,color="#D14D28", fontcolor=white];
rankdir = TB
node[shape=record, width=2]
HostOS, CloudInfrastructure, DockerEngine[shape=record, width=6.5, style=filled,color="#D14D28", fontcolor=white]
edge [width=0]
graph [pad=".75", ranksep="0.05", nodesep="0.25"];
Container1,Container2,Container3[height=2]

Container1 -- DockerEngine [style=invis]
Container2 -- DockerEngine [style=invis]
Container3 -- DockerEngine [style=invis]
DockerEngine -- HostOS [style=invis]
HostOS -- CloudInfrastructure [style=invis]

}

Troubleshooting

Youtube Playlists - 500+ Videos

Click here - 30+ Playlists with 500+ Videos on Spring, Spring Boot, REST, Microservices and the Cloud

Keep Learning in28Minutes

in28Minutes is creating amazing solutions for you to learn Spring Boot, Full Stack and the Cloud - Docker, Kubernetes, AWS, React, Angular etc. - Check out all our courses here