Missed your second question!
LAX is about 18 miles from the port, up the shoreline, and about 1+ hours out depending on traffic.
Shuttle service may be available from any hotel, and if not, it is averaging ~$30 round-trip.
Long Beach airport is about 12-15 miles away, on the far north-east side of the city of Long Beach.
Shuttle service is just as expensive! However, I understand they have some free or inexpensive public transportation for the actual Long Beach area if you choose to stay in that town.
Either way, you will end up paying for a shuttle back to the airport... I believe that the fare offered by the cruise company is competitive for this, and it might be easier to use them since the time you disembark is rather *liquid* these days...