to run a domain server on windows you must run a windows dns server, however it is not strictly required to be on the same server as long as it is linked up to the AD server so the AD server can make the neccesary updates to manage your domain
DHCP again is not critical if you statically assign IP's to each machine or if you use say your router to assign dhcp, as long as they have the correct DNS settings to allow your client machines to correctly connect to the server resources in the router it should just work correctly, moving to the router as default will improve your redundancy from the server failing so i'd recommend doing anyway
if your cloud server is running as a slave DC, then it can also run as a slave dns server too without issue, just make sure your dhcp is setup correctly to handle it, you may however want to setup a vpn tunnel between the cloudserver and your local network in order to secure the transmission of data across that channel
but if your not sure its probably simpler and safer for you to leave the dhcp and dns services installed on your AD server