The problem is that Apache wants to bind the port to an address that isn’t yet available.
Try this:
systemctl edit apache2
And add this in the dedicated section:
[Unit]
After=network-online.target
Wants=network-online.target
In context:
### Editing /etc/systemd/system/apache2.service.d/override.conf
### Anything between here and the comment below will become the contents of the drop-in file
[Unit]
After=network-online.target
Wants=network-online.target
### Edits below this comment will be discarded
Save the file and execute this:
systemctl daemon-reload
Once done, reboot the server and check whether apache2 starts automatically.