This top section made with Centos 7. GOTCHA! For some reason with my latest install attempts with Centos 7, the User Data output is going to /var/log/messages instead of to /var/log/cloud-init-output.log. See "Centos 9" below. Default login user in the AMI is: centos xfs FS is used. How to extend? AMIs with launch links: https://centos.org/download/aws-images/ Default user 'centos' Disable selinux. Change to SELINUX=disabled in "/etc/selinux/config". yum --enablerepo=extras install epel-release yum -y install yum-plugin-priorities Edit files /etc/yum.repos.d/*Base*.repo and epel.repo to set explicit "enabled=1"s and "priority=N" [base]: 20 [updates]: 10 [extras]: 30 [epel]: enabled=0 yum clean all yum -y update timedatectl set-timezone America/New_York yum -y install ntp Edit /etc/ntp.conf. Disable ^server lines and add: server 169.254.169.123 systemctl start ntpd.service systemctl enable ntpd.service service ntpd status Enable epel in /etc/yum.repos.d/epel.repo yum -y install exim nodejs npm p7zip nuttcp speedtest-cli Disable epel in /etc/yum.repos.d/epel.repo yum remove postfix # Locale already set to US UTF_8 by AMI # No aws CLI installed # TODO: Determine if this is AWS CLI v2: yum -y install awscli # When edit /etc/hosts, leave the "localhost" lines as the are and append the other 2. yum -y install... git + everything in ~/ec2/*bash with these modifications: Unavailable in epel: pkgfile expac Already installed: cronie man-db dmidecode and from above: exim nodejs npm p7zip cronie is already conifigured and running (the job is labeled "crond" instead of "cronie"). 'nc' instead of 'netcat' 'mailx' instead of 's-nail' 'java-11-openjdk-devel' instead of 'jdk11-openjdk' 'bind-utils' instead of 'bind' yum install -y https://s3..amazonaws.com/amazon-ssm-/latest/linux_amd64/amazon-ssm-agent.rpm systemctl status amazon-ssm-agent ============================================ Centos 9 Default login user in the AMI is: ec2-user Nicely, repos files now explicitly always state enabled=x for every repository. By default only 2 repo files for centos and centos-addons, and they enable only these reposes: baseos appstream extras-common crb repository is for C and C++ dev and packaging frameworks like meson, dejagnu, doxygen.