2012-06-14 6 views
8

मैं वर्तमान में एक रेल 3 ऐप में हेरोकू के मेमकैड का उपयोग कर रहा हूं और एलैस्टिकैच में जाना चाहता हूं क्योंकि कीमत अधिक अनुकूल है। क्या यह संभव है? विन्यास अपेक्षाकृत सीधा है? क्या ऐसा कुछ भी है जिसे मुझे प्रदर्शन के संबंध में अवगत होना चाहिए?क्या मैं हेरोकू पर अमेज़ॅन लोचदार का उपयोग कर सकता हूं?

उत्तर

4

नोट: हालांकि यह काम करता है, @btucker ने इंगित किया कि यह किसी भी Heroku- होस्ट किए गए ऐप को आपके ElastiCache क्लस्टर तक पहुंचने की अनुमति देता है। मैं इस समाधान का उपयोग करने की सिफारिश नहीं करता हूं।

हाँ आप कर सकते हैं। सेटअप गाइड के समान है Heroku Amazon RDS पर है। चरण हैं, जो अलग-अलग इस तरह जाना:

  1. एक कैश क्लस्टर और नोड
  2. स्थापित ElastiCache Command Line Toolkit
  3. अपने ElastiCache क्लस्टर के लिए Heroku के सर्वर प्रवेश की अनुमति दें बनाने के लिए "Get Started with Amazon ElastiCache" गाइड का उपयोग करके आरडीएस गाइड की तरह बताते हैं लेकिन elasticache- लोगों के साथ rds- आदेशों की जगह:

    elasticache-authorize-cache-security-group-ingress \ 
        --cache-security-group-name default \ 
        --ec2-security-group-name default \ 
        --ec2-security-group-owner-id 098166147350 \ 
    
        # If your AWS_CREDENTIAL_FILE environment setting is configured, 
        # this option is not necessary. 
        --aws-credential-file ../credential-file-path.template 
    
  4. y के लिए एक Heroku config मान सेट करें अपने क्लस्टर का होस्ट-साथ हमारे उत्पादन ऐप्स:

    heroku config:set MEMCACHE_SERVERS=elasticachehostname.amazonaws.com 
    

उसके बाद, Memcache Rails setup पालन करें, और आप तैयार हैं।

+1

धन्यवाद - यह पूरी तरह से काम करता है। – alpheus

+0

क्षमा करें अगर मैं इस टिप्पणी को हाइजैक करता हूं, लेकिन शायद आप सभी ट्रैफिक से शुल्क लेने के लिए निजी पते का उपयोग करना चाहते हैं? हमने इसे हमारे ईसी 2 इंस्टेंस के साथ करने की कोशिश की है लेकिन यह काम नहीं करता है, लेकिन सुना है कि यह एलैस्टिकैच – nambrot

+0

के साथ काम करेगा, आपको निजी पता, @nambrot कहां मिलते हैं? मैं एडब्ल्यूएस कंसोल में सूचीबद्ध "एंडपॉइंट" का उपयोग करता हूं और अभी तक एलिस्टी कैश यातायात के लिए शुल्क नहीं देखा है। –

6

नहीं, यह सलाह नहीं दी जाती है कि आप लोचदार दर्द का उपयोग करें क्योंकि इसके साथ कोई प्रमाणीकरण तंत्र नहीं है। इस प्रकार, कोई भी आपके कैश तक पहुंच सकता है! यह सामान्य रूप से ठीक है क्योंकि आप एडब्ल्यूएस सुरक्षा नियमों का उपयोग करने के लिए उपयोग करेंगे कि कौन सी मशीनें इसे एक्सेस कर सकती हैं। हालांकि, यह स्पष्ट रूप से हेरोोक के साथ काम नहीं करता है क्योंकि आपका ऐप हेरोोकस की यादृच्छिक रूप से चुनी गई मशीन पर चलाया जाता है।

आप ईसी 2 मशीन पर एसएएसएल प्रमाणीकरण के साथ स्वयं को memcache तैनात कर सकते हैं। ElastiCache वास्तव में आपको ईसी 2 मशीन से अधिक कुछ भी नहीं देता है, वैसे भी memcache पूर्व-स्थापित है। MemCachier

