If you are referring to Royal Caribbean, their rates are $36 per person, one way. Yes, you must book it in advance, either on board or before you leave for your cruise. Check your planner to see when the latest time you can book the shuttle is.
As far as car rentals, I can't help you there. I would think most major car rental companies at their facilities near Port Canaveral would have a free shuttle service if you call them in advance.
2007 - Majesty of the Seas (Bahamas)
2009 - Enchantment of the Seas (Western Caribbean)
2010 - Freedom of the Seas (Western Caribbean)
2013 - Golden Princess (Alaska, roundtrip from Seattle)