Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment installer et configurer Redis sur ElasticBeanstalk

La réponse acceptée est excellente si vous utilisez ElastiCache (comme RDS, mais pour Memcached ou Redis). Mais, si ce que vous essayez de faire est de dire à EB de provisionner Redis dans l'instance EC2 dans laquelle il lance votre application, vous voulez un fichier de configuration différent, quelque chose comme ceci :

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

IMPORTANT : Les commandes sont exécutées dans l'ordre alphabétique par nom, donc si vous choisissez des noms différents de redis_build , redis_config_xxx , redis_server , assurez-vous qu'ils sont tels qu'ils s'exécutent comme prévu.

Votre autre option consiste à conteneuriser votre application avec Redis à l'aide de Docker, puis à déployer votre application sous la forme d'un certain nombre de conteneurs Docker, au lieu de la langue dans laquelle vous l'avez écrite. Cette opération pour une application Flask est décrite ici.

Vous pouvez tout regrouper dans un seul conteneur et déployer de cette manière, ce qui est plus facile, mais ne s'adapte pas bien, ou vous pouvez utiliser les déploiements multi-conteneurs Elastic Beanstalk d'AWS. Si vous avez utilisé docker-compose , vous pouvez utiliser cet outil pour transformer un docker-compose.yml sous la forme souhaitée par AWS, Dockerrun.aws.json .