2011-02-01 11 views
11

मैं क्लाउड पर जावा में लिखे एक सर्वर प्रोग्राम को रखना चाहता हूं। यह ग्राहकों से टीसीपी सॉकेट कनेक्शन स्वीकार करेगा (क्लाइंट 3 जी का उपयोग कर एंड्रॉइड फोन हैं), कुछ कंप्यूटेशंस करें, एक MySQL डेटाबेस (ईसी 2 पर भी) को सामान सहेजें, और टीसीपी कनेक्शन पर ग्राहकों को सामान वापस भेजें। सर्वर के कई उदाहरण (यानी एक प्रक्रिया समूह) बनाने के लिए भी आवश्यक हो सकता है।अमेज़ॅन के ईसी 2 पर जावा सर्वर कैसे चलाएं?

क्या यह करना आसान है? मुझे लगता है कि मैं एक एएमआई कर सकते हैं, लेकिन मैं जावा फ़ाइलों को अपलोड करने के लिए कैसे, संकलन और उन्हें चलाने के लिए, और एक MySQL डेटाबेस आदि

किसी भी मदद की बहुत सराहना की जाएगी बनाने यकीन नहीं है।

+1

ईसी 2 इंस्टेंस का बहाना एक वास्तविक सर्वर है, क्योंकि यह बिल्कुल ठीक है कि आप इसके साथ कैसे बातचीत करते हैं। जब आप फ़ाइलों को अपलोड करना सीखते हैं, उन्हें संकलित करते हैं और उन्हें चलाते हैं, तो "ईसी 2 पर संकलन कैसे करें" खोज न करें - तथ्य यह है कि आप ईसी 2 से अपना 'सर्वर' किराए पर लेते हैं, यह अप्रासंगिक है। –

+1

जिस सर्वर का मैं प्रतिबिंबित कर रहा हूं वह सिर्फ एक ऐसा एप्लिकेशन है जो एक बंदरगाह पर आने वाले कनेक्शन के लिए सुनता है, और कुछ काम करता है जो थ्रेड बनाता है (इसलिए मुझे यकीन नहीं है कि टॉमकैट समीकरण में आता है)।साथ ही, मुझे यकीन नहीं है कि कोई क्लाइंट सॉकेट से कैसे कनेक्ट होगा: आपको एक आईपी पता और एक बंदरगाह की आवश्यकता है, तो क्या आपको एएमआई के लिए आईपी पता मिलता है जैसे आप स्थानीय मशीन पर वीएम प्राप्त करेंगे? कृपया मेरी अज्ञानता क्षमा करें। जवाब के लिए धन्यवाद, वैसे! – foxy

+0

जब आप अमेज़ॅन में अपना उदाहरण बनाते हैं तो आपको क्लाउड में अपने सर्वर के लिए एक आईपी पता मिलता है। – Speck

उत्तर

1

आप किसी सर्वर को दूरस्थ रूप से प्रशासित करने और समस्याओं को हल करने के लिए कितने आरामदायक हैं, जिन लोगों ने कभी नहीं सुना है? यही वह बात है जिसके बारे में आप बात कर रहे हैं।

आप अपना ईसी 2 उदाहरण बनायेंगे, इसमें लॉग इन करें और इसे कॉन्फ़िगर करें जैसे आप किसी भी अन्य सर्वर के साथ काम कर रहे हैं। आप जेडीके को डाउनलोड कर सकते हैं, डीबीएस इत्यादि। आप मदद करने के लिए शेफ जैसे टूल का उपयोग करने पर विचार कर सकते हैं। सर्वर पर फ़ाइलों की प्रतिलिपि बनाने के लिए आप ftp और scp का उपयोग करेंगे।

शायद आप अपने जावा सर्वर को एक बॉक्स पर चाहते हैं और यह एक अलग डीबी सर्वर से बात करें क्योंकि आप कहते हैं कि आप एकाधिक सर्वर चाहते हैं।

एक बार सर्वर आपकी पसंद के अनुसार आप एक छवि का यह कई उदाहरण लांच करने के लिए उपयोग करने के लिए बना सकते हैं काम कर रहा है, तो अपने सर्वर पर बात करने के लिए एक लोड संतुलन कॉन्फ़िगर करें।

यदि आप अपने स्थानीय बॉक्स पर एक MySQL डीबी बना सकते हैं तो आप इसे क्लाउड में बना सकते हैं। यदि नहीं? ....

3

यह करने के लिए आसान है? मुझे लगता है मैं एक एएमआई, ...

