It does vary a lot by school district. Someone correct me if I say this wrong, but generally in the US, public schools are funded by property taxes from the area right around them. So if you have a wealthy suburb with lots of McMansions, that's a lot of money going to the public school. If you have a working class small town or low-income urban neighborhood, that's NOT a lot of money going to the public school. It seems like things are done differently in other countries, according to some people I've talked to. But I think knowing this idea is key to understanding why schools can vary so much in quality from one part of the country to the other, even in places that are very close to each other.
Anyway, to address the question--to me it seems like there are both not enough, and too many, teachers. Some schools need more teachers--too many kids in one classroom, people pressed into teaching extra classes they're not really qualified for, vacancies that have gone on forever. But there's also a lot of newly-graduated people who want to be teachers who can't get hired. Partly it's because the vacancies are often in places where people don't really want to teach (low-income, low-pay, low-motivation areas) and partly it's because, even though a school needs more teachers, they can't actually afford to hire them.
This is all IME, of course. I have a lot of teachers in my family and among my friends. STEM teachers are more highly sought after and given whatever perks the school can afford. For example, in one school district near me, public school teachers are required to live within the district (which is a Top 10 US city--large and expensive). Except that a friend of mine is allowed to live outside the district in a cheaper neighborhood, because he teaches science at a high school. They couldn't afford to pay him more, but they gave him what they could as an incentive to work there. A lot of teachers I know are moving more towards private schools or other specialty schools with guaranteed funding because they pay better and often have more stable environments with less focus on achieving one set of results, like standardized test scores.