【问题标题】:How to SSH into AWS ECS Fargate with multiple containers?如何使用多个容器通过 SSH 连接到 AWS ECS Fargate?
【发布时间】:2020-09-20 13:21:08
【问题描述】:

我正在对 ECS Fargate 进行一些试验。我遇到了一种情况,我在同一个任务上运行了三个容器。有什么方法可以 ssh 进入这三个容器?

经过一番挖掘,我发现如果我只有一个容器 here 是可能的。但是当您在同一个任务中运行多个容器时,我无处可寻。我想知道这是否可能。也许 Fargate 不适合我,我必须使用 ECS EC2。

注意:我必须不时手动运行一些 php 脚本,这就是我需要进入这些容器的原因。

【问题讨论】:

标签: amazon-web-services amazon-ecs aws-fargate


【解决方案1】:

我找不到任何其他方法来解决这个问题,因为我不能在同一个任务中使用三个容器来暴露 22,我必须将用于 ssh 的端口从 22 更新为 2222、2223(任何其他端口),同时构建另外两个容器。

RUN sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config

【讨论】:

    【解决方案2】:

    注意:我必须不时手动运行一些 php 脚本,这就是为什么 我需要进入这些容器。

    在这种情况下,如果您需要定期运行这些脚本,我的建议是使用ECS scheduled cron tasks 来执行这些脚本。

    如果您更多地运行它们而不是按日历时间表运行它们,我建议您将脚本拉出到可以使用 ECS RunTask API 运行的自己的容器中

    不要害怕运行更多容器。一般来说,容器的理想用法是每个容器一个进程或一个作业。如果您有多种类型的作业,请运行多种类型的容器。

    理想情况下,您还可以为每种容器类型定义一个任务。所以也许:

    1. 网站容器 -> 网站任务定义 -> 启动任务定义为 ECS 服务
    2. api容器->api任务定义->启动任务定义为自己的ECS服务
    3. PHP 脚本容器 -> 脚本任务定义 -> 使用 ECS RunTask 执行该脚本任务(或将其安排为按 cron 计划定期自动执行)

    我不知道你的具体工作负载是什么样的,但希望这可以作为一个例子,如果你有三样东西,它们最好是三个不同的容器、三个任务定义和三个独立的 ECS 服务/任务

    【讨论】:

      猜你喜欢
      • 2022-06-28
      • 2022-07-07
      • 2021-01-24
      • 1970-01-01
      • 2016-11-08
      • 2021-01-23
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多