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

Syntax

{
  "Type": "ALIYUN::ElasticSearch::Instance",
  "Properties": {
    "KibanaWhitelist": List,
    "PublicWhitelist": List,
    "VSwitchId": String,
    "InstanceChargeType": String,
    "Period": Integer,
    "Version": String,
    "DataNode": Map,
    "PrivateWhitelist": List,
    "Password": String,
    "MasterNode": Map,
    "Description": String
  }
}

Properties

Name Type Required Editable Description Validity
KibanaWhitelist List No Yes The IP address whitelist for Kibana. None.
PublicWhitelist List No Yes The public IP address whitelist for the instance. None.
VSwitchId String Yes No The ID of the VSwitch. None.
InstanceChargeType String No No The billing method of the instance. Valid values: PrePaid and PostPaid.
Period Integer No No The subscription duration of the Elasticsearch instance. Unit: month. This parameter takes effect only when the InstanceChargeType parameter is set to PrePaid. Default value: 1. Valid values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, and 36.
Version String Yes No The version of the Elasticsearch instance. Valid values: 5.5.3_with_X-Pack, 6.3_with_X-Pack, and 6.7_with_X-Pack.
DataNode Map Yes Yes The data node of the Elasticsearch cluster. None.
PrivateWhitelist List No Yes The IP address whitelist for the instance in a VPC. None.
Password String Yes Yes The password of the instance. The password must be 8 to 32 characters in length and must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include ! @ # $ % & * ( ) _ + - = None.
MasterNode Map No Yes The master node of the instance. If this parameter is specified, a dedicated master node will be created. None.
Description String No Yes The description of the instance. The description can be up to 30 characters in length and can contain digits, letters, underscores (_), and hyphens (-). It must start with a digit or letter. None.

DataNode syntax

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

DataNode properties

Name Type Required Editable Description Validity
Amount Integer Yes Yes The number of data nodes in the Elasticsearch cluster. Valid values: 2 to 50. None.
DiskSize Integer Yes Yes The disk size of the data node. Unit: GiB. When the DiskType parameter is set to cloud_ssd, the maximum value is 2048. When the DiskType parameter is set to cloud_efficiency, the maximum value is 5120. When the DiskType parameter is set to cloud_efficiency and the size of data to be stored is greater than 2048 GiB, you can only set the following values for this parameter: 2560, 3072, 3584, 4096, 4608, and 5120. None.
Spec String Yes Yes The specification of the data node of the Elasticsearch instance. None.
DiskType String Yes Yes The disk type of the data node. Valid values: cloud_ssd and cloud_efficiency.

MasterNode syntax

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

MasterNode properties

Name Type Required Editable Description Validity
Amount Integer No Yes The number of master nodes. Default value: 3. None.
DiskSize Integer No No The disk size of the master node. Default value: 20. None.
Spec String Yes No The specification of the master node. None.
DiskType String No No The disk type of the master node. None.

Response parameters

Fn::GetAtt

  • Status: the status of the Elasticsearch instance, which can be active, activating, and inactive. Some requests may be denied if the instance is in the inactive state.
  • KibanaDomain: the domain name of the Kibana console. Access from the Internet is supported.
  • Domain: the domain name that is used to connect to the instance. Only access from VPCs is supported.
  • InstanceId: the ID of the Elasticsearch instance.
  • KibanaPort: the port that is used to connect to the Kibana console.
  • Port: the port that is used to connect to the instance.

Examples

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "Instance": {
      "Type": "ALIYUN::ElasticSearch::Instance",
      "Properties": {
        "PrivateWhitelist": {
          "Fn::Split": [
            ",",
            {
              "Ref": "PrivateWhitelist"
            }
          ]
        },
        "DataNode": {
          "Ref": "DataNode"
        },
        "PublicWhitelist": {
          "Fn::Split": [
            ",",
            {
              "Ref": "PublicWhitelist"
            }
          ]
        },
        "InstanceChargeType": {
          "Ref": "InstanceChargeType"
        },
        "Period": {
          "Ref": "Period"
        },
        "Version": {
          "Ref": "Version"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "KibanaWhitelist": {
          "Fn::Split": [
            ",",
            {
              "Ref": "KibanaWhitelist"
            }
          ]
        },
        "Password": {
          "Ref": "Password"
        },
        "MasterNode": {
          "Ref": "MasterNode"
        },
        "Description": {
          "Ref": "Description"
        }
      }
    }
  },
  "Parameters": {
    "PrivateWhitelist": {
      "Type": "CommaDelimitedList",
      "Description": "Set the instance's IP whitelist in VPC network."
    },
    "DataNode": {
      "Type": "Json",
      "Description": "The Elasticsearch cluster's data node setting."
    },
    "PublicWhitelist": {
      "Type": "CommaDelimitedList",
      "Description": "Set the instance's IP whitelist in Internet."
    },
    "InstanceChargeType": {
      "Default": "PostPaid",
      "Type": "String",
      "Description": "Valid values are PrePaid, PostPaid, Default to PostPaid.",
      "AllowedValues": [
        "PrePaid",
        "PostPaid"
      ]
    },
    "Period": {
      "Default": 1,
      "Type": "Number",
      "Description": "The duration that you will buy Elasticsearch instance (in month). It is valid when instance_charge_type is PrePaid. Valid values: [1~9], 12, 24, 36. Default to 1.",
      "AllowedValues": [
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        12,
        24,
        36
      ]
    },
    "Version": {
      "Type": "String",
      "Description": "Elasticsearch version. Supported values: 5.5.3_with_X-Pack, 6.3_with_X-Pack and 6.7_with_X-Pack.",
      "AllowedValues": [
        "5.5.3_with_X-Pack",
        "6.3_with_X-Pack",
        "6.7_with_X-Pack"
      ]
    },
    "VSwitchId": {
      "Type": "String",
      "Description": "The ID of VSwitch."
    },
    "KibanaWhitelist": {
      "Type": "CommaDelimitedList",
      "Description": "Set the Kibana's IP whitelist in internet network."
    },
    "Password": {
      "Type": "String",
      "Description": "The password of the instance. The password can be 8 to 32 characters in length and must contain three of the following conditions: uppercase letters, lowercase letters, numbers, and special characters (! @#$%&*()_+-=)."
    },
    "MasterNode": {
      "Type": "Json",
      "Description": "The dedicated master node setting. If specified, dedicated master node will be created."
    },
    "Description": {
      "Type": "String",
      "Description": "The description of instance. It a string of 0 to 30 characters. It can contain numbers, letters, underscores, (_) and hyphens (-). It must start with a letter, a number or Chinese character.",
      "MaxLength": 30
    }
  },
  "Outputs": {
    "Status": {
      "Description": "The Elasticsearch instance status. Includes active, activating, inactive. Some operations are denied when status is not active.",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "Status"
        ]
      }
    },
    "KibanaDomain": {
      "Description": "Kibana console domain (Internet access supported).",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "KibanaDomain"
        ]
      }
    },
    "Domain": {
      "Description": "Instance connection domain (only VPC network access supported).",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "Domain"
        ]
      }
    },
    "InstanceId": {
      "Description": "The ID of the Elasticsearch instance.",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "InstanceId"
        ]
      }
    },
    "KibanaPort": {
      "Description": "Kibana console port.",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "KibanaPort"
        ]
      }
    },
    "Port": {
      "Description": " Instance connection port.",
      "Value": {
        "Fn::GetAtt": [
          "Instance",
          "Port"
        ]
      }
    }
  }
}