4

将 Amazon 的 Elasticache 服务(带有 Memcached 引擎)与 Django 的 MemcachedCache 后端一起使用的正确方法是什么?

我有一个本地运行的本地 Memcached 服务,它适用于 Django 设置:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

我认为使用 Elasticache 就像创建 Memcached 集群实例然后将我的设置更改为:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'instance-name.abcdef.cfg.use1.cache.amazonaws.com:11211',
    }
}

但是,当我在本地对此进行测试时,缓存会默默地失败并且无法成功存储任何内容。

我究竟做错了什么?如何让 MemcachedCache 后端显示真实的错误消息?我是否需要像这样使用特定于 Elasticache 的 Django 后端?

4

1 回答 1

3

您无法从 AWS 网络外部连接到 ElastiCache 实例。即使您的安全组在允许来自您的 IP 地址(或整个互联网)的流量方面可能存在例外情况,但 AWS 的网络不会接受任何非来自其网络内部的流量。

此配置很好,但仅适用于 EC2 实例。

或者,您可以遵循本指南(这也证实了我上面的回答),这基本上涉及您启动一个 EC2 实例,该实例的 IP 地址将用于您的 CACHES 配置。此实例配置为在端口 11211 上的传入流量之间执行 NAT,并将其转发到您的 ElastiCache 节点。这种配置远非理想,但不应该在生产中使用。

于 2016-06-30T07:03:16.357 回答