I know how IP addresses work and I also understand the reasons why there is a natural limit to those addresses, as well as the solution to that problem. Officially, we have ran out of IPv4 addresses quite some time ago, but I can still claim IPv4 addresses from certain service providers with ease. So I am confused as to why we did not factually run out yet?
There are "only" 4.3 billion addresses available and we live in an era of cloud computing and IoT, so I feel there is a huge amount of devices connected, way more than those 4.3 billion, if we also account for huge server farms, etc. Let alone the assumption that half of the population uses a mobile phone, which each occupies one of that addresses, as well as some have multiple (smart) devices, I don't quite understand why I can still occupy a new IPv4 address with ease. Using IPv4 is still encouraged and it even seems like this will not change within the next few years.
For example, in AWS, I have the possibility to allocate an Elastic IP, which is a globally unique IP and each account can do so up to a certain limit. I feel IPv6 is not nearly as prominent and many tools/frameworks from developer perspective do not support IPv6 yet, which leads to a necessity for many systems to still use IPv4. In this example, AWS does not even provide this mechanism for IPv6 yet.
One possible answer that addresses (hehe) my concerns is the fact that at least in business contexts and possibly also IoT use cases, many machines and devices are wired through private networks, which does not block any IP from public usage. Also I am aware that IP addresses are "released" and will be reused by others, but still it boggles my mind how we've not hit the ceiling yet and how IPv6 is not the de facto standard yet. Do I severely overestimate the amount of publicly accessible machines around this globe running simultaneously?