He cheated....what should I do?

I've been dating my boyfriend for almost six months now. We're both in college, though he's 27 and I'm 20. We knew summer vacation distance would be hard, but I didn't expect this. 
He confessed to me last night that he cheated on me last week, he said he was drunk at a bar and it was with some random girl he'd never met. He apologized profusely and said he'd never felt like a worse person in his life.
Now, ever since summer break started we've been having issues—lots of arguments and a couple of almost-breakups. I love him to death and he's fine when I'm with him. When we're in school together everything is fantastic between us. But I swear to god, vacations and separation just tear him apart. He gets into this weird, emo downward spiral, and I honestly have no idea how to support him when in my eyes he's just being whiny.
I know he's a good guy and I know he's genuinely sorry...but I keep going back and forth on whether or not I'm making the right decision to give him one more chance...I've never been cheated on before, do any of you have advice??