ElastiCache(RDSと同様ですが、MemcachedまたはRedisの場合)を使用している場合、受け入れられた答えは素晴らしいです。ただし、EBにRedisをEC2インスタンスにプロビジョニングしてアプリを起動するように指示する場合は、次のような別の設定ファイルが必要です。
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
、期待どおりに実行されるようになっていることを確認してください。
もう1つのオプションは、Dockerを使用してRedisでアプリをコンテナー化し、作成した言語ではなく、いくつかのDockerコンテナーとしてアプリをデプロイすることです。Flaskアプリでの実行については、こちらで説明しています。
すべてを1つのコンテナーにまとめてデプロイすることができます。これは簡単ですが、拡張性が高くありません。または、AWSのElasticBeanstalkマルチコンテナーデプロイメントを使用することもできます。 docker-compose
を使用した場合 、このツールを使用して、docker-compose.yml
を有効にすることができます AWSが望む形式に、Dockerrun.aws.json
。