bastante nuevo con aws sdk, buscando comenzar. He instalado el sdk y todo, pero ¿cómo empiezo las instancias ec2 usando php sdk? Algunas muestras de código realmente serían útiles.cómo iniciar y detener instancias de ec2 utilizando php aws sdk
6
A
Respuesta
8
Aquí es un ejemplo básico de una máquina a partir de un IAM definido:
$image_id = 'ami-3d4ff254'; //Ubuntu 12.04
$min = 1; //the minimum number of instances to start
$max = 1; //the maximum number of instances to start
$options = array(
'SecurityGroupId' => 'default', //replace with your security group id
'InstanceType' => 't1.micro',
'KeyName' => 'keypair', //the name of your keypair for auth
'InstanceInitiatedShutdownBehavior' => 'terminate' //terminate on shutdown
);
require_once('AWSSDKforPHP/sdk.class.php');
$ec2 = new AmazonEC2();
$response = $ec2->run_instances($image_id, $min, $max, $options);
if(!$response->isOK()){
echo "Start failed\n";
}
Esto es suponiendo que tenga su configuración credenciales AWS correctamente ... Con suerte esto se le apunta en la dirección correcta ...
3
Aquí es un script más detallada si está interesado:
// Sleep time to allow EC2 instance to start up
$sleeptime = 15;
$username = "ec2-user";
// For AWS PHP SDK
putenv('HOME=/home/ec2-user/');
require_once 'AWSSDKforPHP/sdk.class.php';
// Get data from HTTP POST
$ami = $_POST['amis'];
$instancetype = $_POST['instancetype'];
$keyname = $_POST['key'];
$securitygroup = $_POST['securitygroups'];
// Instantiate the AmazonEC2 class
$ec2 = new AmazonEC2();
// Boot an instance of the image
$response = $ec2->run_instances($ami, 1, 1, array(
'KeyName' => $keyname,
'InstanceType' => $instancetype,
'SecurityGroupId' => $securitygroup,
));
if (!($response->isOK())) {
echo "<p class='error'>ERROR! Could not create new instance!</p>";
return;
}
$instance = $response->body->instancesSet->item->instanceId;
$message = "<p>Your instance has been successfully created.</p>";
$message .= ("<p>Instance ID is: <b>$instance</b></p>");
// Give instance some time to start up
sleep ($sleeptime);
// Get the hostname from a call to the DescribeImages operation.
$response = $ec2->describe_instances(array(
'Filter' => array(
array('Name' => 'instance-id', 'Value' => "$instance"),
)
));
if (!($response->isOK())) {
echo "<p class='error'>ERROR! Could not retrieve hostname for instance!</p>";
return;
}
$hostname = $response->body->reservationSet->item->instancesSet->item->dnsName;
// Output the message
$message .= "<p>Your instance hostname is: <b>$hostname</b></p>";
$message .= "<p>You can connect to your instance using this command:<br>" .
"<b>ssh -i $keyname.pem [email protected]" . $hostname . "</b></p>";
echo $message;
más o menos lo mismo que @ de dleiftah, excepto que emite el nombre de host del nuevo en postura al finalizar.
Cuestiones relacionadas
- 1. Cómo iniciar y detener una instancia de Amazon EC2 mediante programación en java
- 2. ¿Cómo degradar un AWS EC2?
- 3. Necesito ayuda para duplicar instancias de Amazon AWS EC2
- 4. Cómo guardar archivos multimedia en AWS con varias instancias EC2 en AWS
- 5. Iniciar y detener un temporizador PHP
- 6. ¿Cómo iniciar/detener un cronjob usando PHP?
- 7. aws sdk php para listar carpetas s3
- 8. No se puede iniciar sesión en EC2 (AWS) con Putty
- 9. AWS EC2 FTP/HTML
- 10. Clonación de instancias EC2
- 11. EC2/AWS, Jenkins, Git, SSH
- 12. Amazon AWS Ec2 + Elastic IP
- 13. Cargar archivo externo al segmento AWS S3 con PHP SDK
- 14. Solución para cambios de ip local de instancias de AWS EC2
- 15. ¿cómo iniciar/detener servicios utilizando comando net stop en C#
- 16. Amazon EC2 Iniciar sesión raíz
- 17. EC2: tomar una instantánea de EBS, guardar en S3 y luego iniciar instancias desde S3
- 18. cómo nombrar un volumen EC2 EBS en la consola AWS?
- 19. Impacto de los identificadores de cuenta AWS
- 20. JetS3t vs AWS Java SDK
- 21. ¿Cómo actualizo varias instancias de EC2 con carga equilibrada?
- 22. ¿Cómo se usa AWS SDK para iOS?
- 23. Iniciar y detener IIS Express mediante programación
- 24. Apagado automático e Iniciar la instancia de Amazon EC2
- 25. Iniciar y detener subprocesos de ruby
- 26. ¿Las instancias reservadas en AWS EC2 tienen un mejor rendimiento que las instancias puntuales o bajo demanda?
- 27. ¿Qué gema es mejor para trabajar con AWS: aws-sdk o niebla?
- 28. Ruby AWS - Generar mediante programación lista de tipos de instancias de AWS disponibles
- 29. ¿Cómo iniciar/detener Runnable/Handler?
- 30. Capistrano Deploy - Net :: SSH :: AuthenticationFailed - AWS EC2
Gracias por este útil código. ¿Es posible iniciar una instancia existente? Parece que no puedo encontrar esta información. –
@SSHEste try startInstances –
En realidad es "start_instances" http://docs.aws.amazon.com/AWSSDKforPHP/latest/#m=AmazonEC2/start_instances –