Amazon EC2 コネクタ - Mule 4

サポートカテゴリ: 選択

Amazon EC2 コネクタ v2.3

Amazon EC2 用 Anypoint コネクタ (Amazon EC2 コネクタ) を使用すると、Amazon Elastic Compute Cloud (Amazon EC2) API に接続できます。これにより、Amazon EC2 と連携して、必要な数の仮想サーバを起動したり、セキュリティとネットワークを設定したり、ストレージを管理したりできます。

前提条件

Amazon EC2 コネクタを使用するには、次のものが必要です。

  • AWS Identity and Access Management (IAM) ユーザアカウントのログイン情報

  • AWS クラウドを介した EC2 へのアクセス

  • Anypoint Studio 7.0 以降

  • IAM へのシークレットアクセスキー

互換性

Amazon EC2 コネクタは次のものと互換性があります。

アプリケーション/サービス バージョン

Mule

4.1.1 以降

Anypoint Studio

7.0 以降

AWS SDK for Java

1.11.611

Java

1.8.0_x

プロジェクトへのコネクタの追加

Anypoint Studio には、コネクタを Studio プロジェクトに追加する 2 つの方法があります。

  • Studio タスクバーの Exchange ボタンから

  • [Mule Palette (Mule パレット)] ビューから

Exchange を使用してコネクタを追加する

  1. Studio で Mule プロジェクトを作成します。

  2. Studio タスクバーの左上にある Exchange アイコン (X)​ をクリックします。

  3. Exchange で、[Login (ログイン)]​ をクリックし、Anypoint Platform のユーザ名とパスワードを指定します。

  4. Exchange で、「EC2」を検索します。

  5. コネクタを選択して [Add to project (プロジェクトに追加)]​ をクリックします。

  6. 画面の指示に従ってコネクタをインストールします。

Studio でコネクタに追加する

  1. Studio で Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  3. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「EC2」と入力します。

  4. [Available modules (使用可能なモジュール)]​ で、このコネクタの名前をクリックします。

  5. [Add (追加)]​ をクリックします。

  6. [Finish (完了)]​ をクリックします。

グローバル要素の設定

Mule アプリケーションで Amazon EC2 コネクタを使用するには、プロジェクト内の Amazon EC2 コネクタのすべてのインスタンスで使用するグローバル Amazon EC2 要素を設定します。Anypoint Studio のビジュアルエディタ、XML エディタ、またはスタンドアロンエディタを使用してグローバル要素を設定できます。

Studio のビジュアルエディタで設定する

  1. キャンバスの下部にある [Global Elements (グローバル要素)]​ タブをクリックします。

  2. [Global Mule Configuration Elements (グローバル Mule 設定要素)] 画面で、[Create (作成)]​ をクリックします。

  3. [Choose Global Type (グローバル種別の選択)] ウィザードで、[Connector Configuration (コネクタ設定)] を展開し、[Amazon EC2: Configuration (Amazon EC2: 設定)]​ を選択し、[OK]​ をクリックします。

    [Global Element Configuration (グローバル要素設定)] ウィザード
  4. パラメータを設定します。

    • Access Key (アクセスキー): アカウントを所有するユーザを一意に識別する英数字のテキスト文字列

    • Secret (シークレットキー): パスワードの役割を果たすキー

    • Try Default AWS Credentials Provider Chain (デフォルトの AWS ログイン情報プロバイダチェーンを試す): 一時ログイン情報を使用する必要があるかどうかを制御するチェックボックス

  5. プロジェクトの src/main/resources​ フォルダにある設定ファイル mule-artifact.properties​ のプレースホルダ値を設定します。

    ログイン情報をグローバル設定プロパティに入力するか、それらの値を含む設定ファイルを参照することができます。メンテナンスの簡略化とプロジェクトの再利用性の向上のために、設定ファイルを使用します。これらの値を別個のファイルに保存しておくと、アクセスログイン情報が異なるさまざまな環境 (本番、開発、QA など) にデプロイする必要がある場合に便利です。

  6. [Advanced (詳細)]​ タブの値はそのままにします。

  7. [Test Connection (接続をテスト)]​ をクリックして、グローバル設定のパラメータが正確であることと、Mule が Amazon EC2 のインスタンスに正常に接続できることを確認します。

  8. [OK]​ をクリックして、グローバルコネクタ設定を保存します。

