Amazon ECS (Docker의 재 패키징)를 사용하고 있는데 ECS가 제공하지 않는 Docker 기능이 하나 있습니다. 즉, 인스턴스에서 여러 컨테이너를 실행하고 IP 주소 1로 들어오는 요청을 컨테이너 1에 매핑하고 IP 주소 2로 오는 요청을 컨테이너 2에 매핑하는 등을 원합니다.
Docker에서 컨테이너를 특정 IP 주소에 바인딩하는 것은 다음을 통해 수행됩니다.
docker run -p myHostIPAddr:80:8080 imageName command
그러나 Amazon ECS에는이를 수행 할 수있는 방법이 없습니다.
여러 개의 탄력적 IP 주소로 EC2 인스턴스를 설정했습니다. 작업 정의의 일부로 컨테이너를 구성 할 때 호스트 포트를 컨테이너 포트에 매핑 할 수 있습니다. 그러나 Docker와 달리 ECS는 매핑의 일부로 호스트 IP 주소를 지정하는 방법을 제공하지 않습니다.
컨테이너 N의 아웃 바운드 요청이 컨테이너 N의 외부 IP 주소를 갖기를 원합니다.
위의 모든 작업을 수행 할 수있는 방법이 있습니까?
AWS CLI 설명서와 Java 용 AWS SDK를 살펴 보았습니다. CLI가 다음과 같은 요소를 포함하는 networkBindings 배열을 반환 할 수 있음을 알 수 있습니다.
{
"bindIP": "0.0.0.0",
"containerPort": 8021,
"hostPort": 8021
},
Java SDK에는 동일한 정보를 나타내는 NetworkBinding이라는 클래스가 있습니다. 그러나이 정보는 요청에 대한 응답으로 출력 전용으로 나타납니다. 이 바인딩 정보를 ECS에 제공하는 방법을 찾을 수 없습니다.
내가 원하는 이유는 동일한 EC2 인스턴스에서 잠재적으로 다른 컨테이너를 사용하여 서로 다른 구성 요소에 대해 완전히 다른 VM을 설정하기 때문입니다. 각 VM에는 자체 웹 서버 (고유 SSL 인증서 포함)와 자체 FTP 및 SSH 서비스가 있습니다.
감사.
aws ecs describe-container-instances
도움이되지 않는 것 같습니다. 그들은 정말로 당신에게 ELB를 사용하도록 강요하고 싶습니다. 우리의 경우에는 바보입니다.