You can certainly run it in a cloud environment, but depending upon how much network traffic, storage and CPU you end up needing it can get expensive quickly. Cost will vary month to month depending upon resources used. Storage is usually the main driver of cost, but network bandwidth can cause nasty billing surprises if/when it spikes.
An alternative is to get a co-located machine in a data center from a company such as OVHCloud, LeaseWeb or similar provider. The advantage of these sorts of servers is that they can provide very high storage density (50+tb) at an affordable price point (a few hundred dollars a month). They generally don't charge for network bandwidth, so cost will be fixed month to month - no surprises. The downside is that you don't get the ease of use and resiliancy benefits of true cloud environments. It's just a bare metal machine, and it'll be your job to set it up, maintain it, and deal with it when something breaks. It's a hassle. On the other hand, the benefits of flat rate billing when you're dealing with multiple organizations, volunteers uploading 2gb TIFFs because they don't know how to scan, etc etc cannot be overstated.
How much storage you need depends upon your users. 500,000 objects is a lot if each object has 40 megs of images or 500megs of video associated with it. Conversely systems with mostly text don't require anywhere near as much storage.