switch2osm.org already answers a lot of your questions but unfortunately you haven't really explained what you are trying to do.
If you just want to display an OSM map with a custom overlay then you neither need to download any OSM data nor you have to render anything on your own. You can just use existing tiles and create your overlay with the help of Leaflet, OpenLayers or some other library capable of displaying tiles. This is the easiest solution and can be set up within a very short time. However you have to comply with the tile usage policy of the tile provider you are choosing.
If you want to create an OSM map with a custom style, then you can either render your own tiles (which will require some rather good hardware and lots of storage) or choose one of the third-party providers who will handle the tile rendering for your.