redis - 如何在 ElasticBeanstalk 上安装和配置 Redis

标签 redis amazon-elastic-beanstalk

如何在 AWS ElasticBeanstalk 上安装和配置 Redis?有谁知道如何编写 .ebextension 脚本来实现这一点?

最佳答案

如果您使用的是 ElastiCache(如 RDS,但用于 Memcached 或 Redis),则公认的答案很好。但是,如果您想要做的是告诉 EB 将 Redis 配置到它启动您的应用程序的 EC2 实例中,您需要一个不同的配置文件,例如 this gist :

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_buildredis_config_xxx redis_server,确保它们以您期望的方式执行。

您的另一个选择是使用 Docker 将您的应用程序与 Redis 容器化,然后将您的应用程序部署为一定数量的 Docker 容器,而不是您使用的任何语言。为 Flask 应用程序执行此操作描述了 here .

您可以将它们全部塞进一个容器中并以这种方式部署,这种方式更容易,但扩展性不佳,或者您可以使用 AWS 的 Elastic Beanstalk 多容器部署。如果你用过docker-compose,可以用thisdocker-compose.yml 转换为 AWS 想要的形式的工具,Dockerrun.aws.json

关于redis - 如何在 ElasticBeanstalk 上安装和配置 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528395/

相关文章:

amazon-web-services - 如何更改 AWS Elastic Beanstalk 中的应用程序名称

git - eb deploy --staged 用法

node.js - 在 Elastic Beanstalk 中更新 nodejs

python - 如何在Redis列表中有效存储16位整数

ruby-on-rails-3 - 尝试在 rake 任务中启动 redis 和 resque 调度程序

lua - 具有大循环的 Redis Lua 脚本

node.js - ElasticBeanstalk nodejs.log 找不到模块 'hogan.js'

ruby-on-rails - 雷迪斯 : sum aggregation for keys having some regex

python - Redis channel 中 PUB/SUB 时消息的大小限制是多少

python - 删除 Elastic beanstalk EC2 实例时,celery 任务和队列是否会中断?