1. runInstance
- 1. with mincount
- 2. with maxcount
- 3. with instance type
- - 1. m1.small = i386
- - 2. m2.large = x86_64
- 4. withImageID
2. startInstance
3. stopInstance
4. terminateInstance
- instance will be visible after terminate approx. 1hour.
5. check status
- DescribeInstance
- - foreach: reservation
- - - foreach: runningInstance
- 1. with mincount
- 2. with maxcount
- 3. with instance type
- - 1. m1.small = i386
- - 2. m2.large = x86_64
- 4. withImageID
2. startInstance
3. stopInstance
4. terminateInstance
- instance will be visible after terminate approx. 1hour.
5. check status
- DescribeInstance
- - foreach: reservation
- - - foreach: runningInstance
- - - - InstanceID.. IP Address... evreything you need is here.
Example Code: Terminate all instances:
public static void ec2test()
{
String instanceID = "";
NameValueCollection appConfig = ConfigurationManager.AppSettings;
AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client(appConfig["AWSAccessKey"],appConfig["AWSSecretKey"]);
// describe existed instance
DescribeInstancesRequest ec2DescribeInstancesRequest = new DescribeInstancesRequest();
try
{
DescribeInstancesResponse ec2DescribeInstancesResponse = ec2.DescribeInstances(ec2DescribeInstancesRequest);
int numOfInstances = ec2DescribeInstancesResponse.DescribeInstancesResult.Reservation.Count;
Console.WriteLine("Num of instance:" + numOfInstances);
List<Reservation> reservations = ec2DescribeInstancesResponse.DescribeInstancesResult.Reservation;
foreach (Reservation reservation in reservations)
{
List<RunningInstance> runningInstances = reservation.RunningInstance;
foreach (RunningInstance runningInstance in runningInstances)
{
instanceID = runningInstance.InstanceId;
Console.WriteLine("Instanceid:" + instanceID);
TerminateInstancesRequest ec2TerminateInstancesRequest = new TerminateInstancesRequest().WithInstanceId(instanceID);
TerminateInstancesResponse ec2TerminateInstancesResponse = ec2.TerminateInstances(ec2TerminateInstancesRequest);
TerminateInstancesResult ec2TerminateInstancesResult = ec2TerminateInstancesResponse.TerminateInstancesResult;
List<InstanceStateChange> instanceStateChanges = ec2TerminateInstancesResult.TerminatingInstance;
foreach (InstanceStateChange instanceStateChange in instanceStateChanges)
{
Console.WriteLine("instanceid:" + instanceStateChange.InstanceId + " Previous State:" + instanceStateChange.PreviousState.Name + " Current State:" + instanceStateChange.CurrentState.Name);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error:" + ex.ToString());
}