

AWS SDK for JavaScript v2 はサポート終了となりました。[AWS SDK for JavaScript v3](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/) に移行することをお勧めします。その他の詳細、移行方法については、こちらの[発表内容](https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)を参照してください。

# Amazon EC2 インスタンスの作成
<a name="ec2-example-creating-an-instance"></a>

![JavaScript code example that applies to Node.js execution](https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**この Node.js コード例は以下を示しています。**
+ パブリック Amazon マシンイメージ (AMI) から Amazon EC2 インスタンスを作成する方法。
+ 新しい Amazon EC2 インスタンスを作成してタグを割り当てる方法。

## 例について
<a name="ec2-example-creating-an-instance-scenario"></a>

この例では、Node.js モジュールを使用して Amazon EC2 インスタンスを作成し、それにキーペアとタグの両方を割り当てます。このコードは SDK for JavaScript を使用して、Amazon EC2 クライアントクラスのこれらのメソッドでインスタンスを作成およびタグ付けします。
+ [`runInstances`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#runInstances-property)
+ [`createTags`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#createTags-property)

## 前提条件タスク
<a name="ec2-example-creating-an-instance-prerequisites"></a>

この例をセットアップして実行するには、まず次のタスクを完了します。
+ Node.js をインストールします。詳細については、[Node.js のウェブサイト](https://nodejs.org)を参照してください。
+ ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、[共有認証情報ファイルから Node.js に認証情報をロードする](loading-node-credentials-shared.md) を参照してください。
+ キーペアの作成。詳細については、「[Amazon EC2 のキーペアでの作業](ec2-example-key-pairs.md)」を参照してください。この例では、キーペアの名前を使用します。

## インスタンスの作成とタグ付け
<a name="ec2-example-creating-an-instance-and-tags"></a>

`ec2_createinstances.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。

割り当てるキーペアの名前と実行する AMI の ID を含む、AWS.EC2 クライアントクラスの `runInstances` メソッドのパラメータを渡すオブジェクトを作成します。`runInstances` メソッドを呼び出すには、Amazon EC2 サービスオブジェクトを呼び出すための promise を作成し、パラメータを渡します。次に、promise コールバックのレスポンスを処理します。

次に、コードは `Name` タグを新しいインスタンスに追加し、Amazon EC2 コンソールがそれを認識して、インスタンスリストの [**Name**] (名前) フィールドに表示します。1 つのインスタンスに最大 50 個のタグを追加できます。これらはすべて、`createTags` メソッドへの 1 回の呼び出しで追加できます。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Load credentials and set region from JSON file
AWS.config.update({ region: "REGION" });

// 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_ID",
  InstanceType: "t2.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);
  });
```

この例を実行するには、コマンドラインに次のように入力します。

```
node ec2_createinstances.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_createinstances.js)にあります。