If you want to use vector maps you should also check out Mapbox GL JS. I use their tiles but can use other providers or generate and host your own, which I also do.

I've been making spatial apps for probably 8 years now and moved from Google maps and Leaflet towards vector maps and I don't think I'd ever go back.

https://github.com/mapbox/awesome-vector-tiles/

Particularly now that it's relatively straightforward to bake and serve your own MVT tiles, so you're not tied into the Mapbox service ecosystem if you don't need any of its other features (and you're happy with the scale / performance of your own tile server(s))

If your data set isn't dynamic you don't even need a tile server. You can generate the tiles with tippecanoe [1] and serve them straight out of S3.

When things get too large you can keep them in the mbtile file and serve them out with an express app.

I've done it in a severless environment which scales well but would get crazy expensive for any high use.

[1] https://github.com/mapbox/tippecanoe