A spring boot application is a Java-based web application that is built using the Spring Boot framework. Spring Boot is a project designed to simplify the development and deployment of production-ready Java applications.
Note : If you already have a spring boot application ,you can skip these steps.
Step 1 : Go to spring initializr to quickly bootstrap a simple spring boot web application.
Please note that I have included only one dependency, which is Spring Web, as you can see from the screenshot above.After filling all details and selecting web dependency, click on Generate or ctrl + Enter .The zipped project will be downloaded in your system.
Step 2 : Unzip the downloaded project and import it in your IDE. I’ll use VS Code for it.
Step 3: Adding a RestController to test our project.
Go to src > main > com > example > demo
src > main > com > example > demoNote: You may have different names after com . If different project and package names are specified .
Now create a new file named TestController.java beside DemoApplication.java file.
We will create a basic controller with minimal code and endpoint to “/.”
Note : The load balancer for Elastic Beanstalk by default utilizes path “/” for health checks. Your application will keep failing health checks and display Severe status in the dashboard if that path is not defined in your controller. Either include a “/” endpoint in your rest controller code, or later change the load balancer setting to utilize an alternate path.
Step 4: Test the Application locally .Just click on Run Java Button on top right on the VS Code.Now , go to browser and open localhost:8080 . It will show like
So, our application is running properly.
Step 5: Prepare the final Jar file
Open the terminal and type (maven) mvn package to build a jar file
After successful execution it will show like this
Once your build is successful, you will find the jar file in target folder. Copy the jar file and keep it in your system safely.
There are multiple ways to deploy Spring Boot application on AWS. In this example, we will deploy a Spring Boot application on AWS Elastic Beanstalk, which is a P latform as a Service (PaaS) offering that simplifies the deployment and scaling of web applications. Elastic Beanstalk supports Java applications, making it a suitable choice for Spring Boot.
Step 1: Open AWS Console and Create and Elastic BeanStalk Application
An application is a top-level container in Elastic Beanstalk that contains one or more application environments .So, let’s create an application.Click on Create Application
Provide Application name and Application Tags(Optional).
Step 2: Scroll Down and Provide the below information :
Step 3: In Application Code , Select upload your Code :Give a Version Label, and select Local File and select the jar file saved earlier.
and click on NEXT .
Step 4: Configure Service Access.Select existing service role as aws-elasticbeanstalk-service-role
Select your EC2 key pair and EC2 instance profile to securely log in to your EC2 instances.
Now Click on Skip to Review ,
Step 5: Adding Environment Variable
Make Sure to add SERVER_PORT and JAVA_HOME values as
SERVER_PORT 5000and java_home variable as,
JAVA_HOME /ur/lib/jav/javaafter setting the environment variables , it will look like
Now Click On Submit.
Step 6: As soon as you click Submit . Elastic Beanstalk starts setting up your application environment. It will take few minutes , After completion the dashboard will look like this
Upon clicking on the link under domain ,we will be directed to our deployed app,
Our Spring Boot Application is Deployed on AWS Elastic Beanstalk successfully.
Spring Boot is a Java framework that makes it easier to build and deploy web applications. Use it to simplify development and save time on configuration tasks.
To deploy on AWS Elastic Beanstalk, create an app, upload your code, configure settings, and Elastic Beanstalk handles the rest. Follow the provided steps in the article.
Elastic Beanstalk simplifies hosting by handling infrastructure, scaling, and more. It’s easy to use, and AWS services integrate well for added functionality and scalability.