The exact number is extremely difficult to pin down, even when considering canon sources only.
The original order included 1.2 million units:
Two hundred thousand units are ready, with another million well on the way.
Lama Su, Star Wars: Episode II *Attack of the Clones
Wookieepedia notes that the canon reference Star Wars: Absolutely Everything You Need to Know indicates a "unit" refers to a single clone (not a group of them). Thus the original order was for 1.2 million clones.
In The Clone Wars, the Senate approved a bill to order an additional 5 million clones. The bill was opposed by Senator Amidala on the grounds that the Republic could not afford to purchase so many clones (especially with a 25% interest rate) and simultaneously provide social services, so it sounds as if the Republic could not afford much more. Therefore it is unlikely that there were many more clones purchased by the Republic.
That means that the Republic purchased about 6.2 million clones that we know of. It's possible that the Republic purchased more at some other time that we're not told about but, again, that's unlikely since the 5 million clone purchase was opposed for such a strain it posed on the Republic's finances.
For the reasons you point out, this number is extremely low. It's extremely low even without the in-universe reasons you mention: for a real-world comparison, World War II military casualties numbered in the tens of millions. Nonetheless, it's the best that can be determined using canon sources.
Legends sources are conflicting as well, but generally they also indicate numbers in the single millions only (unless a clone "unit" can somehow be considered multiple clones despite a canon reference indicating otherwise). For example, the Guide to the Grand Army of the Republic reference claims that there were only 3 million clones. Wookieepedia has a good article discussing the estimates using these various sources.
Unfortunately, no one in charge of Star Wars continuity has attempted to come up with a reasonable figure (which would be much, much higher than the one we have).