मैं अमेज़ॅन ईसीएस (डॉकटर का पुन: लाभ) के साथ खेल रहा हूं और मुझे पता चल रहा है कि एक डॉकर क्षमता है जिसे ईसीएस प्रदान नहीं करता है। अर्थात्, मैं एक उदाहरण में कई कंटेनरों को चलाना चाहूंगा, और अनुरोधों को आईपी पते 1 कंटेनर 1 में आ रहा हूं, और आईपी पते 2 मैप कंटेनर 2 पर आने का अनुरोध करता हूं, आदि।
डॉकर में, कंटेनर को एक विशिष्ट आईपी पते से बांधना होता है:
docker run -p myHostIPAddr:80:8080 imageName command
हालाँकि, Amazon ECS में, ऐसा करने का कोई तरीका प्रतीत नहीं होता है।
मैंने कई लोचदार IP पतों के साथ EC2 उदाहरण स्थापित किया है। जब एक कंटेनर को कार्य परिभाषा के भाग के रूप में कॉन्फ़िगर किया जाता है, तो कंटेनर पोर्ट में होस्ट पोर्ट को मैप करना संभव है। हालांकि, डॉकर के विपरीत, ईसीएस मैपिंग के हिस्से के रूप में होस्ट आईपी पते को निर्दिष्ट करने का एक तरीका प्रदान नहीं करता है।
एक अतिरिक्त मोड़ यह है कि मैं कंटेनर एन से कंटेनर एन के बाहरी आईपी पते के आउटबाउंड अनुरोध करना चाहूंगा।
क्या उपरोक्त सभी करने का कोई तरीका है?
मैंने AWS सीएलआई प्रलेखन के साथ-साथ जावा के लिए AWS SDK को देखा है। मैं देख सकता हूं कि सीएलआई एक नेटवर्कबाइंडिंग सरणी वापस कर सकता है जिसमें इस तरह के तत्व हैं:
{
"bindIP": "0.0.0.0",
"containerPort": 8021,
"hostPort": 8021
},
और जावा एसडीके में नेटवर्कबाइंडिंग नामक एक वर्ग है जो समान जानकारी का प्रतिनिधित्व करता है। हालाँकि, यह जानकारी केवल अनुरोध के जवाब में आउटपुट-प्रतीत होती है। मुझे ECS को यह बाध्यकारी जानकारी प्रदान करने का कोई तरीका नहीं मिल रहा है।
इसका कारण यह है कि मैं यह करना चाहता हूं कि मैं एक ही EC2 उदाहरण पर संभावित रूप से विभिन्न कंटेनरों का उपयोग करके, विभिन्न निर्वाचन क्षेत्रों के लिए पूरी तरह से अलग वीएम सेट करना चाहता हूं। प्रत्येक वीएम का अपना एक वेब सर्वर (अलग एसएसएल प्रमाणपत्र सहित) होगा, साथ ही साथ इसकी अपनी एफ़टीपी और एसएसएच सेवा भी होगी।
धन्यवाद।
aws ecs describe-container-instances
मदद करने के लिए प्रतीत नहीं होता। वे वास्तव में आपको एक ईएलबी का उपयोग करने के लिए धक्का देना चाहते हैं, जो हमारे मामले के लिए गूंगा है।