AWS SDK Version 3 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Launches the specified number of instances using an AMI for which you have permissions.

You can specify a number of options, or leave the default options. The following rules apply:

You can create a launch template, which is a resource that contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify the launch template instead of specifying the launch parameters.

To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances.

An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging Your Amazon EC2 Resources.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key Pairs in the Amazon Elastic Compute Cloud User Guide.

For troubleshooting, see What To Do If An Instance Immediately Terminates, and Troubleshooting Connecting to Your Instance in the Amazon Elastic Compute Cloud User Guide.


For .NET Core and PCL this operation is only available in asynchronous form. Please refer to RunInstancesAsync.

Namespace: Amazon.EC2
Assembly: AWSSDK.EC2.dll
Version: 3.x.y.z


public virtual RunInstancesResponse RunInstances(
         RunInstancesRequest request
Type: Amazon.EC2.Model.RunInstancesRequest

Container for the necessary parameters to execute the RunInstances service method.

Return Value
The response from the RunInstances service method, as returned by EC2.


This example launches an instance using the specified AMI, instance type, security group, subnet, block device mapping, and tags.

To launch an instance

var response = client.RunInstances(new RunInstancesRequest 
    BlockDeviceMappings = new List {
        new BlockDeviceMapping {
            DeviceName = "/dev/sdh",
            Ebs = new EbsBlockDevice { VolumeSize = 100 }
    ImageId = "ami-abc12345",
    InstanceType = "t2.micro",
    KeyName = "my-key-pair",
    MaxCount = 1,
    MinCount = 1,
    SecurityGroupIds = new List {
    SubnetId = "subnet-6e7f829e",
    TagSpecifications = new List {
        new TagSpecification {
            ResourceType = "instance",
            Tags = new List {
                new Tag {
                    Key = "Purpose",
                    Value = "test"


Version Information

.NET Framework:
Supported in: 4.5, 4.0, 3.5

Portable Class Library:
Supported in: Windows Store Apps
Supported in: Windows Phone 8.1
Supported in: Xamarin Android
Supported in: Xamarin iOS (Unified)
Supported in: Xamarin.Forms

See Also