All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::ElasticSearch::Instance

Last Updated:May 31, 2023

ALIYUN::ElasticSearch::Instance is used to create an Elasticsearch cluster.

Syntax

{
  "Type": "ALIYUN::ElasticSearch::Instance",
  "Properties": {
    "KibanaWhitelist": List,
    "PublicWhitelist": List,
    "VSwitchId": String,
    "InstanceChargeType": String,
    "Period": Integer,
    "Version": String,
    "DataNode": Map,
    "PrivateWhitelist": List,
    "ResourceGroupId": String,
    "EnablePublic": Boolean,
    "Password": String,
    "MasterNode": Map,
    "Tags": List,
    "Description": String,
    "EnableKibanaPublic": Boolean,
    "YMLConfig": Map,
    "EnableKibanaPrivate": Boolean,
    "ZoneCount": Integer,
    "KibanaNode": Map,
    "ZoneId": String,
    "PeriodUnit": String
  }
}

Properties

Property

Type

Required

Editable

Description

Constraint

KibanaWhitelist

List

No

Yes

The IP address whitelist of Kibana.

None

PublicWhitelist

List

No

Yes

The public IP address whitelist of the Elasticsearch cluster.

None

VSwitchId

String

Yes

No

The ID of the vSwitch to which you want to connect the Elasticsearch cluster.

None

InstanceChargeType

String

No

No

The billing method of the Elasticsearch cluster.

Valid values:

  • PrePaid: subscription

  • PostPaid: pay-as-you-go

Period

Integer

No

No

The subscription duration of the Elasticsearch cluster.

Valid values:

  • 1 (default)

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 12

  • 24

  • 36

Unit: month.

Version

String

Yes

No

The version of the Elasticsearch cluster.

Valid values:

  • 7.10_with_X-Pack

  • 6.7_with_X-Pack

  • 6.7_with_X-Pack

  • 7.7_with_X-Pack

  • 6.8_with_X-Pack

  • 6.3_with_X-Pack

  • 5.6_with_X-Pack

  • 5.5.3_with_X-Pack

ResourceGroupId

String

No

Yes

The ID of the resource group.

None

EnablePublic

Boolean

No

Yes

Specifies whether to enable Internet access for the Elasticsearch cluster.

Valid values:

  • true

  • false (default)

DataNode

Map

Yes

Yes

The data node configurations of the Elasticsearch cluster.

For more information, see DataNode properties.

PrivateWhitelist

List

No

Yes

The whitelist of IP addresses that can access the Elasticsearch cluster in a virtual private cloud (VPC).

None

Password

String

Yes

Yes

The password of the Elasticsearch cluster.

The password must be 8 to 32 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. The following special characters are supported: ! @ # $ % & * () _ + - =.

MasterNode

Map

No

Yes

The primary node configurations of the Elasticsearch cluster.

If you specify this property, one or more dedicated primary nodes are created.

For more information, see MasterNode properties.

Tags

List

No

Yes

The tags of the cluster.

You can add up to 20 tags to an Elasticsearch cluster.

For more information, see Tags properties.

Description

String

No

Yes

The description of the Elasticsearch cluster.

The description must be 0 to 30 characters in length and can contain letters, digits, underscores (_), and hyphens (-). The description must start with a digit or a letter.

EnableKibanaPublic

Boolean

No

No

Specifies whether to enable Internet access for Kibana.

Valid values:

  • true

  • false (default)

YMLConfig

Map

No

No

The configurations in the YAML file.

For more information, see YMLConfig properties.

EnableKibanaPrivate

Boolean

No

No

Specifies whether to enable internal network access for Kibana.

Valid values:

  • true

  • false (default)

ZoneCount

Integer

No

No

The number of zones in which you want to deploy the Elasticsearch cluster.

Valid values:

  • 1 (default)

  • 2

  • 3

KibanaNode

Map

No

No

The configurations of dedicated Kibana nodes.

None

ZoneId

String

No

No

The zone ID of the Elasticsearch cluster.

None

PeriodUnit

String

No

No

The unit of the subscription duration.

Valid values:

  • Month

  • Year

DataNode syntax