(पूर्ण त्याग, मैं MemCachier के लिए काम करते हैं):

एक और विकल्प नहीं है।

हेरोकू पर एक और मेमकैच प्रदाता है जो प्रदान किए गए मेम्बबेस से काफी सस्ता है। इसे MemCachier कहा जाता है, एडन होम पेज here है।

यह आपके कैश आकार के आधार पर ElasticCache की कीमत में तुलनीय है और यदि आप आरक्षित उदाहरणों का उपयोग करते हैं या नहीं (बहुत बड़े कैश आकार ElatiCache सस्ता है)।

अपडेट (जून, 2013): मेम्बबेस मेमकेच एडन बंद हो गया है, इसलिए मेमकैचियर हीरोोक पर मेमकैच का एकमात्र प्रदाता है।

अगर आप ElastiCache के साथ जाते हैं तो भी आपको किसी भी मदद की ज़रूरत है, तो कृपया मेरे पास पहुंचें।

+0

कूल। मैंने दस्तावेज़ों पर एक नज़र डाली है, लेकिन सिर्फ स्पष्टीकरण के लिए - अगर मैं वर्तमान में हेरोोकू पर मेम्बबेस एडन का उपयोग कर रहा हूं, तो मेरे जेमफाइल में मणि 'मेमकैचियर' जोड़ने के अलावा, क्या कोई अन्य बदलाव है जो मुझे स्विच करने के लिए करना है आपकी प्रणाली? – alpheus

+0

@alpheus, हाँ, आपको बस इतना करना होगा कि 'memcachier' मणि जोड़ें और बाकी सब कुछ काम करना चाहिए। अगर आपको कोई समस्या है तो हमें बताएं: [email protected]। (पूर्ण अस्वीकरण: मैं भी MemCachier पर काम करता हूं)। – alexlod

3

यह ध्यान देने योग्य है कि जब @ ssorallen जवाब के ऊपर के रूप में वर्णित काम करेंगे लायक है, यह भी किसी भी आपके memcached सर्वर तक पहुँचने के लिए Heroku-तैनात एप्लिकेशन अनुमति देता है। इसलिए यदि आप किसी भी गोपनीय पर कुछ भी स्टोर करते हैं, या आप अपने ElatiCache क्लस्टर का उपयोग करने वाले अन्य लोगों के बारे में चिंतित हैं, तो ऐसा न करें। आरडीएस के संदर्भ में आपके पास डेटाबेस में निर्मित अभिगम नियंत्रण है, लेकिन memcached के पास ElastiCache द्वारा समर्थित कोई प्रमाणीकरण नहीं है। तो सभी हेरोकू में सुरक्षा समूह खोलना एक बहुत बड़ा जोखिम है।

+1

यह एक अच्छा मुद्दा है। ElastiCache को देखते हुए प्रमाणीकरण का उपयोग नहीं करता है, क्या इसे रोकने का कोई तरीका है? मेजबाननाम की अस्पष्टता के माध्यम से सुरक्षा मुश्किल से सुरक्षा है। –

+0

@ssorallen, दुर्भाग्य से ElastiCache के साथ इस बारे में कोई रास्ता नहीं है जिसे मैं जानता हूं। Memcached के कुछ वैकल्पिक वितरण हैं जो प्रमाणीकरण का समर्थन करते हैं, लेकिन आपको इसे ec2 इंस्टेंस पर चलाने की आवश्यकता होगी। – btucker

+0

बस यह विषय फिर से आया था, और इसका एक संभावित समाधान है कि आपका कोड एडब्ल्यूएस एपीआई से हैकोकू पर बात करें और मौजूदा डायनो से आने वाले यातायात के लिए एलैस्टिक कैश सुरक्षा समूह में एक नियम जोड़ें। मैं * सोचता हूं * शायद काम करेगा। ElastiCache से कनेक्ट करने का प्रयास करने वाले मेमकेचे क्लाइंट से पहले इसे चलाने की आवश्यकता होगी। – btucker

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