कर सकते हैं मुझे लगता है कि इस सवाल का जवाब कैसे आराम से आप सामान्य रूप में सिस्टम प्रशासन के साथ कर रहे हैं पर निर्भर करता है। ईसी 2 में चलाने के लिए एएमआई बनाना वास्तव में एक भौतिक सर्वर या वीएम छवि बनाने जैसा ही है। आपको एक ऑपरेटिंग सिस्टम स्थापित करने की आवश्यकता होगी, और उसके बाद आपको आवश्यक उपकरण, पुस्तकालय और प्रोग्राम इंस्टॉल करें (जैसे mysql, jdk, ssh, आदि)।

आप अपने आप को अमेज़न के पहले से बने एएमआई के http://aws.amazon.com/amis/ में से एक का उपयोग करके एक छोटे से काम बचा सकता है। लेकिन, अंततः, आप सर्वर के सभी सिस्टम प्रशासन के लिए जिम्मेदार होंगे। यदि आपने कभी भी जमीन से सर्वर नहीं बनाया है, तो आपके पास एक बहुत बड़ा सीखने वाला वक्र है। यह दुर्बल नहीं है, लेकिन केवल चेतावनी दी जानी चाहिए कि शैतान विवरण में है; वहाँ आप ;-)

जानने के लिए की आवश्यकता होगी सामान की एक टन है ... लेकिन मैं जावा फ़ाइलों को अपलोड करने के लिए कैसे, संकलन और उन्हें चलाने यकीन नहीं है, ...

एक बार जब सर्वर सेटअप और ईसी 2 में चल रहा है, तो उन्हें संकलित करना और जावा फाइलें चलाना आपके स्थानीय पर संकलन और चलने जैसा ही है। आम तौर पर, आप शायद अपने जावा ऐप को एक जार या युद्ध में संकलित और पैकेज करना चाहते हैं और फिर इसे अपने ईसी 2 सर्वर पर स्थानांतरित करना चाहते हैं। यदि आप अपने ईसी 2 सर्वर पर लिनक्स ओएस इंस्टॉल करते हैं, तो आप फ़ाइलों को अपने स्थानीय सर्वर से सर्वर पर ले जाने के लिए एसएफटीपी पर अपनी फ़ाइलों को स्थानांतरित करने के लिए एसपीपी या एफ़टीपी क्लाइंट का उपयोग कर सकते हैं। एक बार आपके सर्वर पर नवीनतम फाइलें हो जाने के बाद, आप सर्वर पर ssh कर सकते हैं और अपना ऐप शुरू कर सकते हैं।

... और एक MySQL डेटाबेस आदि बनाने के ...

mysql स्थापित करना आपके सर्वर पर स्थापित करने के लिए चुनने वाले ओएस के लिए विशिष्ट होगा। फिर

sudo aptitude install mysql 

, अधिक प्रणाली-व्यवस्थापक प्रकार सामान यहाँ mysql डेटाबेस के लिए विशिष्ट जानने के लिए वहाँ हो जाएगा: उदाहरण के लिए, आप mysql Ubuntu पर आसानी से की तरह कमांड के साथ स्थापित कर सकते हैं।

तो, यह निश्चित रूप से करने योग्य है। एक अनुभवी sys व्यवस्थापक एक एएमआई उदाहरण बहुत आसानी से/जल्दी बना सकता है। यदि यह सिस्टम प्रशासन के साथ आपका पहला अनुभव है, तो मैं सुझाव देता हूं कि आप एक पुराने डेस्कटॉप को ढूंढ रहे हैं जो आप झूठ बोल रहे हैं और उबंटू और सभी आवश्यक पुस्तकालयों और उपकरणों को स्थापित करने का प्रयास करें (mysql, jdk, ssh, आदि ..)। अपने जावा प्रोग्राम को पुराने डेस्कटॉप पर काम कर लें और उसके बाद से एएमआई बनाना बहुत आसान होना चाहिए। फिर आप ईसी 2 पर अपना कस्टम एएमआई चला सकते हैं और स्थापित किए जाएंगे।

यदि आपके पास एक अतिरिक्त डेस्कटॉप नहीं है, तो आप वर्चुअल मशीन उत्पादों जैसे वीएमवेयर प्लेयर या सन वर्चुअलबॉक्स का उपयोग कर सकते हैं और इनमें से एक पर सर्वर इंस्टेंस बना सकते हैं।

