ALIYUN::ElasticSearch::Instance

ALIYUN::ElasticSearch::Instance类型用于创建Elasticsearch实例。

语法

{
  "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,
    "InstanceCategory": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

KibanaWhitelist

List

Kibana的IP白名单列表。

PublicWhitelist

List

实例的公网IP白名单列表。

VSwitchId

String

交换机ID。

InstanceChargeType

String

实例付费类型。

取值:

  • PrePaid:预付费。

  • PostPaid:后付费。

Period

Integer

购买Elasticsearch实例的持续时间。

取值:

  • 1(默认值)

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 12

  • 24

  • 36

单位:月。

Version

String

Elasticsearch版本。

取值:

  • 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

资源组ID。

EnablePublic

Boolean

是否开启实例的公网地址。

取值:

  • true:开启。

  • false(默认值):关闭。

DataNode

Map

Elasticsearch集群的数据节点设置。

更多信息,请参见DataNode属性

PrivateWhitelist

List

在专有网络中设置实例的IP白名单列表。

Password

String

实例的密码。

长度为8~32个字符,必须同时包含大写英文字母、小写英文字母、数字和特殊字符中的三项。支持的特殊字符为:!@#$%&*()_+-=

MasterNode

Map

主节点设置。

如果指定该参数,将创建专用主节点。

更多信息,请参见MasterNode属性

Tags

List

标签。

最多支持添加20个标签。

更多信息,请参见Tags属性

Description

String

实例的描述。

长度为0~30个字符,必须以英文字母、数字或汉字开头,可包含英文字母、数字、汉字、下划线(_)和短划线(-)。

EnableKibanaPublic

Boolean

是否开启Kibana公网访问。

取值:

  • true:开启。

  • false(默认值):关闭。

YMLConfig

Map

YAML文件配置。

更多信息,请参见YMLConfig属性

EnableKibanaPrivate

Boolean

是否开启Kibana私网访问。

取值:

  • true:开启。

  • false(默认值):关闭。

ZoneCount

Integer

实例的可用区个数。

取值:

  • 1(默认值)

  • 2

  • 3

KibanaNode

Map

Kibana专用节点设置。

ZoneId

String

可用区ID。

PeriodUnit

String

包年包月计费方式的时长单位。

取值:

  • Month:月。

  • Year:年。

InstanceCategory

String

实例版本类型。

取值:

  • x-pack:创建商业版实例,或不开启Indexing Service和OpenStore的内核增强版实例。

  • IS:创建开启Indexing Service或OpenStore的内核增强版实例。

DataNode语法

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

DataNode属性

属性名称

类型

必须

允许更新

描述

约束

Amount

Integer

Elasticsearch集群的数据节点数量。

取值范围:2~50。

DiskSize

Integer

单数据节点存储空间。

取值范围:

  • 当DiskType取值为cloud_ssd时:20~6144。

  • 当DiskType取值为cloud_efficiency时:20~20480。如果要存储的数据大于2048 GB,cloud_efficiency只能支持以下数据大小:

    • 2560

    • 3072

    • 3584

    • 4096

    • 4608

    • 5120

    • 5632

    • 6144

    • 8192

    • 10240

    • 12288

    • 14336

    • 16384

    • 18432

    • 20480

    说明

    如果要存储的数据大于5120 GB,Elasticsearch版本必须为6.7、7.X或日志增强版。

  • 当DiskType取值为cloud_essd时:20~6144。

单位:GB。

Spec

String

Elasticsearch实例的数据节点规格。

DiskType

String

数据节点磁盘类型。

取值:

  • cloud_ssd:SSD云盘。适合拥有高IOPS,数据响应度较高的在线分析和搜索场景。

  • cloud_efficiency:高效云盘。提供较为低廉的存储能力,适合大规模数据量的日志及分析场景。

  • cloud_essd:ESSD云盘。具有低时延、快速响应、强大的数据吞吐量等优势,适合时延敏感的应用或者I/O密集型业务场景。

DiskEncryption

Boolean

是否开启云盘加密。

取值:

  • true:开启。

  • false(默认值):关闭。

PerformanceLevel

String

ESSD云盘的性能级别。

当DiskType取值为cloud_essd时,该参数必选。取值:

  • PL1

  • PL2

  • PL3

MasterNode语法

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

MasterNode属性

属性名称

类型

必须

允许更新

描述

约束

Amount

Integer

主节点数量。

默认值:3。

DiskSize

Integer

主节点存储空间。

默认值:20。

Spec

String

主节点规格。

DiskType

String

主节点磁盘类型。

Tags语法

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

Tags属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

标签键。

长度为1~128个字符,不能以aliyunacs:开头,不能包含http://或者https://

Value

String

标签值。

长度为0~128个字符,不能以aliyunacs:开头,不能包含http://或者https://

YMLConfig语法

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

YMLConfig属性

属性名称

类型

必须

允许更新

描述

约束

CreateIndex

String

当Elasticsearch实例接收到新文件后,如果没有对应索引,是否允许系统自动创建索引。

对应的YAML文件的配置项为action.auto_create_index。

取值:

  • true:允许系统自动创建索引。

  • false(默认值):不允许系统自动创建索引。

Watcher

Boolean

是否开启Watcher。

对应的YAML文件的配置项为xpack.watcher.enabled。

取值:

  • true:开启。开启Watcher后,可使用X-Pack的Watcher功能。请注意定时清理.watcher-history*索引,避免占用大量磁盘空间。

  • false(默认值):关闭。

DestructiveRequiresName

Boolean

在删除索引时,是否需要明确指定索引名称。

对应的YAML文件的配置项为action.destructive_requires_name。

取值:

  • true(默认值):在删除索引时,需要明确指定索引名称。

  • false:在删除索引时,不需要明确指定索引名称。

说明

如果选择删除或关闭时索引名称支持通配符,则可以使用通配符进行批量删除索引。索引删除后不可恢复,请谨慎使用此配置。

AuditLog

Boolean

是否开启Auditlog索引。

取值:

  • true:开启。开启Auditlog索引后,系统会记录Elasticsearch实例对应的增、删、改、查等操作产生的审计日志,该日志信息会占用您的磁盘空间,同时也会影响性能。不建议开启,请谨慎使用此配置。

    更多信息,请参见配置Auditlog(审计日志)

  • false(默认值):关闭。

说明

Elasticsearch 7.0及以上版本暂不支持配置该参数。

OtherConfigs

Map

其他配置。

支持的部分配置项如下(以下配置项,如果没有标识Elasticsearch的适用版本,则默认兼容Elasticsearch 5.x、6.x和7.x版本):

  • 配置CORS访问

    • http.cors.enabled

    • http.cors.allow-origin

    • http.cors.max-age

    • http.cors.allow-methods

    • http.cors.allow-headers

    • http.cors.allow-credentials

  • 配置reindex白名单

    • reindex.remote.whitelist

  • 配置Auditlog(审计日志)

    • 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

  • 配置queue大小

    • thread_pool.bulk.queue_size(适用于Elasticsearch 5.x版本)

    • thread_pool.write.queue_size(适用于Elasticsearch 6.x及7.x版本)

    • thread_pool.search.queue_size

  • 自定义SQL插件配置

    xpack.sql.enabled:默认情况下Elasticsearch实例会启用X-Pack自带的SQL插件,如需上传自定义的SQL插件,请将xpack.sql.enabled设置为false。

KibanaNode语法

"KibanaNode": {
  "Spec": String
}

KibanaNode属性

属性名称

类型

必须

允许更新

描述

约束

Spec

String

专用Kibana节点规范。

返回值

Fn::GetAtt

  • Status:Elasticsearch实例的状态。

  • KibanaDomain:Kibana地址。

  • PublicDomain:实例的公网地址。

  • Domain:实例的内网地址。

  • InstanceId:Elasticsearch实例的ID。

  • KibanaPort:Kibana的访问端口。

  • Port:实例连接端口。

  • VSwitchId:交换机ID。

  • Version:实例版本。

  • InstanceChargeType:实例付费类型。

示例

YAML格式

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格式

{
  "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": {
  }
}