US agrees to buy 500m Pfizer vaccine