Redis
 sql >> Database >  >> NoSQL >> Redis

Come installare e configurare Redis su ElasticBeanstalk

La risposta accettata è ottima se stai usando ElastiCache (come RDS, ma per Memcached o Redis). Ma, se quello che stai cercando di fare è dire a EB di eseguire il provisioning di Redis nell'istanza EC2 in cui fa girare la tua app, vuoi un file di configurazione diverso, qualcosa come questo:

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

IMPORTANTE: I comandi vengono eseguiti in ordine alfabetico per nome, quindi se scegli nomi diversi da redis_build , redis_config_xxx , redis_server , assicurati che siano tali da funzionare nel modo previsto.

L'altra opzione è quella di containerizzare la tua app con Redis usando Docker, quindi distribuire la tua app come un certo numero di container Docker, invece della lingua in cui l'hai scritta. Questa operazione per un'app Flask è descritta qui.

Puoi raggruppare tutto in un contenitore e distribuire in questo modo, il che è più semplice, ma non scala bene, oppure puoi utilizzare le distribuzioni multi-container Elastic Beanstalk di AWS. Se hai usato docker-compose , puoi utilizzare questo strumento per trasformare un docker-compose.yml nella forma che AWS vuole, Dockerrun.aws.json .