30 million people under heat alerts as western US swelters