Cloud-init contains utilities for early initialization of cloud instances. It enables automatic configuration of cloud instances as it boots into the cloud, turning it from a generic images into a configured server in a few seconds, quickly and easily.
Cloud-config files are special scripts designed to be run by the cloud-init process. These are generally used for initial configuration on the very first boot of a server.