Enabling data persistence on our server
Right now, our application is running a database locally on the EC2 instance. This has a few problems. Firstly, it means that the EC2 is stateful. If we tear down the instance, we will lose all of our data.
Secondly, if we wipe the containers on the instance, we could also lose all of our data. Data vulnerability is not the only issue here. Let's say that our traffic drastically increases, and we need more computing instances to manage it. This can be done by using NGINX as a load balancer between two instances, as shown in the following diagram:
As you can see, the problem here is accessing random data. If user one creates an item, and this request hits the instance on the left, then user one makes a GET request and this hits the instance on the right-hand side, the recently created item would not be present. The user would be accessing random states...