Skip to content

System Deployment

Chris Mittendorf edited this page Oct 23, 2023 · 2 revisions

System Deployment

Deployment and Hosting

The Database, File Storage, Deployment and Hosting is all provided and maintained by AWS (Amazon Web Services) and is thus all cloud based.

Hosting

Hosting is made available using an EC2 (Elastic Compute Cloud) which keeps the current instance of the system online and runs it to be made available via website on a browser. The instance is a t2.medium which was upgraded from a t2.micro. We needed to upgrade above the free tier instances as the original server was not able to handle the hosting of the website.

Database

The database is an instance of RDS (Relational Database Service), more specifically this instance is an MySQL Community engine database. It is a t3.micro instance and is part of AWS free tier.

File Storage

We have made use of an AWS S3 (Simple Storage Solution) Bucket to store and manage all the storage of files for the system. It connects to the EC2 instance and a user is able to upload, downland and delete stored files through the system interface.

Deployment

As stated above hosting takes place on AWS. A deployment script was set up through GitHub actions to to automatically deploy the system to AWS. The deployment script specifically only triggers on a push to the dev branch or a pull-request into the main branch. The script first sets up Node.js for the frontend, it then installs all the dependencies for the frontend and then builds the frontend. It then sets up JDK 20 for the backend, builds the backend and finally executes the backend. This deployment and installation is made possible through a self hosted runner on our EC2 instance.

Deployment and Domain Model

image