Running ZFlow on AWS Elastic Beanstalk

Prerequisites

Below are the prerequisites for running ZFlow on Elastic Beanstalk for Tomcat.

  • RDS MySQL (for MySQL Database)
  • EFS (Elastic File System for mounting a file system to Elastic Beanstalk instances)

Architecture

 

 

Creating AWS Elastic Beanstalk Environment

From your AWS Console, type in Elastic Beanstalk in the search field and select Elastic Beanstalk from the search list.

 

This will take you to the Elastic Beanstalk console

 

Create a new Elastic Beanstalk Environment

 

 

 

Configure the Elastic Beanstalk Environment as shown below

  1. Select “Web server environment”
  2. Give a name for the Application
  3. Use the default environment name (or give a name)
  4. Give a domain name for the elastic beanstalk application (you can use the default)
  5. Provide a description

 

Configure the platform

  1. Select “Managed platform”
  2. Select “Tomcat” for the Platform
  3. Use Tomcat 8.5 with Corretto 11 on Amazon Linux 2 (or Tomcat 9 with Corretto 11 on Amazon Linux 2023)
  4. Select Sample Application
  5. Select “High Availability”

 

  1. Use the existing service and select the default
  2. For EC2 Key Pair, you have the option of leaving it blank or selecting a key pair that you can use (this will allow you to ssh into Elastic Beanstalk instances)
  3. Use the default for EC2 instance profile

 

 

Configure networking, database

You can leave this section empty (uses defaults if nothing is selected)

 

 

Configure instance traffic and scaling

You can use defaults in this section

 

 

 

Use 1 for min instances and 2 for max instances as a start

 

 

 

 

 

 

 

 

Configure updates, monitoring, and logging

 

 

 

 

Submit to launch the Elastic Beanstalk environment

 

It will take a few minutes for the environment to launch

 

You will see the note “Environment successfully launched” when the system is ready

 

You should see the following Sample App page when you select the Domain link of Elastic Beanstalk Environment.

Setting up Elastic File System (EFS)

Type in EFS in the Search Bar and create

 

Create a new File system

 

 

 

 

 

 

 

 

 

 

Establish network connectivity between EFS and Elastic Beanstalk Environment

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Create a database for ZFlow in MySQL RDS

You can skip this section if you are not responsible for Database setup. We recommend reviewing the following instructions from AWS for setting up an RDS MySQL and using it with the Elastic Beanstalk Environment

 

Configure Environment Parameters for Elastic Beanstalk

 

 

Enter the parameters and select Apply as shown below. Let the environment restart with the new parameters

 

 

Uploading ZFlow war file in Elastic Beanstalk

Once the environment parameters are configured, upload the

 

 

 

 

 

 

Configuring admin and DB parameters for ZFlow Install

After deployment, the following screen will come up. Enter appropriate details and submit to set the parameters. The installation script will run upon restarting the app server.

The configuration parameters below are based on the assumption that you have already created the database for ZFlow in the MySQL RDS server and appropriate authorization to the database is given to the database user (MySQL Database Username).

The database server JDBC connection string (MySQL Database Server Address) is along the lines shown below.

rds.amazonaws.com:3306/zflowdatabase

 

 

Restart the app servers from the Elastic Beanstalk console

 

After a successful restart, you should see the following screen. You can log in with the ZFlow admin email and password from the previous step.