Skip to content

Latest commit

 

History

History
executable file
·
104 lines (76 loc) · 4.43 KB

ec2-example-creating-an-instance.md

File metadata and controls

executable file
·
104 lines (76 loc) · 4.43 KB

Creating an Amazon EC2 Instance

[JavaScript code example that applies to Node.js execution]

This Node.js code example shows:

  • How to create an Amazon EC2 instance from a public Amazon Machine Image (AMI).

  • How to create and assign tags to the new Amazon EC2 instance.

The Scenario

In this example, you use a Node.js module to create an Amazon EC2 instance and assign both a krey pair and tags to it. The code uses the SDK for JavaScript to create and tag an instance by using these methods of the Amazon EC2 client class:

Prerequisite Tasks

To set up and run this example, first complete these tasks.

Configuring the SDK

Configure the SDK for JavaScript by creating a global configuration object then setting the region for your code.

// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the region 
AWS.config.update({region: 'us-west-2'});

Creating and Tagging an Instance

Create a Node.js module with the file name ec2_createinstances.js. Be sure to configure the SDK as previously shown.

Create an object to pass the parameters for the runInstances method of the AWS.EC2 client class, including the name of the key pair to assign and the ID of the AMI to run. To call the runInstances method, create a promise for invoking an Amazon EC2 service object, passing the parameters. Then handle the response in the promise callback.

The code next adds a Name tag to a new instance, which the Amazon EC2 console recognizes and displays in the Name field of the instance list. You can add up to 50 tags to an instance, all of which can be added in a single call to the createTags method.

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Load credentials and set region from JSON file
AWS.config.loadFromPath('./config.json');

// Create EC2 service object
var ec2 = new AWS.EC2({apiVersion: '2016-11-15'});

// AMI is amzn-ami-2011.09.1.x86_64-ebs
var instanceParams = {
   ImageId: 'ami-10fd7020', 
   InstanceType: 't1.micro',
   KeyName: 'KEY_PAIR_NAME',
   MinCount: 1,
   MaxCount: 1
};

// Create a promise on an EC2 service object
var instancePromise = new AWS.EC2({apiVersion: '2016-11-15'}).runInstances(instanceParams).promise();

// Handle promise's fulfilled/rejected states
instancePromise.then(
  function(data) {
    console.log(data);
    var instanceId = data.Instances[0].InstanceId;
    console.log("Created instance", instanceId);
    // Add tags to the instance
    tagParams = {Resources: [instanceId], Tags: [
       {
          Key: 'Name',
          Value: 'SDK Sample'
       }
    ]};
    // Create a promise on an EC2 service object
    var tagPromise = new AWS.EC2({apiVersion: '2016-11-15'}).createTags(tagParams).promise();
    // Handle promise's fulfilled/rejected states
    tagPromise.then(
      function(data) {
        console.log("Instance tagged");
      }).catch(
        function(err) {
        console.error(err, err.stack);
      });
  }).catch(
    function(err) {
    console.error(err, err.stack);
  });

To run the example, type the following at the command line.

node ec2_createinstances.js

This sample code can be found here on GitHub.