Let your boss know as soon as possible. Waiting until your next shift will cause more inconvenience for your boss, as they will be scrambling to cover the shift. And there's no benefit for you in waiting, anyway.
In person or on the phone is preferable for an important communication such as a resignation. You should do it this way if possible. It's less pleasant for you, but learning to be able to do this is a good skill.
Also, I think it's worth mentioning that you acted unprofessionally in officially accepting a job but not really being fully committed to take it. The expectation of employers would be that accepting a position means you actually plan to do it, and have freed yourself from any conflicting obigations--not that you will start working and only then make up your mind. Yeah, I know it's a low-level service job, the employer's commitment to you is minimal, and there is turnover all the time, but still, I don't think this is an acceptable course of action. It's going make a bad impression on the people involved. That may not cost you now at this level, but doing this with a higher level position could be quite detrimental to your career.