More IP address than any subnet can possibly use.
The number of hosts per net, for address planning purposes, does not matter on IPv6. What actually matters is number of /64 subnets.
Say the local site has 2001:db8:835a::/48
and a server net is 2001:db8:835a:b959::/64
out of that. This subnet is the atom of address planning. Lower 64 bits make up the interface half of the IP address, and can be anything. Examples: 2001:db8:835a:b959::1
if you want to omit a lot of zeros, 2001:db8:835a:b959:dd19:6250:b4e:fea6
for using randomly auto assigned. Assuming properly routed subnets, the entire /64 is available to use. Less that you care about how many there are, but more you have 64 bits to play with for address generation.
When you need another VLAN or security zone or whatever, get a different /64 by changing b959
.
When the prefix is allocated from global unicast space, the addresses are "public" and can participate in end to end over the internet. As always, this can be prevented by firewalls. Say host 2001:db8:835a:b959::1
has a default router fe80::44f7:8bff:fe46:7816
and is allowed internet access. That 1 address is the source address of the packet. No NAT required.
Those host addresses also work fine as for LAN communications. In much the same way, except the specific destination network is known, so it doesn't go out an internet interface.