Here is a more detailed script if you are interested:
// 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 $username@ " . $hostname . "</b></p>"; echo $message;
Pretty much the same as @dleiftah, except that it returns the host name of the new instance after completion.
Suman source share