Приетият отговор е страхотен, ако използвате ElastiCache (като RDS, но за Memcached или Redis). Но ако това, което се опитвате да направите, е да кажете на EB да предостави Redis в EC2 екземпляр, в който завърта вашето приложение, вие искате различен конфигурационен файл, нещо като това:
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
, уверете се, че са такива, че да се изпълняват по начина, който очаквате.
Другата ви опция е да контейнеризирате приложението си с Redis с помощта на Docker, след което да разположите приложението си като определен брой Docker контейнери, вместо на какъвто и език да сте го написали. Това за приложение Flask е описано тук.
Можете да поставите всичко в един контейнер и да го разположите по този начин, което е по-лесно, но не се мащабира добре, или можете да използвате многоконтейнерни разгръщания на AWS Elastic Beanstalk. Ако сте използвали docker-compose
, можете да използвате този инструмент, за да превърнете docker-compose.yml
във формата, която AWS иска, Dockerrun.aws.json
.