Amazon ECS ile oynuyorum (Docker'ın yeniden paketlenmesi) ve ECS'nin sağlamadığı bir Docker yeteneği olduğunu buluyorum. Yani, bir örnekte birden fazla konteynerin çalışmasını ve IP adresi 1 eşlemesini konteyner 1'e gelmesini talep ediyorum ve IP adresi 2'ye eşleştirmeyi talep ediyorum, konteyner 2'ye vs.
Docker'da, bir konteynerin belirli bir IP adresine bağlanması şu şekilde yapılır:
docker run -p myHostIPAddr:80:8080 imageName command
Ancak, Amazon ECS'de bunu yapmanın bir yolu yok gibi görünüyor.
Birden fazla Elastik IP adresi olan bir EC2 örneği kurdum. Bir kabı görev tanımının bir parçası olarak yapılandırırken, ana bilgisayar bağlantı noktalarını taşıyıcı bağlantı noktalarıyla eşleştirmek mümkündür. Bununla birlikte, Docker'dan farklı olarak ECS, ana bilgisayar IP adresini eşlemenin bir parçası olarak belirtmenin bir yolunu sunmaz.
Ek bir bükülme, N kapsayıcısının dış taleplerinin N kapsayıcısının dış IP adresine sahip olmasını istememdir.
Yukarıdakilerin hepsini yapmanın bir yolu var mı?
AWS CLI belgelerine ve Java için AWS SDK'ya baktım. CLI'nin bunun gibi öğeleri içeren bir networkBindings dizisi döndürdüğünü görebiliyorum:
{
"bindIP": "0.0.0.0",
"containerPort": 8021,
"hostPort": 8021
},
ve Java SDK, aynı bilgiyi temsil eden NetworkBinding adında bir sınıfa sahiptir. Ancak, bir talebe cevaben bu bilgi sadece çıktı olarak görünmektedir. ECS'ye bu bağlayıcı bilgiyi sağlamanın bir yolunu bulamıyorum.
Bunu yapmak istememin nedeni, aynı EC2 örneğinde potansiyel olarak farklı kaplar kullanarak farklı seçmenler için tamamen farklı sanal makineler kurmak istemem. Her VM kendi web sunucusuna (farklı SSL sertifikaları dahil) ve kendi FTP ve SSH servisine sahip olacaktır.
Teşekkürler.
aws ecs describe-container-instances
yardımcı görünmüyor. Sizi gerçekten bir aptal olan bir ELB kullanmaya zorlamak istiyorlar gibi görünüyor.