"DataNode": {
  "Amount": Integer,
  "DiskSize": Integer,
  "Spec": String,
  "DiskType": String,
  "DiskEncryption": Boolean,
  "PerformanceLevel": String
}

DataNode properties

Property

Type

Required

Editable

Description

Constraint

Amount

Integer

Yes

Yes

The number of data nodes in the Elasticsearch cluster.

Valid values: 2 to 50.

DiskSize

Integer

Yes

Yes

The storage space of a single data node.

Valid values:

  • If you set the DiskType property to cloud_ssd: 20 to 6144.

  • If you set the DiskType property to cloud_efficiency: 20 to 20480.

If you want to store more than 2,048 GB of data, only the following valid values are supported:

  • 2560

  • 3072

  • 3584

  • 4096

  • 4608

  • 5120

  • 5632

  • 6144

  • 8192

  • 10240

  • 12288

  • 14336

  • 16384

  • 18432

  • 20480

Note

If you want to store more than 5,120 GB of data, the Elasticsearch version must be V6.7 or V7.X, or the Elasticsearch edition must be Advanced Edition.

  • If you set the DiskType property to cloud_essd: 20 to 6144.

Unit: GB.

Spec

String

Yes

Yes

The specifications of each data node.

None

DiskType

String

Yes

Yes

The disk type of each data node.

Valid values:

  • cloud_ssd: standard SSD. This type of disk is suitable for online data analytics and searches that require high IOPS and fast responses.

  • cloud_efficiency: ultra disk. This type of disk is cost-effective and suitable for logging and analysis of large volumes of data.

  • cloud_essd: enhanced SSD (ESSD). This type of disk features low latency, fast response, and powerful data throughput. It is suitable for latency-sensitive applications or I/O-intensive business scenarios.

DiskEncryption

Boolean

No

No

Specifies whether to enable disk encryption.

Valid values:

  • true

  • false (default)

PerformanceLevel

String

No

No

The performance level (PL) of the enhanced SSD.

This property is required if you set the DiskType property to cloud_essd. Valid values:

  • PL1

  • PL2

  • PL3

MasterNode syntax

"MasterNode": {
  "Amount": Integer,
  "DiskSize": Integer,
  "Spec": String,
  "DiskType": String
}

MasterNode properties

Property

Type

Required

Editable

Description

Constraint

Amount

Integer

No

Yes

The number of primary nodes.

Default value: 3.

DiskSize

Integer

No

No

The storage space of each primary node.

Default value: 20.

Spec

String

Yes

No

The specifications of each primary node.

None

DiskType

String

No

No

The disk type of each primary node.

None

Tags syntax

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]  

Tags properties

Property

Type

Required

Editable

Description

Constraint

Key

String

Yes

No

The key of the tag.

The tag key must be 1 to 128 characters in length and cannot contain http:// or https://. The tag key cannot start with aliyun or acs:.

Value

String

No

No

The value of the tag.

The tag value can be up to 128 characters in length and cannot contain http:// or https://. The tag value cannot start with aliyun or acs:.

YMLConfig syntax

"YMLConfig": {
    "CreateIndex": String,
    "Watcher": String,
    "DestructiveRequiresName": Boolean,
    "AuditLog": Boolean,
    "OtherConfigs": Map
  }

YMLConfig properties

Property

Type

Required

Editable

Description

Constraint

CreateIndex

String

No

No

Specifies whether to automatically create an index for a new document uploaded to the Elasticsearch cluster if no index exists.

The corresponding field in the YAML file is action.auto_create_index.

Valid values:

  • true

  • false (default)

Watcher

Boolean

No

No

Specifies whether to enable Watcher.

The corresponding field in the YAML file is xpack.watcher.enabled.

Valid values:

  • true: enables Watcher. If you enable Watcher, you can use the X-Pack Watcher feature. You must clear the .watcher-history* index on a regular basis to free up disk space.

  • false (default): disables Watcher.

DestructiveRequiresName

Boolean

No

No

Specifies whether the index name is required when you delete an index.

The corresponding field in the YAML file is action.destructive_requires_name.

Valid values:

  • true (default): You need to specify the index name when you delete an index.

  • false: You do not need to specify the index name when you delete an index.

Note