यदि आप ऑपरेटिंग सिस्टम के पूरे इंस्टॉलेशन को प्रबंधित करने की परेशानी से बचना चाहते हैं, तो आप ईसी 2 के बजाय स्लाइसहोस्ट और/या लिनोड जैसी सेवाओं को देखना चाहेंगे। वे आपको पूर्व-स्थापित सर्वर पर एसएसएच पहुंच देते हैं। और यह MySQL, आदि जैसे प्रोग्राम इंस्टॉल करने के लिए बटन पर क्लिक करना जितना आसान है

आशा है कि यह उत्तर प्रासंगिक और सहायक, शुभकामनाएं है। - डेव

+0

को प्रशासित करने के लिए आप बॉक्स में लॉग इन करने के लिए उस आईपी का उपयोग करते हैं, इसलिए मुझे लगता है कि मैं इस पर सभी सॉफ़्टवेयर के साथ एएमआई बना सकता हूं: - जावा: कोई समस्या नहीं - MySQL: सुनिश्चित नहीं है, टर्मिनल के माध्यम से ऐसा करना ठीक है दूर से। - मेरा जावा कोड (यानी मेरा सर्वर प्रोसेस (एसएस)), सर्वर डेटाबेस द्वारा उपयोग की जाने वाली डेटाबेस रैपर जावा क्लास के साथ डेटाबेस तक पहुंचने के लिए प्रक्रिया करता है (एक डेटाबेस, शायद इसे एक्सेस करने वाली एक से अधिक सर्वर प्रक्रिया)। – foxy

+0

बहुत अच्छा। हाँ, टर्मिनल के माध्यम से दूरस्थ रूप से mysql को स्थापित और कॉन्फ़िगर करना संभव है। आप किस एएमआई से शुरू कर रहे हैं (कौन सा ओएस)? – Upgradingdave

+0

आपके उत्तर के लिए धन्यवाद, डेव। सुनिश्चित नहीं है कि ओएस, शायद लिनक्स क्या है। सोचें कि हमें जावा सर्वर और डीबी के साथ एएमआई की आवश्यकता होगी, और इस एएमआई को दो बार गलती के लिए दोहराएं। दो सर्वर प्रक्रियाएं एक प्रक्रिया समूह बनाती हैं, और 3 जी से अधिक ग्राहकों (एंड्रॉइड फोन) से संदेश इस समूह में मल्टीकास्ट होंगे। यह इस चरण में थोड़ा ऊनी है, लेकिन यह ऐसा कुछ है - जटिल! – foxy

2

यदि आप अपने सर्वर के रूप में टोमकैट का उपयोग कर सकते हैं - तो आप Amazon Web Services Elastic Beanstalk को आजमा सकते हैं यह तैनात करने के लिए टोमकैट का एक आसान उदाहरण प्रदान करके आपके कार्य को बहुत सरल बना देगा।

संपादित करें: http://aws.amazon.com/java/

+0

