logo

At Strinosoft, we specialize in cloud-native solutions. In this blog, we're excited to share how we successfully deployed the official website for Pune District Education Association (PDEA) on AWS Elastic Beanstalk, secured it with HTTPS, and configured end-to-end infrastructure using best DevOps practices.


 Project Goal

Deploy and host a scalable and secure Spring Boot application with CI/CD automation and SSL setup.


Tech Stack Used

  • Spring Boot (JAR-based)

  • Elastic Beanstalk

  • Application Load Balancer (ALB)

  • Amazon RDS (MySQL)

  • ACM (SSL Certificates)

  • CodeBuild + CodePipeline

  • Route 53 for DNS

  • S3 for deployment artifacts


 Step-by-Step Execution

1️⃣ Created a Spring Boot JAR Project

We started with a well-structured Spring Boot application using the following setup:

  • application.properties configured to use dynamic environment variables.

  • server.port=5000 (Elastic Beanstalk default doesn’t apply here, we customized it.)

  • MySQL DB properties linked using ${DB_HOST}, ${DB_USERNAME}, etc.


2️⃣ Set Up Elastic Beanstalk for JAR Deployment

  • Created an environment in Elastic Beanstalk with Tomcat (Corretto 17) and changed it to support JAR deployment.

  • Used a custom Procfile to launch the JAR:

    
     

    bash

    CopyEdit

    web: java -jar pdeapune.jar

  • Added environment variables like DB_HOST, AWS_ACCESS_KEY, AWS_BUCKET, etc.


3️⃣ Automated Build with CodeBuild

We wrote a custom buildspec.yml:


 

yaml

CopyEdit

version: 0.2 phases: install: commands: - java -version - mvn -version pre_build: commands: - mvn clean build: commands: - mvn package -DskipTests artifacts: files: - target/pdeapune.jar - Procfile - .ebextensions/**

This enabled seamless JAR packaging and artifact upload to S3.


4️⃣ Database Setup with Amazon RDS

  • Created a MySQL DB instance in Amazon RDS

  • Configured security groups to allow access from Beanstalk instance

  • Used EB environment variables to pass DB connection securely


5️⃣ Load Balancer + Target Group Fix

Initially, we faced 502 Bad Gateway errors. Here's what fixed it:

  • Target group was pointing to wrong port (80/443)

  • We updated it to use port 5000 to match the Spring Boot app

  • Health checks passed and ALB started routing properly ✅


6️⃣ Domain & HTTPS with ACM

  • Requested a free SSL certificate via AWS Certificate Manager

  • Attached it to the HTTPS (443) listener of the Load Balancer

  • Configured Route 53 to point www.pdeapune.org to the ALB

Now the site is securely accessible with HTTPS!


✅ Final Result

 

The entire stack is now:

  • Fully automated via CI/CD

  • Load balanced and scalable

  • Secured with HTTPS

  • Environmentally isolated with best practices


 Lessons Learned

  • Elastic Beanstalk with JAR deployment needs careful port mapping (don’t forget server.port=5000)

  • Load balancer and target group settings can silently break routing if mismatched

  • ACM makes HTTPS easy, but DNS and listener config must align perfectly

  • Logs and eb-engine.log are your best friends when debugging!


 Conclusion

This project is a prime example of how Strinosoft delivers cloud-native, secure, and scalable web applications using the power of AWS. If you’re a school, college, or enterprise looking to modernize your IT infrastructure — we’re here to help.


???? Need help deploying your apps to the cloud?
Visit www.strinosoft.com or contact us at info@strinosoft.com