Het geaccepteerde antwoord is geweldig als je ElastiCache gebruikt (zoals RDS, maar voor Memcached of Redis). Maar als u EB probeert te vertellen om Redis in te richten in de EC2-instantie waarin het uw app opstart, wilt u een ander configuratiebestand, ongeveer als volgt:
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
BELANGRIJK: De opdrachten worden in alfabetische volgorde op naam uitgevoerd, dus als u andere namen kiest dan redis_build
, redis_config_xxx
, redis_server
, zorg ervoor dat ze zodanig zijn dat ze worden uitgevoerd op de manier die u verwacht.
Je andere optie is om je app met Redis in een container te plaatsen met Docker en vervolgens je app te implementeren als een aantal Docker-containers, in plaats van in welke taal je het ook hebt geschreven. Dat doen voor een Flask-app wordt hier beschreven.
Je kunt het allemaal in één container stoppen en op die manier implementeren, wat gemakkelijker is, maar niet goed schaalt, of je kunt AWS' Elastic Beanstalk-implementaties met meerdere containers gebruiken. Als je docker-compose
. hebt gebruikt , kunt u deze tool gebruiken om een docker-compose.yml
in de vorm die AWS wil, Dockerrun.aws.json
.