The Old Town is small enough to walk end to end in fifteen minutes. The new town and Harmanite beach are a slightly longer walk from the Old Town — about twenty minutes if you take the cliff path or the seafront promenade — and a short cab ride otherwise.
You do not need a car in Sozopol itself. If you have one, parking inside the Old Town is restricted and you will end up using one of the paid lots at the entrance. A car is useful for day trips along the coast or inland to Strandzha National Park.