स्वीकृत उत्तर बहुत अच्छा है यदि आप ElastiCache (जैसे RDS, लेकिन Memcached या Redis के लिए) का उपयोग कर रहे हैं। लेकिन, यदि आप जो करने की कोशिश कर रहे हैं वह ईबी को ईसी 2 इंस्टेंस में रेडिस को प्रावधान करने के लिए कह रहा है जिसमें यह आपके ऐप को स्पिन करता है, तो आप एक अलग कॉन्फ़िगरेशन फ़ाइल चाहते हैं, इस तरह कुछ:
packages:
yum:
gcc-c++: []
make: []
sources:
/home/ec2-user: http://download.redis.io/releases/redis-2.8.4.tar.gz
commands:
redis_build:
command: make
cwd: /home/ec2-user/redis-2.8.4
redis_config_001:
command: sed -i -e "s/daemonize no/daemonize yes/" redis.conf
cwd: /home/ec2-user/redis-2.8.4
redis_config_002:
command: sed -i -e "s/# maxmemory <bytes>/maxmemory 500MB/" redis.conf
cwd: /home/ec2-user/redis-2.8.4
redis_config_003:
command: sed -i -e "s/# maxmemory-policy volatile-lru/maxmemory-policy allkeys-lru/" redis.conf
cwd: /home/ec2-user/redis-2.8.4
redis_server:
command: src/redis-server redis.conf
cwd: /home/ec2-user/redis-2.8.4
महत्वपूर्ण: आदेशों को नाम से वर्णानुक्रम में निष्पादित किया जाता है, इसलिए यदि आप redis_build
से भिन्न नाम चुनते हैं , redis_config_xxx
, redis_server
, सुनिश्चित करें कि वे ऐसे हैं कि वे आपकी अपेक्षा के अनुरूप निष्पादित करते हैं।
आपका दूसरा विकल्प यह है कि आप अपने ऐप को डॉकर का उपयोग करके रेडिस के साथ कंटेनरीकृत करें, फिर अपने ऐप को कुछ संख्या में डॉकर कंटेनरों के रूप में तैनात करें, बजाय इसके कि आपने इसे किसी भी भाषा में लिखा हो। फ्लास्क ऐप के लिए ऐसा करने का वर्णन यहां किया गया है।
आप इसे एक कंटेनर में जाम कर सकते हैं और उस तरह से तैनात कर सकते हैं, जो आसान है, लेकिन अच्छी तरह से स्केल नहीं करता है, या आप एडब्ल्यूएस 'इलास्टिक बीनस्टॉक मल्टी-कंटेनर परिनियोजन का उपयोग कर सकते हैं। अगर आपने docker-compose
. का इस्तेमाल किया है , आप इस टूल का उपयोग docker-compose.yml
. को चालू करने के लिए कर सकते हैं एडब्ल्यूएस चाहता है के रूप में, Dockerrun.aws.json
।