Чтобы придерживаться того, что вы уже делаете, вы можете запустить CLI AWS из своего скрипта userdata:
"UserData": {
"Fn::Base64": {
"Fn::Join": [
"\n",
[
"#!/bin/bash",
"yum update -y",
"yum install -y httpd24 php56",
"service httpd start",
"chkconfig httpd on",
"groupadd DMO",
"usermod -a -G DMO ec2-user",
"chgrp -R DMO /var/www",
"chmod 2775 /var/www",
"aws s3 cp s3://MYBUCKET/MYFILE.zip /tmp",
"unzip -d /var/www /tmp/MYFILE.zip",
"rm /tmp/MYFILE.zip",
"find /var/www -type d -exec chmod 2775 {} +",
"find /var/www -type f -exec chmod 0664 {} +"
]
]
}
}
Чтобы сделать это, ваш профиль экземпляра EC2 должен предоставить разрешение на читать файл с S3.
Альтернативой является использование AWS :: CloudFormation :: Init : это предопределенный ключ метаданных, который вы можете присоединить к EC2::Instance
или * Ресурс 1009 *, который позволяет настраивать пакеты, службы и отдельные файлы (включая получение и разархивирование файла из S3).
Здесь есть учебное пособие