XML エディタまたはスタンドアロンで設定する

Studio で [Mule Palette (Mule パレット)] ビューからキャンバスにコネクタをドラッグすると、コネクタの名前空間とスキーマの場所が自動的に XML コードとPOM ファイルに入力されます。

または、手動でコネクタをコーディングすることもできます。

  1. 設定ファイルに Amazon EC2 の名前空間とスキーマの場所を含めます。

    名前空間: ​http://www.mulesoft.org/schema/mule/ec2
    スキーマの場所: ​http://www.mulesoft.org/schema/mule/ec2/current/mule-ec2.xsd

    これらのステートメントは、Mule アプリケーションを開始する <mule>​ ブロックに表示されます。

    <?xml version="1.0" encoding="UTF-8"?>
    
    <mule xmlns:ec2="http://www.mulesoft.org/schema/mule/ec2"
    	xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw"
    	xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
    	xmlns:http="http://www.mulesoft.org/schema/mule/http"
    	xmlns="http://www.mulesoft.org/schema/mule/core"
    	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    	xmlns:spring="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="
    	http://www.mulesoft.org/schema/mule/ee/dw
    	http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
    	http://www.springframework.org/schema/beans
    	http://www.springframework.org/schema/beans/spring-beans-current.xsd
    	http://www.mulesoft.org/schema/mule/core
    	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
    	http://www.mulesoft.org/schema/mule/http
    	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
    	http://www.mulesoft.org/schema/mule/ee/core
    	http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
    	http://www.mulesoft.org/schema/mule/ec2
    	http://www.mulesoft.org/schema/mule/ec2/current/mule-ec2.xsd">
    	<!-- Put your flows and configuration elements here -->
    </mule>
  2. 次のグローバル設定コードを使用して、フローの外側にグローバル Amazon EC2 設定を作成します。

    <ec2:config name="Amazon_EC2_configuration" doc:name="Amazon EC2 Configuration" >
    	<ec2:basic-connection
    		accessKey="${amazon.accesskey}"
    		secretKey="${amazon.secretkey}"
    		region="${amazon.region}"
    		sessionToken="{amazon.sessionToken}"/>
    </ec2:config>
  3. この XML スニペットを pom.xml ファイルに含めます。

    <dependency>
        <groupId>com.mulesoft.connectors</groupId>
        <artifactId>mule-amazon-ec2-connector</artifactId>
        <version>RELEASE</version>
        <classifier>mule-plugin</classifier>
    </dependency>

    Mule によって RELEASE​ 値が最新リリースに変換されます。

    最新の pom.xml​ ファイル情報を取得するには、​Anypoint Exchange​ でコネクタにアクセスし、[Dependency Snippets (連動関係スニペット)]​ をクリックします。

EC2 コネクタの操作

Amazon EC2 コネクタは、次のリストの Anypoint Studio 操作をサポートしています。

AMI

Studio 操作名 XML 操作名
  • Create image

  • Deregister image

  • Describe image attribute

  • Describe images

  • Modify image attribute

  • Reset image attribute

  • CreateImage

  • DeregisterImage

  • DescribeImageAttribute

  • DescribeImages

  • ModifyImageAttribute

  • ResetImageAttribute

Elastic IP アドレス

Studio 操作名 XML 操作名
  • Allocate address

  • Associate address

  • Describe addresses

  • Describe moving addresses

  • Disassociate address

  • Move address to VPC

  • Release address

  • Restore address to classic

  • AllocateAddress

  • AssociateAddress

  • DescribeAddresses

  • DescribeMovingAddresses

  • DisassociateAddress

  • MoveAddressToVpc

  • ReleaseAddress

  • RestoreAddressToClassic

Elastic Network Interface (Amazon VPC)

