如何在ElasticBeanstalk上安装和配置Redis

时间:2014-10-23 12:43:48

标签: redis elastic-beanstalk

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

2 个答案:

答案 0 :(得分:25)

如果您使用的是ElastiCache(如RDS,但适用于Memcached或Redis),则接受的答案非常好。但是,如果您要做的是告诉EB将Redis配置到EC2实例中,它会在其中旋转您的应用程序,您需要一个不同的配置文件,例如this gist

redis_build

重要提示:命令按名称按字母顺序执行,因此,如果您选择的名称与redis_config_xxxredis_serverdocker-compose不同,请确保他们按照你期望的方式执行。

您的另一个选择是使用Docker将您的应用程序与Redis进行容器化,然后将您的应用程序部署为一些Docker容器,而不是您编写的任何语言。对Flask应用程序执行此操作时,请参阅here

您可以将它全部集中到一个容器中并以这种方式部署,这样更容易,但扩展性不好,或者您可以使用AWS的Elastic Beanstalk多容器部署。如果您使用了docker-compose.yml,则可以使用this工具将Dockerrun.aws.json转换为AWS想要的格式d1 = new Date("2016-06-29"); d2 = new Date("2016-05-13"); differ = new Date( d1.getFullYear() - d2.getFullYear(), d1.getMonth() - d2.getMonth(), d1.getDate() - d2.getDate() );

答案 1 :(得分:13)

AWS Elastic Beanstalk通过.ebextensions文件夹提供resource configuration。基本上,除了应用程序之外,您还需要告诉Elastic Beanstalk您要配置的内容。用于配置为默认vpc。你需要

创建一个.ebextensions文件夹

添加elasticache.config文件

并包含以下内容。

Resources:
  MyCacheSecurityGroup:
    Type: "AWS::EC2::SecurityGroup"
    Properties:
      GroupDescription: "Lock cache down to webserver access only"
      SecurityGroupIngress :
        - IpProtocol : "tcp"
          FromPort :
            Fn::GetOptionSetting:
              OptionName : "CachePort"
              DefaultValue: "6379"
          ToPort :
            Fn::GetOptionSetting:
              OptionName : "CachePort"
              DefaultValue: "6379"
          SourceSecurityGroupName:
            Ref: "AWSEBSecurityGroup"
  MyElastiCache:
    Type: "AWS::ElastiCache::CacheCluster"
    Properties:
      CacheNodeType:
        Fn::GetOptionSetting:
          OptionName : "CacheNodeType"
          DefaultValue : "cache.t1.micro"
      NumCacheNodes:
        Fn::GetOptionSetting:
          OptionName : "NumCacheNodes"
          DefaultValue : "1"
      Engine:
        Fn::GetOptionSetting:
          OptionName : "Engine"
          DefaultValue : "redis"
      VpcSecurityGroupIds:
        -
          Fn::GetAtt:
            - MyCacheSecurityGroup
            - GroupId

Outputs:
  ElastiCache:
    Description : "ID of ElastiCache Cache Cluster with Redis Engine"
    Value :
      Ref : "MyElastiCache"

引自:"如何将ElasticCache资源添加到Elastic Beanstalk VPC" http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-environment-resources-elasticache.html