MaxMind GeoIP库和Amazon Elastic Beanstalk上的数据库



我正在尝试弄清楚如何在AWS(Elastic Beanstalk)上安装和使用GeoIP库。到目前为止,我知道EB有一个"短暂文件系统",但是我可以将CEOCITY二进制存储在S3中……但是MaxMind C库呢?是否有人配置EB使用MaxMind的API?

(我的堆栈基于Python/django)

我不知道为什么当一个简单的.ebextensions脚本可以完成工作时,您为什么要自定义AMI,并在每个部署中下载新的MaxMind DB。请注意,截至今天,我的示例脚本已编码为最新的GeoIP客户端代码,因此您可能需要时不时地升级。但是我怀疑客户端代码会有很大的变化,因此它总是有效的。此脚本适用于PHP API和免费的Geolite2数据库,很容易更改为Python客户端代码。

files:
  "/usr/local/bin/geoip2.phar" :
    mode: "000644"
    owner: root
    group: root
    source: https://github.com/maxmind/GeoIP2-php/releases/download/v2.1.1/geoip2.phar
  "/usr/local/share/GeoIP/GeoLite2-City.mmdb.gz" :
    mode: "000644"
    owner: root
    group: root
    source: http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
  "/usr/local/share/GeoIP/GeoLite2-Country.mmdb.gz" :
    mode: "000644"
    owner: root
    group: root
    source: http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
commands:
  gunzip_maxmind_city:
    command: gunzip -f GeoLite2-City.mmdb.gz
    cwd: /usr/local/share/GeoIP
  gunzip_maxmind_country:
    command: gunzip -f GeoLite2-Country.mmdb.gz
    cwd: /usr/local/share/GeoIP

我相信您有两个选择可以自动为您创建新EC2实例的情况:

  • 为您的EC2实例创建自定义AMI,或者
  • 自定义您的AWS EB环境。

Amazon发出有关使用自定义AMI的通知:S:

"After you are running on your own custom AMI, you will no longer receive any 
automated updates to the operating system, software stack, or the AWS Elastic 
Beanstalk host manager."

就个人而言,我一直坚持使用配置文件。需要一点修补,但是一旦我完成工作,它运作良好。

祝你好运!

另一种方法是使用AWS EB附加EBS卷的快照。

http://docs.aws.amazon.com/awscloudformation/latest/userguide/aws-properties-as-as-launchconfig-blockdev-mapp.-html

每当使用此设置创建环境时,Nivolved实例都会将其附加。从这一点开始,您可以用.ebextensions接管。

(它还允许您在支持m1.small的实例上映射临时卷)

相关内容

  • 没有找到相关文章

最新更新