क्लाउडकैट (http://www.mulesoft.com/cloudcat-apache-tomcat-cloud) को भी देखें – Ken

14

Amazon Elastic Beanstalk का उपयोग कर पर एक नज़र डालें: एडब्ल्यूएस कैसे यहाँ जावा का उपयोग कर विकसित करने के लिए पर एक पूर्ण खंड है। Beanstalk अमेज़ॅन की PaaS पेशकश है और यह सिस्टम प्रशासन बोझ को बहुत कम कर देगा। यहाँ उनके डॉक्स से एक त्वरित विवरण दिया गया है:

एडब्ल्यूएस लचीला बीनस्टॉक एक और भी आसान तरीका आप जल्दी से तैनाती और एडब्ल्यूएस बादल में अनुप्रयोगों का प्रबंधन करने के लिए है। आप बस अपना एप्लिकेशन अपलोड करें, और लोचदार बीनस्टॉक स्वचालित रूप से तैनाती क्षमता प्रावधान के विवरण, लोड संतुलन, ऑटो-स्केलिंग, और एप्लिकेशन स्वास्थ्य निगरानी को लोड करता है।

इसके अलावा, यदि आप MySQL का उपयोग करने में रुचि रखते हैं तो आपको Amazon RDS पर देखना चाहिए। फिर, यह आपके डेटाबेस स्तर के लिए सिस्टम प्रशासन बोझ को कम करेगा।

अमेज़न रिलेशनल डेटाबेस सेवा (अमेज़न आरडीएस) एक वेब सेवा है कि इसके सेट अप संचालित करने के लिए आसान हो जाता है है, और पैमाने बादल में एक संबंधपरक डेटाबेस: यहाँ उनके डॉक्स से एक त्वरित विवरण दिया गया है। यह समय लेने वाली डेटाबेस प्रशासन कार्यों के प्रबंधन के दौरान लागत-कुशल और आकार बदलने योग्य क्षमता प्रदान करता है, जो आपको अनुप्रयोगों और व्यवसाय पर ध्यान केंद्रित करने के लिए स्वतंत्र करता है।

+0

+1 मैंने बीनस्टॉक के बारे में नहीं सुना था, बहुत अच्छा! – Upgradingdave

+0

क्लाउडकैट भी उपलब्ध है और अपलोड करने, अनुप्रयोगों को तैनात करने और आपके उदाहरणों की निगरानी के लिए समर्थित प्रबंधन कंसोल के साथ ईसी 2 पर चलने वाले टोमकैट और माईएसक्यूएल दोनों को पूर्व-कॉन्फ़िगर किया गया है। – Ken

1
  1. रनिंग आवेदन की जरूरत है अनुप्रयोग। उन्हें चलाने के लिए एस/डब्ल्यू।

  2. साइबर डक जैसे ऐप्स एसएफटीपी के माध्यम से फ़ाइलों को अपलोड करने में मदद करता है।

  3. मैं एक ही समस्या को हल करने में सफल हूं .. मेरा विश्वास करो, आप इसे कर सकते हैं। सभी यू की जरूरत है इस तरह के MySQL (प्रयोग कार्यक्षेत्र कुंजी युग्म का उपयोग कर कनेक्ट करने के लिए), टर्मिनल का उपयोग (मैक के माध्यम से पोटीन/SSH का प्रयोग करके) के रूप में सर्वर सेवाओं के लिए इंटरफेस है और अच्छी तरह से आप मैं आरंभ करने के लिए लगता है

0

जाना अच्छा कर रहे हैं एक संग्रह में पैक की गई पूरी इकाई का उपयोग करना है।

इसके बारे में सोचें क्योंकि आपके पास जावा फाइलें संकलित हैं, एक एम्बेडेड http सर्वर tomcat कहता है। अब यह सब एक जार में पैक किया गया है जिसे Amazon's EC2 पर तैनात किया जा सकता है। एम्बेडेड सर्वर और प्रासंगिक कोड पर अधिक के लिए this लिंक का उपयोग करें।

जहां तक ​​डेटाबेस का संबंध है, आप अमेज़ॅन के आरडीएस का उपयोग कर सकते हैं। आप आरएसडी पर mysql को कॉन्फ़िगर कर सकते हैं और कनेक्शन के लिए एक लिंक प्राप्त कर सकते हैं। Amazon RDS आपको डेटाबेस के साथ शुरू करने में मदद करेगा।

अब आपके पास एप्लिकेशन के साथ शुरू करने और काम करने के लिए सबकुछ तैयार है।

  1. अमेज़न EC2 पर एक सर्वर इंस्टेंस बनाएं उल्लेख EC2 getting started: अब समय अमेज़न एएमआई

    पर तैनात करने के लिए आप अमेज़न EC2 पर अनुप्रयोग को तैनात करने के चरणों का पालन प्रदर्शन करना है।

  2. निजी कुंजी फ़ाइल प्राप्त करें यानी .pem (चरण 1 से प्राप्त करें), यह फ़ाइल आपको अपने सर्वर इंस्टेंस में लॉगिन करने और एसएफटीपी करने में मदद करेगी।
  3. Putty या इसी तरह के SSH client का उपयोग करें .pem फ़ाइल और सर्वर के सार्वजनिक DNS का उपयोग करके चरण -1 पर बनाए गए अपने ईसी 2 सर्वर इंस्टेंस में लॉगिन करने के लिए, एसएसएच लॉगिन के लिए Accessing Instance देखें।
  4. एसएफटीपी क्लाइंट का उपयोग कर सर्वर पर जार में पैक की गई संग्रहीत फ़ाइलों को स्थानांतरित करें, WinnSCP इस तरह के एक ग्राहक होने के नाते, SFTP पर इसके लिए अधिक देखें।
  5. एप्लिकेशन चलाएं। जार फ़ाइल के मामले में नोट आप java -jar TomcatApp.jar को आसानी से आग लगा सकते हैं।

सब कुछ ठीक से कॉन्फ़िगर किया गया है आप का उपयोग ऐप्स को एक्सेस करने होगा EC2 उदाहरण के public DNS या public IP, जो फार्म के होगा:
http://<public_dns_address>:<port number>/servlet

आशा है कि यह मदद करता है आप आरंभ करने के लिए और आप एक प्रदान करते हैं संपूर्ण दृश्य।

संबंधित मुद्दे