[英]Deploy ElasticSearch Docker Container to AWS Fargate
我正在尝试将非自定义单节点 elasticsearch:7.8.1 docker 容器部署到 AWS ECS Fargate。
在我的本地我只是执行:
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.8.1
它为我启动了我的应用程序使用的 ES 容器。 我想要在云中使用相同的容器。
我该怎么做?
更新:我能够将 ES 部署到 Fargate,但尝试访问它失败并显示错误消息:
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
经过简短的谷歌搜索后,我发现了这篇文章,他们通过打开单节点模式解决了这个问题。 我不太明白如何在 Fargate 中打开它,是在任务定义中还是如何打开它?
另一个问题是在 AWS 中运行 ES 的最常见方式是什么? 在 EC2 或 AWS ES 服务中? 我的目标是尽快设置基础设施。 我使用弹性搜索在 docker 中运行了 .net 核心应用程序。
回复最新评论。 不,您只需在提供给 AWS Fargate 的 Docker-compose.yml 文件中提供来自镜像注册表(如 Docker Hub)的公共 Elasticsearch 镜像地址。 例如: image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
。
您可以通过设置 ulimits 解决第一个问题——我使用的是 Terraform 中的任务定义:
ulimits = [
{
name = "nofile"
softLimit = 65535
hardLimit = 65535
}]
对于vm.max_map_count
,您可以通过将ES_SETTING_NODE_STORE_ALLOW__MMAP
设置为false
来禁用检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.