2 votes

Comment SSH dans AWS ECS Fargate avec plusieurs conteneurs ?

Je fais quelques expériences avec ECS Fargate. Je suis tombé sur une situation où j'ai trois conteneurs fonctionnant sur la même tâche. Y a-t-il un moyen pour moi de me connecter à ces trois conteneurs ?

Après quelques recherches, j'ai découvert que c'était possible si je n'avais qu'un seul conteneur, aquí . Mais je n'ai trouvé nulle part comment le faire lorsque plusieurs conteneurs sont exécutés dans la même tâche. Je me demande si cela est possible. Peut-être que Fargate n'est pas pour moi et que je dois opter pour ECS EC2.

Note : Je dois exécuter manuellement certains scripts php de temps en temps, c'est pourquoi j'ai besoin d'entrer dans ces conteneurs.

1voto

spark Points 31

Je n'ai pas trouvé d'autre moyen de résoudre le problème, puisque je ne peux pas avoir trois conteneurs dans la même tâche exposant 22, j'ai dû mettre à jour le port utilisé pour ssh de 22 à 2222, 2223 (tout autre port) tout en construisant les deux autres conteneurs.

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

0voto

nathanpeck Points 26

Note : Je dois exécuter manuellement certains scripts php de temps en temps, c'est pourquoi j'ai besoin d'entrer dans ces conteneurs.

Dans ce contexte, je suggère d'utiliser Tâches cron programmées de l'ECS pour exécuter ces scripts si vous devez les exécuter selon un programme régulier.

Si vous les exécutez de manière plus ponctuelle plutôt que selon un calendrier, je recommanderais de retirer le script dans son propre conteneur qui peut être exécuté à l'aide de la commande API ECS RunTask

N'ayez pas peur d'utiliser plus de conteneurs. En général, l'utilisation idéale des conteneurs est un processus ou un travail par conteneur. Si vous avez plusieurs types de tâches, exécutez plusieurs types de conteneurs.

L'idéal serait également d'avoir une définition de tâche pour chaque type de conteneur. Donc, peut-être :

  1. conteneur de site web -> définition de la tâche du site web -> lancement de la définition de la tâche en tant que service ECS
  2. conteneur d'api -> définition de la tâche d'api -> lancement de la définition de la tâche comme son propre service ECS
  3. Conteneur PHP script -> définition de la tâche script -> utiliser ECS RunTask pour exécuter cette tâche script (ou la programmer pour qu'elle s'exécute automatiquement et périodiquement sur un programme cron).

Je ne sais pas à quoi ressemblent vos charges de travail spécifiques, mais j'espère que cela vous servira d'exemple et que si vous avez trois choses, elles devraient idéalement être trois conteneurs différents, trois définitions de tâches et trois services/tâches ECS distincts.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X