AWS, Cloud Computing

5 Mins Read

A Guide to Deploy LMS using PHP Laravel Framework on AWS Elastic BeanStalk

Introduction

AWS Elastic Beanstalk is the fastest way to get web applications up and running on AWS. It is an orchestration service for deploying applications that orchestrate various AWS services, including EC2, S3, Simple Notification Service, CloudWatch, autoscaling, and Elastic Load Balancers. You can simply upload your application code, and the service automatically handles details such as resource provisioning, load balancing, auto scaling, and monitoring. Elastic Beanstalk is ideal if you have a PHP, Java, Python, Ruby, Node.js, .NET, Go, or Docker web application.

Laravel is an incredibly scalable web application framework that follows the model–view–controller architectural pattern and has got built-in support for fast, distributed cache systems like Redis.

If you’re new to the world of PHP development, Laravel is a great way to get started. However, if you want to deploy your Laravel application on an Elastic Beanstalk environment, it can be tricky. This guide will walk through everything that’s needed to get your PHP applications running on Elastic Beanstalk and configure it to connect to an Amazon Relational Database Service (Amazon RDS) database instance.

Prerequisites

  • Basic knowledge of Elastic Beanstalk
  • Zip file of your LMS PHP laravel application ready.

  • Cloud Migration
  • Devops
  • AIML & IoT
Know More

Steps to Create Elastic BeanStalk Environment & Deploying Application

To create an Elastic Beanstalk environment running PHP, you’ll need to:

Step 1 – Open the ElasticBeanStalk console.

  • Create a new environment.
  • Select ‘Web server environment’ as the environment tier.
  • Provide an Application Name.
  • Select Platform as ‘PHP’ and ‘PHP 8.1’ as the platform branch
  • Click on ‘Upload Your Code > Local file’ under the Application code.
  • Choose a file and select your application file in zipped format.
  • After the file is successfully uploaded, click on ‘Configure More Options’.

Step1

Step1b

Step1c

Step1d

Step1e

Step1f

Step1g

Step 2:

  1. Click on ‘Configure more options’
  2. Edit Database
  3. Provide username and password (lms, lmsuser and lmspassword)
  4. Edit ‘Software’
  5. Scroll down to Environment Properties. Enter the following environment variables:
  • DB_CONNECTION: mysql
  • DB_HOST:
  • DB_DATABASE: ebdb
  • DB_USERNAME: lmsuser
  • DB_PASSWORD: lmspassword

6. Leave the DB_HOST blank for now. After the rds instance is created, we can add this detail later.

Step2

Step2b

Step2c

Step2d

Step2e

Step 3 – Save the details and create the environment.

Step3

Step3b

Step 4 – Wait for the environment creation to get completed which will create

  • EC2 instance.
  • Each platform runs a specific set of software, configuration files, and scripts to support a specific language version, framework, web container, or combination of these.
  • Instance security group
  • Load balancer
  • Auto Scaling group
  • Amazon S3 bucket
  • AWS CloudFormation stack
  • Domain name

Step 5 – From the RDS Console, obtain the database host details, ie, db instance endpoint from ‘Connectivity and Security’

Step5

Step5b

Step 6 – Modify the Elastic Beanstalk environment configuration to include the DB_HOST details using the db instance endpoint obtained in the previous step.

Step 7 – Apply the changes.

Step7

Step7b

Step7c

Step 8 – Access your application using the elasticbeanstalk environment URL. Add public/index.php at the end of the URL. Otherwise, it may result in a 403 error. Alternatively, you can provide that path while configuring the environment itself.

Step8

Step8b

Conclusion

You’re now ready to deploy your Laravel application to Elastic Beanstalk. Remember, if you want to learn more about Laravel and how it works, check out the official documentation of laravel at “Installation – Laravel – The PHP Framework For Web Artisans “.

We learned that deploying your web application is as easy as defining your environment and uploading your code. AWS Elastic BeanStalk will take care of the rest of the infrastructure creation and management.

You’ll probably want a mechanism to manage environments as you continue to build your application and to deploy it without manually producing a .zip file and sending it to the Elastic Beanstalk dashboard. For building, setting up, and deploying apps to Elastic Beanstalk environments via the command line, utilize the Elastic Beanstalk Command Line Interface (EB CLI).

It’s fantastic for development and testing to run an Amazon RDS DB instance within your Elastic Beanstalk environment, however, doing so links the lifespan of your database to your environment. Connecting your Elastic BeanStalk environment to a database that is active outside of your environment is advised.

Get your new hires billable within 1-60 days. Experience our Capability Development Framework today.

  • Cloud Training
  • Customized Training
  • Experiential Learning
Read More

About CloudThat

CloudThat is also the official AWS (Amazon Web Services) Advanced Consulting Partner and Training partner and Microsoft gold partner, helping people develop knowledge of the cloud and help their businesses aim for higher goals using best in industry cloud computing practices and expertise. We are on a mission to build a robust cloud computing ecosystem by disseminating knowledge on technological intricacies within the cloud space. Our blogs, webinars, case studies, and white papers enable all the stakeholders in the cloud computing sphere.

Drop a query if you have any questions regarding Laravel framework and I will get back to you quickly.

To get started, go through our Consultancy page and Managed Services Package that is CloudThat’s offerings.

FAQs

1. What are the advantages of Elastic BeanStalk compared to similar AWS services?

ANS: – Elastic Beanstalk’s main benefits include timesaving server configuration, powerful customization, and a cost-effective price point. It also provides seamless integration with AWS RDS. After the code is uploaded, the AWS Elastic Beanstalk will handle the rest of the activities such as provisioning, load balancing, auto-scaling, and other activities.

2. Who should use AWS Elastic Beanstalk?

ANS: – Those who wish to manage and deploy their apps in the AWS Cloud in a matter of minutes. To get started, you don’t need any prior knowledge of cloud computing. Web applications written in Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker is supported by AWS Elastic Beanstalk.

3. What kinds of applications are supported by AWS Elastic Beanstalk?

ANS: – AWS Elastic Beanstalk supports Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker, and is ideal for web applications

WRITTEN BY Anees A

Share

Comments

    Click to Comment

Get The Most Out Of Us

Our support doesn't end here. We have monthly newsletters, study guides, practice questions, and more to assist you in upgrading your cloud career. Subscribe to get them all!