Elasticsearch¶
This page contains information about using the Elasticsearch service in Handel. This service provides an Amazon ElasticSearch cluster.
Warning
This provisioner is new and should be considered in beta. It is subject to breaking changes until this beta label is removed.
Service Limitations¶
No Zone Awareness Support¶
Currently Elasticsearch clusters are only deployed in a single Availability Zone (AZ), and there is no support for the two-AZ zone awareness support.
No Kibana Support¶
While Kibana is deployed with the Elasticsearch cluster, there is currently no way for you to access it since the cluster does not have wide-open security permissions and Cognito authentication isn’t supported.
Parameters¶
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
type | string | Yes | This must always be elasticsearch for this service type. | |
version | number | Yes | The version number of ElasticSearch to use. See Supported Elasticsearch Versions for more details | |
instance_type | string | No | t2.small.elasticsearch | The size of database instance to run. See Elasticsearch Pricing for the allowed instance types. |
instance_count | number | No | 1 | The number of instances to run in your cluster. |
ebs | EBS | No | This section is required if you specify an instance type that uses EBS storage instead of the instance store. | |
master_node | MasterNode | No | If you specify this section, you will configure a master node cluster to handle cluster management operations. | |
tags | Resource Tags | No | Any tags you wish to apply to this Elasticsearch cluster. |
EBS¶
The ebs section is defined by the following schema:
ebs:
size_gb: <number> # Required. The size of the EBS disk in GB
provisioned_iops: <number> # Optional. The number of provisioned IOPS you want to dedicate to the EBS disk.
Important
Each instance type has different values for the allowed values of the size_gb parameter. See EBS Volume Size Limits for the allowed values for each instance type
MasterNode¶
The master_node section is defined by the following schema:
master_node:
instance_type: <string> # Required
instance_count: <number> # Required
Note
Amazon recommends using master nodes to increase cluster stability. See Dedicated Master Nodes for their recommendations.
IAM Authentication¶
Your ElasticSearch cluster requires IAM authentication to your Elasticsearch endpoint. This is done using AWS’ signature version 4 signing process. Each HTTP request to Elasticsearch must include the signature headers required by AWS to validate your IAM role identity.
See AWS’ Programmatic Indexing page for information about how perform this authentication in various languages.
Example Handel File¶
version: 1
name: elasticsearch-test
environments:
dev:
search:
type: elasticsearch
version: 6.2
instance_type: t2.small.elasticsearch
instance_count: 1
ebs:
size_gb: 10
Depending on this service¶
The Elasticsearch service outputs the following environment variables:
Environment Variable | Description |
---|---|
<SERVICE_NAME>_DOMAIN_ENDPOINT | The address that you should use to communicate with the cluster. |
<SERVICE_NAME>_DOMAIN_NAME | The name of your Elasticsearch domain. |
See Environment Variable Names for information about how the service name is included in the environment variable name.
Events produced by this service¶
The Elasticsearch service does not produce events for other Handel services to consume.
Events consumed by this service¶
The Elasticsearch service does not consume events from other Handel services.