I'm trying to install the CRM using the following stack:

1. SQL Server (contains CRM database)

2. CRM Server (contains the CRM software, IIS, and ADFS)

3. Domain Controller Server (contains Active Directory, DNS, promoted  to domain controller)

All of the servers will be on the same domain to maintain connectivity and a singular administrator user account. 

The problem is that so far I've only found tutorials online about a static network configuration. This means that every server has to maintain the same IP to maintain connectivity within the domain. This is problematic if you want to introduce any sort of automation or auto-scaling on the server VMs. For example, if the CRM server shuts down for whatever reason, I would like to automatically boot up a new VM with the same settings. The static IP is in conflict with that, mostly because of how AWS handles the networking for the VMs. Static IP addresses are discouraged through lack of easy ways of maintaining those IPs without complex scripting.

What would make this easier is if the IP could be dynamic (won't change until a new/replacement VM is created) and the connectivity between the servers would remain despite that. I would also like some information on how to have multiple CRM servers in the stack for conditional load-balancing (auto-scaling) where if a certain load is present, an additional VM with the CRM server instance gets booted up and begins sharing that load.