Studio 操作名 XML 操作名
  • Assign IPV 6 addresses

  • Assign private IP addresses

  • Attach network interface

  • Create network interface

  • Delete network interface

  • Describe network interface attribute

  • Describe network interfaces

  • Detach network interface

  • Modify network interface attribute

  • Reset network interface attribute

  • Unassign IPV 6 addresses

  • Unassign private IP addresses

  • AssignIpv6Addresses

  • AssignPrivateIpAddresses

  • AttachNetworkInterface

  • CreateNetworkInterface

  • DeleteNetworkInterface

  • DescribeNetworkInterfaceAttribute

  • DescribeNetworkInterfaces

  • DetachNetworkInterface

  • ModifyNetworkInterfaceAttribute

  • ResetNetworkInterfaceAttribute

  • UnassignIpv6Addresses

  • UnassignPrivateIpAddresses

インスタンス

Studio 操作名 XML 操作名
  • Associate IAM instance profile

  • Describe IAM instance profile associations

  • Describe instance attribute

  • Describe instances

  • Describe instance Status

  • Disassociate IAM Instance profile

  • Get console output

  • Get console screenshot

  • Get password data

  • Modify instance attribute

  • Monitor instances

  • Reboot instances

  • Replace IAM instance profile association

  • Report instance status

  • Reset instance attribute

  • Run instances

  • Start instances

  • Stop instances

  • Terminate instances

  • Unmonitor instances

  • AssociateIamInstanceProfile

  • DescribeIamInstanceProfileAssociations

  • DescribeInstanceAttribute

  • DescribeInstances

  • DescribeInstanceStatus

  • DisassociateIamInstanceProfile

  • GetConsoleOutput

  • GetConsoleScreenshot

  • GetPasswordData

  • ModifyInstanceAttribute

  • MonitorInstances

  • RebootInstances

  • ReplaceIamInstanceProfileAssociation

  • ReportInstanceStatus

  • ResetInstanceAttribute

  • RunInstances

  • StartInstances

  • StopInstances

  • TerminateInstances

  • UnmonitorInstances

キーペア

Studio 操作名 XML 操作名
  • Create key pair

  • Delete key pair

  • Describe key pairs

  • Import key pair

  • CreateKeyPair

  • DeleteKeyPair

  • DescribeKeyPairs

  • ImportKeyPair

リージョンおよび可用性ゾーン

Studio 操作名 XML 操作名
  • Describe availability zones

  • Describe regions

  • DescribeAvailabilityZones

  • DescribeRegions

セキュリティグループ

Studio 操作名 XML 操作名
  • Authorize security group egress

  • Authorize security group ingress

  • Create security group

  • Delete security group

  • Describe security group references

  • Describe security groups

  • Describe stale security groups

  • Revoke security group egress

  • Revoke security group ingress

  • AuthorizeSecurityGroupEgress

  • AuthorizeSecurityGroupIngress

  • CreateSecurityGroup

  • DeleteSecurityGroup

  • DescribeSecurityGroupReferences

  • DescribeSecurityGroups

  • DescribeStaleSecurityGroups

  • RevokeSecurityGroupEgress

  • RevokeSecurityGroupIngress

タグ

Studio 操作名 XML 操作名
  • Create tags

  • Delete tags

  • Describe tags

  • CreateTags

  • DeleteTags

  • DescribeTags

ボリュームおよびスナップショット (Amazon EBS)

Studio 操作名 XML 操作名
  • Attach volume

  • Copy snapshot

  • Create snapshot

  • Create volume

  • Delete snapshot

  • Delete volume

  • Describe snapshot attribute

  • Describe snapshots

  • Describe volume attribute

  • Describe volumes

  • Describe volumes modifications

  • Describe volume status

  • Detach volume

  • Enable volume IO

  • Modify snapshot attribute

  • Modify volume

  • Modify volume attribute

  • Reset snapshot attribute

  • AttachVolume

  • CopySnapshot

  • CreateSnapshot

  • CreateVolume

  • DeleteSnapshot

  • DeleteVolume

  • DescribeSnapshotAttribute

  • DescribeSnapshots

  • DescribeVolumeAttribute

  • DescribeVolumes

  • DescribeVolumesModifications

  • DescribeVolumeStatus

  • DetachVolume

  • EnableVolumeIO

  • ModifySnapshotAttribute

  • ModifyVolume

  • ModifyVolumeAttribute

  • ResetSnapshotAttribute

コネクタの名前空間とスキーマ

