This is more of a theory crafting question/sounding board. I'm a business owner/end-user, but I'm fairly sophisticated in IT. So the facts: I have two locations, about 200 miles apart, both small retail stores (6-10 workstations). The first location has been up and running for over a year, the 2nd location will be coming online in a few months. Location 1 currently has in-house Win Server 2012, which runs our retail point-of-sale software/foxpro database. This software basically tracks all our inventory, purchases, receiving, sales and does full accounting. So basically we can't live without it. Location 2 is a second location license on this particular software, so both stores will/can use the same database/inventory, and it allows in-store transfers.. etc...
So now to my dilemma? HOW TO CONNECT THEM?!?!
I see two options (unless you can think of another):
Option 1:
Physical: I maintain the physical server at a single location, and use a location-location VPN to connect the 2nd location as a branch, using UPS as back-up power, I try to ensure physical server never goes down, or else both stores are non-operational.
Pros: Easier to setup, all servers and deployment is done in our physical control.
Cons: If location 2 loses power, or has server issues, location 2 is affected as well by any down time.
Option 2:
Cloud: Using AWS or some other VPS service, host a virtual Windows server to host the software/database. Have each location VPN to the VPS, and a second location-location VPN so they can share other resources.
Pros: Isolated cloud system should not have failures, and each store can run independently, as long as the VPS doesn't have issues.
Cons: More complicated to setup. Slower?
----
Having never used any cloud vps systems, I'm a little worried about speed. Because everything/every sale/every po issued, every entry made on any workstation must hit the server, is there any issue with speed? The software is pretty dated (they are slowly working on making an SQL version), so basically every workstation runs the app, from the server directly. Will I have any performance issues?
Any other options? Are these the only 2 ways to do this? Are there other pros/cons, obviously, as mine are not very robust!
Thanks!