If you set this property to false, you can use wildcards to delete multiple indexes at a time. Deleted indexes cannot be recovered. Exercise caution when you specify this property.

AuditLog

Boolean

No

No

Specifies whether to enable audit log indexing.

Valid values:

  • true: enables audit log indexing. If you enable audit log indexing, the system generates audit logs for the create, delete, modify, and search operations that are performed in the Elasticsearch cluster. These logs consume disk space and affect cluster performance. We recommend that you disable audit log indexing. Exercise caution when you specify this property.

    For more information, see Configure the Audit Log Indexing feature.

  • false (default): disables audit log indexing.

Note

This property is unavailable for Elasticsearch clusters of V7.0 or later.

OtherConfigs

Map

No

No

Other configurations.

The following list provides some of the supported fields. Unless otherwise specified, these fields are available for Elasticsearch clusters of V5.X, V6.X, and V7.X.

  • Configure CORS

    • http.cors.enabled

    • http.cors.allow-origin

    • http.cors.max-age

    • http.cors.allow-methods

    • http.cors.allow-headers

    • http.cors.allow-credentials

  • Configure a remote reindex whitelist

    • reindex.remote.whitelist

  • Configure the Audit Log Indexing feature

    • xpack.security.audit.enabled

    • xpack.security.audit.index.bulk_size

    • xpack.security.audit.index.flush_interval

    • xpack.security.audit.index.rollover

    • xpack.security.audit.index.events.include

    • xpack.security.audit.index.events.exclude

    • xpack.security.audit.index.events.emit_request_body

  • Configure queue sizes

    • thread_pool.bulk.queue_size: This field is available for Elasticsearch clusters of V5.X.

    • thread_pool.write.queue_size: This field is available for Elasticsearch clusters of V6.X and V7.X.

    • thread_pool.search.queue_size

  • Configure a custom SQL plug-in

    xpack.sql.enabled: By default, Elasticsearch clusters use the built-in SQL plug-in provided by X-Pack. If you want to upload a custom SQL plug-in to your Elasticsearch cluster, set the xpack.sql.enabled field to false.

KibanaNode syntax

"KibanaNode": {
  "Spec": String
}

KibanaNode properties

Property

Type

Required

Editable

Description

Constraint

Spec

String

Yes

No

The specifications of the dedicated Kibana node.

None

Return values

Fn::GetAtt

  • Status: the status of the Elasticsearch cluster.

  • KibanaDomain: the Kibana endpoint of the Elasticsearch cluster.

  • PublicDomain: the public endpoint of the Elasticsearch cluster.

  • Domain: the internal endpoint of the Elasticsearch cluster.

  • InstanceId: the ID of the Elasticsearch cluster.

  • KibanaPort: the port number that is used to connect to the Kibana console.

  • Port: the port number that is used to connect to the Elasticsearch cluster.

  • VSwitchId: the ID of the vSwitch.

  • Version: the version of the Elasticsearch cluster.

  • InstanceChargeType: the billing method of the Elasticsearch cluster.

Examples

YAML format

ROSTemplateFormatVersion: '2015-09-01'
Description: Test ElasticSearch Instance
Parameters:
  VSwitchId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Resources:
  Instance:
    Type: ALIYUN::ElasticSearch::Instance
    Properties:
      DataNode:
        Spec: elasticsearch.sn1ne.large
        Amount: 2
        DiskSize: 20
        DiskType: cloud_essd
      InstanceChargeType: PostPaid
      Version: 7.10_with_X-Pack
      VSwitchId:
        Ref: VSwitchId
      Password: Admin@123!
Outputs: {}                  

JSON format

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test ElasticSearch Instance",
  "Parameters": {
    "VSwitchId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId"
    }
  },
  "Resources": {
    "Instance": {
      "Type": "ALIYUN::ElasticSearch::Instance",
      "Properties": {
        "DataNode": {
          "Spec": "elasticsearch.sn1ne.large",
          "Amount": 2,
          "DiskSize": 20,
          "DiskType": "cloud_essd"
        },
        "InstanceChargeType": "PostPaid",
        "Version": "7.10_with_X-Pack",
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "Password": "Admin@123!"
      }
    }
  },
  "Outputs": {
  }
}