AWS 部署

AWS 部署指南 #

本文介绍在 AWS EC2 上部署 Easysearch 集群的推荐配置与实践。

推荐实例类型 #

节点角色实例族规格示例说明
Master(专用)m6i / m7im6i.xlarge (4C16G)轻量计算
Datai3 / i3eni3.2xlarge (8C61G)本地 NVMe SSD
Data(EBS 方案)r6i / r7ir6i.4xlarge (16C128G)搭配 gp3/io2
Coordinatingc6i / c7ic6i.2xlarge (8C16G)按查询并发酌情添加

生产环境至少 3 节点,跨 AZ 部署。

存储选择 #

存储类型IOPS适用场景
实例存储 NVMe (i3)极高高写入吞吐(注意:实例停止后数据丢失)
gp316,000 (可配置)通用生产,性价比高
io264,000低延迟搜索
st1500冷数据 / 日志归档

gp3 配置建议:

卷大小: 按需
IOPS: 6000+(搜索场景建议 10000+)
吞吐量: 250+ MB/s

网络配置 #

VPC 与安全组 #

VPC CIDR: 10.0.0.0/16
子网:
  - 10.0.1.0/24 (AZ-a)
  - 10.0.2.0/24 (AZ-b)
  - 10.0.3.0/24 (AZ-c)

安全组 Inbound Rules:

PortSourceDescription
9200App Security GroupREST API
9300ES Security GroupNode Transport
22Bastion SGSSH

跨 AZ 部署 #

# node-1 (AZ-a)
node.attr.zone: us-east-1a

# node-2 (AZ-b)
node.attr.zone: us-east-1b

# node-3 (AZ-c)
node.attr.zone: us-east-1c
cluster.routing.allocation.awareness.attributes: zone

注意:跨 AZ 流量会产生额外费用,评估数据量与副本策略。

安装步骤 #

# 1. 系统调优
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo swapoff -a
ulimit -n 65535

# 2. 格式化并挂载数据盘(EBS gp3 示例)
sudo mkfs.xfs /dev/nvme1n1
sudo mkdir -p /data
sudo mount -o noatime /dev/nvme1n1 /data
echo "/dev/nvme1n1 /data xfs noatime 0 0" | sudo tee -a /etc/fstab

# 3. 创建用户
sudo groupadd -g 602 easysearch
sudo useradd -u 602 -g easysearch -m easysearch

# 4. 安装 Easysearch
curl -sSL http://get.infini.cloud | bash -s -- -p easysearch

# 5. 配置 JVM
sudo ln -s /usr/lib/jvm/java-17 /data/easysearch/jdk

# 6. 修改 easysearch.yml(见上方节点配置)

# 7. 初始化并启动
cd /data/easysearch
sudo bin/initialize.sh -s
sudo chown -R easysearch:easysearch /data/easysearch
sudo -u easysearch bin/easysearch -d

备份到 S3 #

PUT _snapshot/s3_backup
{
  "type": "fs",
  "settings": {
    "location": "/mnt/s3-backup/easysearch"
  }
}

可通过 s3fs-fuse 挂载 S3 bucket,或使用 Easysearch 的 S3 快照仓库插件。详见 S3 备份

延伸阅读 #