如何在 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_build
、redis_config_xxx
、 redis_server
,确保它们以您期望的方式执行。
您的另一个选择是使用 Docker 将您的应用程序与 Redis 容器化,然后将您的应用程序部署为一定数量的 Docker 容器,而不是您使用的任何语言。为 Flask 应用程序执行此操作描述了 here .
您可以将它们全部塞进一个容器中并以这种方式部署,这种方式更容易,但扩展性不佳,或者您可以使用 AWS 的 Elastic Beanstalk 多容器部署。如果你用过docker-compose
,可以用this将 docker-compose.yml
转换为 AWS 想要的形式的工具,Dockerrun.aws.json
。
关于redis - 如何在 ElasticBeanstalk 上安装和配置 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528395/