【问题标题】:Deploy ElasticSearch Docker Container to AWS Fargate将 ElasticSearch Docker 容器部署到 AWS Fargate
【发布时间】:2026-02-12 17:45:01
【问题描述】:

我正在尝试将非自定义单节点 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

经过短暂的谷歌搜索后,我找到了this post,他们通过打开单节点模式解决了这个问题。我不太明白如何在 Fargate 中打开它,是在任务定义中还是如何?

另一个问题是在 AWS 中运行 ES 的最常见方式是什么?在 EC2 或 AWS ES 服务中?我的目标是尽可能快地设置基础设施。我使用弹性搜索在 docker 中运行了 .net 核心应用程序。

【问题讨论】:

  • 这听起来像是一个非常基本的问题,可以通过阅读 AWS Farget 文档 (docs.aws.amazon.com/AmazonECS/latest/developerguide/…) 轻松回答 - 也许您可以先尝试一下,然后再在这里提问?还是您在尝试时遇到了特定问题?
  • 是否需要获取elasticsearch并将其推送到ecr才能部署到fargate?但是我根本没有更改 ES docker 中的任何内容

标签: docker elasticsearch amazon-ecs aws-fargate


【解决方案1】:

回复最新评论。不,您只需在提供给 AWS Fargate 的 Docker-compose.yml 文件中提供来自镜像注册表(如 Docker Hub)的公共 Elasticsearch 镜像地址。例如:image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0

【讨论】: