cloud-init

Cloud images are operating system templates and every instance starts out as an identical clone of every other instance. It is the user data that gives every cloud instance its personality and cloud-init is the tool that applies user data to your instances automatically.

Cloud-init is the industry standard multi-distribution method for cross-platform cloud instance initialization. It is supported across all major public cloud providers, provisioning systems for private cloud infrastructure, and bare-metal installations.

I originally wrote cloud-init for Ubuntu on EC2 in 2008. Then I designed, oversaw, and co-developed it as it evolved into the de-facto industry standard, adopted by virtually every other Linux vendor. It remains the dominant mechanism for bootstrapping and customizing virtual machines in the cloud, and is used in the official EC2 documentation from Amazon.

The cloud-init package is an open-source application built by Canonical that is used to bootstrap Linux images in a cloud computing environment, such as Amazon EC2.

AWS EC2 official documentation