The CaNerdIan

EC2 Shutdown

#!/usr/bin/perl
use Net::Amazon::EC2;
my $ec2 = Net::Amazon::EC2->new(
AWSAccessKeyId => 'XXXX',
SecretAccessKey => 'XXXX'
);
my $running\\_instances = $ec2->describe\\_instances;
foreach my $reservation (@$running\\_instances) {
foreach my $instance ($reservation->instances\\_set) {
my $instance\\_id = $instance->instance\\_id;
my $result = $ec2->terminate\\_instances(InstanceId => $instance\\_id);
print "terminating" . $instance\\_id . "n";
}
}

Alternate method in bash:

#!/bin/bash
export JAVA\\_HOME=/usr
export EC2\\_HOME=/opt/ec2/tools
export EC2\\_PRIVATE\\_KEY=/root/ec2/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
export EC2\\_CERT=/root/ec2/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
echo "Terminating Origin Server..."
if test -f /root/ec2/origin.iid
then
date >> /root/term.log
/opt/ec2/tools/bin/ec2-terminate-instances `cat /root/ec2/origin.iid` >> /root/term.log
else
echo "Instance ID not found!"
fi

PHP (requires AWS SDK for PHP):

php
error\\_reporting(-1);
header("Content-type: text/html; charset=utf-8");
require\\_once '/usr/share/php/AWSSDKforPHP/sdk.class.php';
define('AWS\\_KEY', 'access key here');
define('AWS\\_SECRET\\_KEY', 'secret key here']);
$startup\\_region = 'us-east-1';
$ec2 = new AmazonEC2();
?

Instance Termination

# Terminate Instances

php
$instances[] = 'i-xxxxxxxx';
$term\\_result = $ec2-terminate\\_instances($instances);
if ($term\\_result->status != "200") {
print "Termination error  
";
print\\_r($term\\_result);
die('ERROR');
print "Instance termination complete. \n";
?>