का उपयोग कर ईसी 2 पर चल रहे जावा इंस्टेंस से कनेक्ट करने के लिए हमें अमेज़ॅन के ईसी 2 क्लस्टर में चल रहे हमारे जावा एप्लिकेशन से कनेक्ट करने में समस्या हो रही है। हमने निश्चित रूप से "जेएमएक्स पोर्ट" (जो आमतौर पर आरएमआई रजिस्ट्री पोर्ट है) और सर्वर पोर्ट (जो अधिकांश काम करता है) दोनों को सुरक्षा-समूह में प्रश्नों के उदाहरणों के लिए अनुमति दी है। Jconsole कनेक्ट करता है लेकिन लटका लगता है और कभी भी कोई जानकारी नहीं दिखाता है। बंदरगाहों कोजेएमएक्स
- Telnets कनेक्ट लेकिन कोई जानकारी प्रदर्शित होता है:
हम निम्नलिखित की तरह कुछ के साथ हमारे जावा चल रहे हैं:
java -server -jar foo.jar other parameters here > java.log 2>&1
हम कोशिश की है।
- हम उदाहरण के लिए
jconsole
चला सकते हैं उदाहरण के लिए रिमोट-एक्स 11 एसएसएच का उपयोग करके और यह जानकारी को जोड़ता है और दिखाता है। तो जेआरई स्थानीय रूप से निर्यात कर रहा है। - सुरक्षा समूह में सभी बंदरगाहों को खोलना। Weeee।
- यह सुनिश्चित करने के लिए
tcpdump
का उपयोग करके यातायात अन्य बंदरगाहों पर नहीं जा रहा है। - इसे स्थानीय रूप से सिमुलेट करना। हम हमेशा हमारे स्थानीय जेआरई या उसी एप्लिकेशन पैरामीटर का उपयोग करके हमारे नेटवर्क पर कहीं और चल रहे लोगों से जुड़ सकते हैं।
java -version
आउटपुट:
OpenJDK Runtime Environment (IcedTea6 1.11.5) (amazon-53.1.11.5.47.amzn1-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
एक के रूप में एक तरफ, हम मेरी Simple JMX पैकेज जो हमें स्थापित करने के लिए अनुमति देता है का उपयोग कर रहे दोनों RMI रजिस्ट्री और सर्वर बंदरगाहों जो आम तौर पर अर्द्ध बेतरतीब ढंग से RMI द्वारा चुना जाता है रजिस्ट्री। आप निम्न JMX यूआरआई की तरह कुछ के साथ इस के लिए मजबूर कर सकते हैं:
service:jmx:rmi://localhost:" + serverPort + "/jndi/rmi://:" + registryPort + "/jmxrmi"
इन दिनों हम दोनों सर्वर और रजिस्ट्री के लिए एक ही बंदरगाह का उपयोग करें। अतीत में हमने सुरक्षा-समूह नियमों को आसान बनाने के लिए सर्वर-पोर्ट के लिए रजिस्ट्री-पोर्ट और X+1
के रूप में X
का उपयोग किया है। आप रजिस्ट्री-पोर्ट से jconsole
या जो भी जेएमएक्स क्लाइंट आप उपयोग कर रहे हैं उससे कनेक्ट हैं।
पर नियंत्रण करने के लिए आप कौन से टैग निर्धारित करने के लिए एक DescribeInstances कॉल जारी कर सकते हैं यदि आपको वास्तव में आवश्यकता है (उदा। ईसी 2 कमांड लाइन उपयोगिताओं के माध्यम से), लेकिन उपयोगकर्ता डेटा के माध्यम से एक उदाहरण के लिए कॉन्फ़िगरेशन जानकारी संवाद करने के लिए यह बेहतर अभ्यास है। – willglynn
धन्यवाद @ विल्ग्लिन। मैं अपने उदाहरण में अपनी एक्सेस/गुप्त कुंजी जोड़ने के लिए टैग _without_ प्राप्त करने की उम्मीद कर रहा था। हाँ, अब हम UserData का उपयोग करते हैं, लेकिन मैं इसके बजाय 'key = value' प्रकार की सामग्री होगी ताकि ops टाइपो नहीं बनाये। – Gray
एक ही उदाहरण मेटाडेटा चैनल पर स्वचालित रूप से एडब्ल्यूएस प्रमाण-पत्रों को उत्पन्न करने और वितरित करने के लिए एक तंत्र है: देखें [ईसी 2 उदाहरणों के लिए आईएएम भूमिकाएं] (http://aws.typepad.com/aws/2012/06/iam-roles-for-ec2 -instances सरलीकृत-सुरक्षित का उपयोग करने के लिए एडब्ल्यूएस-सेवा-API- से-ec2.html)। आप EC2 DescribeInstances एक्सेस तक सीमित भूमिका निभा सकते हैं, जिससे आप क्रेडेंशियल्स प्रबंधन से पागल होने के बिना सबकुछ स्वचालित कर सकते हैं। – willglynn