Amazon EC2 での Elastic IP アドレスの使用 - AWS SDK for JavaScript

AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表されています。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

Amazon EC2 での Elastic IP アドレスの使用

JavaScript code example that applies to Node.js execution

この Node.js コード例は以下を示しています。

  • Elastic IP アドレスの説明を取得する方法。

  • Elastic IP アドレスを割り当てるおよび解放する方法。

  • Elastic IP アドレスを Amazon EC2 インスタンスに関連付ける方法。

シナリオ

Elastic IP アドレスは、動的なクラウドコンピューティングのために設計された静的 IP アドレスです。Elastic IP アドレスは、AWS アカウントに関連付けられます。これは、インターネットから到達可能なパブリック IP アドレスです。インスタンスにパブリック IP アドレスがない場合は、Elastic IP アドレスをインスタンスに関連付けて、インターネットとの通信を有効にできます。

この例では、一連の Node.js モジュールを使用して、Elastic IP アドレスを含むいくつかの Amazon EC2 オペレーションを実行します。この Node.js モジュールは SDK for JavaScript を使用して、Amazon EC2 クライアントクラスのこれらのメソッドで Elastic IP アドレスを管理します。

Amazon EC2 の Elastic IP アドレスの詳細については、「Amazon EC2 ユーザーガイド」の「Elastic IP アドレス」、または「Amazon EC2 ユーザーガイド」の「Elastic IP アドレス」を参照してください。

前提条件タスク

この例をセットアップして実行するには、まず次のタスクを完了します。

Elastic IP アドレスの説明

ec2_describeaddresses.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。Amazon EC2 にアクセスするには、AWS.EC2 サービスオブジェクトを作成します。パラメータとして渡す JSON オブジェクトを作成して、VPC のアドレスから返されるアドレスをフィルタリングします。すべての Elastic IP アドレスの説明を取得するには、パラメータの JSON からフィルターを省略します。次に、Amazon EC2 サービスオブジェクトの describeAddresses メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create EC2 service object var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" }); var params = { Filters: [{ Name: "domain", Values: ["vpc"] }], }; // Retrieve Elastic IP address descriptions ec2.describeAddresses(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", JSON.stringify(data.Addresses)); } });

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

node ec2_describeaddresses.js

このサンプルコードは、このGitHubにあります。

Elastic IP アドレスを Amazon EC2 インスタンスに割り当てるおよび関連付ける

ec2_allocateaddress.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。Amazon EC2 にアクセスするには、AWS.EC2 サービスオブジェクトを作成します。Elastic IP アドレスの割り当てに使用されるパラメータ用の JSON オブジェクトを作成します。この場合、Domain は VPC であると指定します。Amazon EC2 サービスオブジェクトの allocateAddress メソッドを呼び出します。

呼び出しが成功すると、コールバック関数の data パラメータには、割り当てられた Elastic IP アドレスを識別する AllocationId プロパティがあります。

新しく割り当てられたアドレスからの AllocationId および Amazon EC2 インスタンスの InstanceId を含む、Elastic IP アドレスを Amazon EC2 インスタンスに関連付けるために使用されるパラメータの JSON オブジェクトを作成します。次に、Amazon EC2 サービスオブジェクトの associateAddresses メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create EC2 service object var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" }); var paramsAllocateAddress = { Domain: "vpc", }; // Allocate the Elastic IP address ec2.allocateAddress(paramsAllocateAddress, function (err, data) { if (err) { console.log("Address Not Allocated", err); } else { console.log("Address allocated:", data.AllocationId); var paramsAssociateAddress = { AllocationId: data.AllocationId, InstanceId: "INSTANCE_ID", }; // Associate the new Elastic IP address with an EC2 instance ec2.associateAddress(paramsAssociateAddress, function (err, data) { if (err) { console.log("Address Not Associated", err); } else { console.log("Address associated:", data.AssociationId); } }); } });

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

node ec2_allocateaddress.js

このサンプルコードは、このGitHubにあります。

Elastic IP アドレスを解放する

ec2_releaseaddress.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。Amazon EC2 にアクセスするには、AWS.EC2 サービスオブジェクトを作成します。Elastic IP アドレスの解放に使用されるパラメータの JSON オブジェクトを作成します。この場合は、Elastic IP アドレスの AllocationId を指定します。Elastic IP アドレスを解放すると、Amazon EC2 インスタンスから関連付けが解除されます。Amazon EC2 サービスオブジェクトの releaseAddress メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create EC2 service object var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" }); var paramsReleaseAddress = { AllocationId: "ALLOCATION_ID", }; // Disassociate the Elastic IP address from EC2 instance ec2.releaseAddress(paramsReleaseAddress, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Address released"); } });

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

node ec2_releaseaddress.js

このサンプルコードは、このGitHubにあります。