Det accepterede svar er fantastisk, hvis du bruger ElastiCache (som RDS, men til Memcached eller Redis). Men hvis det, du forsøger at gøre, er at fortælle EB, at Redis skal klargøres i EC2-instansen, hvor den spinder din app op, vil du have en anden konfigurationsfil, noget som denne essens:
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
VIGTIG: Kommandoerne udføres i alfabetisk rækkefølge efter navn, så hvis du vælger andre navne end redis_build
, redis_config_xxx
, redis_server
, sørg for, at de er sådan, at de udføres på den måde, du forventer.
Din anden mulighed er at containerisere din app med Redis ved hjælp af Docker og derefter implementere din app som et vist antal Docker-containere i stedet for hvilket sprog du end skrev den på. At gøre det for en Flask-app er beskrevet her.
Du kan jamme det hele i én container og implementere på den måde, hvilket er nemmere, men ikke skalerer godt, eller du kan bruge AWS' Elastic Beanstalk multi-container-implementeringer. Hvis du har brugt docker-compose
, kan du bruge dette værktøj til at omdanne en docker-compose.yml
ind i den form AWS ønsker, Dockerrun.aws.json
.