Studio でアプリケーションを設計するときに、コネクタをパレットから Anypoint Studio キャンバスにドラッグすると、XML コードにコネクタの名前空間とスキーマの場所が自動的に入力されます。

名前空間: ​http://www.mulesoft.org/schema/mule/ec2

スキーマの場所: ​http://www.mulesoft.org/schema/mule/ec2/current/mule-ec2.xsd

Studio の XML エディタまたはその他のテキストエディタで手動でコーディングを行う場合は、これらを設定 XML の <mule>​ タグの内部に貼り付けてください。

<mule xmlns:ec2="http://www.mulesoft.org/schema/mule/ec2"
xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw"
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/ee/dw
http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/ec2
http://www.mulesoft.org/schema/mule/ec2/current/mule-ec2.xsd">

      <!-- here go your global configuration elements and flows -->

</mule>

Maven 対応の Mule アプリケーションでのコネクタの使用

Maven 対応の Mule アプリケーションをコーディングしている場合は、次のスニペットを pom.xml​ ファイルに含める必要があります。

<dependency>
    <groupId>com.mulesoft.connectors</groupId>
    <artifactId>mule-amazon-ec2-connector</artifactId>
    <version>2.3</version>
    <classifier>mule-plugin</classifier>
</dependency>

Mule によって <version></version>​ 要素の値が最新リリースに変換されます。

ユースケースとデモ

コネクタの一般的なユースケース:

  • 同じ可用性ゾーンのインスタンスにアタッチする EBS ボリュームを作成する

  • 実行中または停止中の Amazon EC2 インスタンスに EBS ボリュームをアタッチする

  • 以前に停止した Amazon EBS-Backed AMI を再起動する

  • Amazon EC2 インスタンスを停止する

EBS ボリュームの作成

この例では、同じ可用性ゾーンの EC2 インスタンスにアタッチできる EBS ボリュームを作成します:

