Hello ODMers! I am working with a new startup to build an image processing pipeline. The imagery is geared towards agriculture and I will be completely honest, I am a Systems / DevOps Engineer and a NodeJS/Javascript Developer, I am not in anyway a Drone pilot (yet) nor do I know a lot about imagery. So, that being said, we’re currently using DroneDeploy to do our image stitching and processing. We know that ODM will do what we need and we have tested WebODM however, now I need to figure out how to scale it. Here are my initial questions:
- Can I load balance WebODM?
We need access to the Tile Map Service that comes with WebODM as we are not in a spot to develop our own Tile Map Service based on the images that NodeODM creates. I do not understand enough about Tile Map Services to write one yet so using the one provided by WebODM to show the imagery using Leaflet is the best option we currently have based on my understanding. However, I do not like having a single server so what I would like to do is have a single point of entry (load balancer) hitting two backend WebODM servers to serve the Tile Maps and what not.
- Can I create the entire environment manually including using an AWS RDS for PostreSQL?
I would like to roll my own environment using the WebODM and NodeODM components but I do not want use Docker. I know the advantages and disadvantages and right now, Docker is not what I want to use. I would like to install NodeODM directly on an AWS EC2 instance as well as WebODM and then use an AWS PostgreSQL RDS for WebODM’s database. If I need to have a shared Redis instance of WebODM, can I use AWS ElastiCache or just spin up a custom Redis cluster?
- Do the WebODM instances and the NodeODM processing instances, need to share storage?
In the diagram provided, I have the WebODM and NodeODM instances all sharing the same AWS EFS storage. I would assume this is required as the WebODM instances would need access to the same imagery and NodeODM would need to process the imagery.
- Can I store the images in AWS S3 and still use the WebODM Tile Map Service?
This would not be a replacement for the shared EFS storage but it would be the final resting place for the imagery after it has been processed. Can all of this be automated? For example, the user uploads the imagery via our web application, the imagery is loaded WebODM using the API and the image processing is kicked off. Once completed, the images are essentially copied to an AWS S3 bucket and removed from the shared EFS storage.
Here’s a diagram that I have put together of what I believe the environment would look like.
I have not been able to find any good diagrams or full on tutorials. I would be more than happy to put one together once I have an environment up and running so that others can do the same, should they want or need to. Any other help is appreciated!
Thank you!!