[[AWS-EC2-EC2Component]]
EC2 Component
~~~~~~~~~~~~~

*Available as of Camel 2.16*

The EC2 component supports create, run, start, stop and terminate
https://aws.amazon.com/it/ec2/[AWS EC2] instances.

Prerequisites

You must have a valid Amazon Web Services developer account, and be
signed up to use Amazon EC2. More information are available at
https://aws.amazon.com/it/ec2/[Amazon EC2].

[[AWS-EC2-URIFormat]]
URI Format
^^^^^^^^^^

[source,java]
-------------------------
aws-ec2://label[?options]
-------------------------

You can append query options to the URI in the following format,
?options=value&option2=value&...

[[AWS-EC2-URIOptions]]
URI Options
^^^^^^^^^^^

[width="100%",cols="10%,10%,10%,70%",options="header",]
|=======================================================================
|Name |Default Value |Context |Description

|amazonEc2Client |`null` |Producer |Reference to a com.amazonaws.services.ec2.AmazonEC2Client in the
link:registry.html[Registry].

|accessKey |`null` |Producer |Amazon AWS Access Key 

|secretKey |`null` |Producer |Amazon AWS Secret Key

|amazonEc2Endpoint |`null` |Producer |The region with which the AWS-EC2 client wants to work with.

|operation |`null` |Producer |Valid values are createAndRunInstances, startInstances, stopInstances,
terminateInstances, describeInstances, describeInstancesStatus,
rebootInstances, monitorInstances and unmonitorInstances

|proxyHost |`null` |Producer |*Camel 2.16*: Specify a proxy host to be used inside the client
definition.

|proxyPort |`null` |Producer |*Camel 2.16*: Specify a proxy port to be used inside the client
definition.
|=======================================================================

Required EC2 component options

You have to provide the amazonEc2Client in the
link:registry.html[Registry] or your accessKey and secretKey to access
the https://aws.amazon.com/it/ec2/[Amazon EC2] service.

[[AWS-EC2-Usage]]
Usage
^^^^^

[[AWS-EC2-MessageheadersevaluatedbytheEC2producer]]
Message headers evaluated by the EC2 producer
+++++++++++++++++++++++++++++++++++++++++++++

[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Header |Type |Description

|`CamelAwsEC2ImageId` |`String` |An image ID of the AWS marketplace

|`CamelAwsEC2InstanceType` |com.amazonaws.services.ec2.model.InstanceType |The instance type we want to create and run

|`CamelAwsEC2Operation` |`String` |The operation we want to perform

|`CamelAwsEC2InstanceMinCount` |`Int` |The mininum number of instances we want to run.

|`CamelAwsEC2InstanceMaxCount` |`Int` |The maximum number of instances we want to run.

|`CamelAwsEC2InstanceMonitoring` |Boolean |Define if we want the running instances to be monitored

|`CamelAwsEC2InstanceEbsOptimized` |`Boolean` |Define if the creating instance is optimized for EBS I/O.

|`CamelAwsEC2InstanceSecurityGroups` |Collection |The security groups to associate to the instances

|`CamelAwsEC2InstancesIds` |`Collection` |A collection of instances IDS to execute start, stop, describe and
terminate operations on.
|=======================================================================

Dependencies

Maven users will need to add the following dependency to their pom.xml.

*pom.xml*

[source,xml]
---------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-aws</artifactId>
    <version>${camel-version}</version>
</dependency>
---------------------------------------

where `${camel-version`} must be replaced by the actual version of Camel
(2.16 or higher).

[[AWS-EC2-SeeAlso]]
See Also
^^^^^^^^

* link:configuring-camel.html[Configuring Camel]
* link:component.html[Component]
* link:endpoint.html[Endpoint]
* link:getting-started.html[Getting Started]

* link:aws.html[AWS Component]