EBS ボリュームの作成
  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

  2. 次のプロパティを mule-artifact.properties​ ファイルに追加して Amazon EC2 ログイン情報を保持し、このファイルをプロジェクトの src/main/resources​ ディレクトリに置きます。

    amazon.accesskey=<Access Key>
    amazon.secretkey=<Secret Key>
    amazon.region=<Region>
    amazon.sessionToken=<Session Token>
  3. HTTP Listener コンポーネントをキャンバスにドラッグし、次の値を指定します。

    • Host (ホスト)​: ​localhost

    • Port (ポート)​: ​8081

  4. Amazon EC2 コネクタの Create volume​ 操作を HTTP Listner コンポーネントの横にドラッグします。

  5. 新しい Amazon EC2 グローバル要素を追加することで EC2 コネクタを設定します。

  6. [Connector Configuration (コネクタ設定)] 項目の横にあるプラス記号をクリックします。

  7. グローバル要素を次のように設定します。

    Studio 項目

    Display Name (表示名)

    リスナ

    Extension Configuration (拡張機能設定)

    HTTP リスナ設定が存在しない場合:

    1. プラス記号 (+) をクリックして、新しい HTTP リスナ設定を追加します。

    2. 次の値を指定します。

      • Host (ホスト): ​localhost

      • Port (ポート): ​8081​ 3.​[OK]​ をクリックします。

    Path (パス)

    /createVolume

  8. Amazon EC2 コネクタの Create volume​ 操作を HTTP Listener コンポーネントの横にドラッグします。

  9. 新しい Amazon EC2 グローバル要素を追加することで EC2 コネクタを設定し、[Connector Configuration (コネクタ設定)]​ 項目の横にある [+]​ をクリックします。

  10. 次のようにグローバル要素を設定します。

    Studio 項目 説明

    Name (名前)

    コネクタの参照に使用される名前。

    Session Token (セッショントークン)

    一時的なセキュリティログイン情報を検証するために使用するセッショントークン。

    Access Key (アクセスキー)

    アカウントを所有するユーザを一意に識別する英数字のテキスト文字列

    Secret Key (シークレットキー)

    パスワードの役割を果たすキー。

    Region Endpoint (リージョンエンドポイント)

    Amazon EC2 クライアントのドロップダウンメニューから選択するリージョン

    設定は次のようになります。

    EC2 グローバル設定

    対応する XML 設定は次のようになります。

    <ec2:config
    	name="Amazon_EC2_configuration"
    	doc:name="Amazon EC2 Configuration" >
    <ec2:basic-connection
    	accessKey="${amazon.accesskey}"
    	secretKey="${amazon.secretkey}"
    	region="${amazon.region}"
    	sessionToken="${amazon.sessionToken}"/>
    </ec2:config>
  11. [Test Connection (接続をテスト)]​ をクリックして、Mule が EC2 インスタンスに接続できることを確認します。

  12. 正常に接続できた場合は、[OK]​ をクリックして設定を保存します。

    そうでない場合は、見直して、誤ったパラメータを修正してからもう一度テストします。

  13. プロパティエディタで、残りのパラメータを設定します。

    Studio 項目

    Display Name (表示名)

    Create Volume (ボリュームを作成) (または他の任意の名前)

    Basic Settings (基本設定)

    Extension Configuration (拡張機能設定)

    Amazon_EC2_Configuration (グローバル要素用に作成した名前)

    General (一般)

    Availability Zone (可用性ゾーン)

    us-east-1a​ (またはアクセス可能な他の可用性ゾーン)

    Size (サイズ)

    5 (ギガバイト GiB 単位のボリュームのサイズ)

    Volume Type (ボリューム種別)

    Standard (標準) (デフォルトのボリューム種別)

    メッセージのパブリッシュコネクタのプロパティ
  14. XML が次のようになっていることを確認します。

    <ec2:create-volume
    	config-ref="Amazon_EC2_configuration"
    	availabilityZone="us-east-1a"
    	doc:name="Create volume"
    	size="5"/>
  15. Amazon EC2 の Create Volume 操作の後に Set Payload​ を追加し、ブラウザでクライアントに応答を送信します。

  16. EBS ボリュームのボリューム ID を出力するため、[Value (値)]​ を #[payload.volume.volumeId]​ に設定します。

    EC2 の Create Volume の Payload トランスフォーマ
  17. Set Payload の後に Logger コンポーネントを追加し、Mule コンソールで Create Volume 操作から Set Payload トランスフォーマによって変換されるボリューム ID を表示します。

  18. Logger の [Message (メッセージ)]​ を #[payload]​ に、[Level (レベル)]​ を INFO に設定します。

    EC2 の Create Volume の Logger
  19. Package Explorer で、プロジェクトを右クリックし、[Run As (別のユーザとして実行)]​ > [Mule Application (Mule アプリケーション)]​ を選択します。

  20. http://localhost:8081/createVolume​ にアクセスします。

    生成されたボリューム ID がブラウザとコンソールに表示されます。

Mule アプリケーション XML コードの例

このユースケース例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを XML エディタに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ec2="http://www.mulesoft.org/schema/mule/ec2"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
	http://www.mulesoft.org/schema/mule/core/current/mule.xsd
	http://www.mulesoft.org/schema/mule/http
	http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
	http://www.mulesoft.org/schema/mule/ec2
	http://www.mulesoft.org/schema/mule/ec2/current/mule-ec2.xsd">
	<http:listener-config
		name="HTTP_Listener_config"
		doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8081" />
	</http:listener-config>
	<ec2:config
		name="Amazon_EC2_configuration"
		doc:name="Amazon EC2 Configuration" >
		<ec2:basic-connection
			accessKey="${amazon.accesskey}"
			secretKey="${amazon.secretkey}"
			region="USEAST1"
			sessionToken="${amazon.sessionToken}"/>
	</ec2:config>
	<flow name="create-ebs-volume" >
		<http:listener
			config-ref="HTTP_Listener_config"
			path="/createVolume"
			doc:name="Listener" />
		<ec2:create-volume
			config-ref="Amazon_EC2_configuration"
			availabilityZone="us-east-1a"
			doc:name="Create volume"
			size="5"/>
		<set-payload
			value="#[payload.volume.volumeId]"
			doc:name="Set Payload"  />
		<logger
			level="INFO"
			doc:name="Logger"
			message="#[payload]"/>
	</flow>
</mule>

Was this article helpful?

💙 Thanks for your feedback!