Je joue avec Amazon ECS (un reconditionnement de Docker) et je trouve qu'il n'y a qu'une capacité Docker que ECS ne semble pas fournir. À savoir, je voudrais que plusieurs conteneurs s'exécutent dans une instance, et que les demandes entrant dans l'adresse IP 1 mappent vers le conteneur 1, et les demandes venant vers l'adresse IP 2 mappent vers le conteneur 2, etc.
Dans Docker, la liaison d'un conteneur à une adresse IP spécifique se fait via:
docker run -p myHostIPAddr:80:8080 imageName command
Cependant, dans Amazon ECS, il ne semble pas y avoir de moyen de le faire.
J'ai configuré une instance EC2 avec plusieurs adresses IP Elastic. Lors de la configuration d'un conteneur dans le cadre d'une définition de tâche, il est possible de mapper des ports hôtes à des ports conteneurs. Cependant, contrairement à Docker, ECS ne fournit aucun moyen de spécifier l'adresse IP de l'hôte dans le cadre du mappage.
Une autre torsion est que je voudrais que les requêtes sortantes du conteneur N aient l'adresse IP externe du conteneur N.
Existe-t-il un moyen de faire tout ce qui précède?
J'ai parcouru la documentation de l'AWS CLI, ainsi que le kit AWS SDK pour Java. Je peux voir que la CLI peut renvoyer un tableau networkBindings contenant des éléments comme celui-ci:
{
"bindIP": "0.0.0.0",
"containerPort": 8021,
"hostPort": 8021
},
et le SDK Java possède une classe nommée NetworkBinding qui représente les mêmes informations. Cependant, ces informations semblent être uniquement en sortie, en réponse à une demande. Je ne trouve aucun moyen de fournir ces informations de liaison à ECS.
La raison pour laquelle je veux le faire est que je veux configurer des machines virtuelles complètement différentes pour différentes circonscriptions, en utilisant différents conteneurs potentiellement sur la même instance EC2. Chaque machine virtuelle aurait son propre serveur Web (y compris des certificats SSL distincts), ainsi que son propre service FTP et SSH.
Merci.
aws ecs describe-container-instances
ne semble pas aider. Ils semblent vraiment vouloir vous pousser à utiliser un ELB, ce qui dans notre cas est un peu stupide.