如何将AWS Lightsail与ElastiCache连接?已配置VPC对等但遇阻
没问题,我帮你梳理完VPC对等配置之后,把Lightsail实例和ElastiCache(Memcached)打通的完整步骤,完全适配你当前的迁移场景:
第一步:确认VPC对等连接的有效性
先确保你之前配置的VPC对等是完全生效的,这是基础:
- 登录AWS控制台,进入VPC服务,找到你创建的对等连接,确认状态是
*active*(如果是pending,需要接收方VPC的账户确认) - 分别检查Lightsail所在VPC和ElastiCache所在VPC的路由表:
- 对于ElastiCache的VPC路由表,添加一条路由,目标地址是Lightsail VPC的CIDR段,下一跳选择你的对等连接ID
- 对于Lightsail的VPC路由表,添加一条路由,目标地址是ElastiCache VPC的CIDR段,下一跳同样选择对等连接ID
第二步:配置ElastiCache的安全组规则
ElastiCache默认会拒绝所有外部访问,需要手动开放给Lightsail实例:
- 进入ElastiCache控制台,找到你的Memcached集群,点击查看详情,找到关联的安全组
- 进入该安全组的配置页面,添加一条入站规则:
- 类型选择
自定义TCP,端口填Memcached的默认端口11211 - 来源选择
自定义,输入Lightsail VPC的CIDR段(比如10.0.0.0/16),或者如果要更严格,直接输入Lightsail实例的私有IP地址
- 类型选择
- 保存规则,确保这条规则优先级高于其他拒绝规则
第三步:配置Lightsail实例的网络权限
反过来也要确保Lightsail实例能发起对ElastiCache的请求:
- 进入Lightsail控制台,找到你的实例,进入网络标签页
- 查看实例关联的安全组,添加一条出站规则:
- 类型选择
自定义TCP,端口填11211 - 目标地址输入ElastiCache VPC的CIDR段
- 类型选择
- 如果你的Lightsail实例是创建在默认Lightsail VPC里的,确认已经和ElastiCache的VPC完成对等(你之前已经做了这步,再核对下即可)
第四步:测试网络连通性
在Lightsail实例上执行命令,验证能不能通到ElastiCache:
- 先登录到Lightsail服务器(用SSH或者Lightsail自带的控制台)
- 执行telnet测试:
telnet <你的ElastiCache集群端点> 11211- 如果看到
Connected to xxxxxx.cache.amazonaws.com,说明网络没问题
- 如果看到
- 或者用nc命令(如果telnet没装):
nc -zv <你的ElastiCache集群端点> 11211- 看到
succeeded!就代表连通正常
- 看到
第五步:修改应用配置并测试
最后把你的应用指向新的Memcached服务:
- 找到应用中配置Memcached地址的地方,把原来DigitalOcean的Memcached服务器地址替换成AWS ElastiCache的集群端点(可以在ElastiCache控制台的集群详情里找到)
- 如果你的Memcached集群是多节点,ElastiCache支持自动发现,你可以直接用带
.cfg后缀的配置端点,应用会自动识别所有节点 - 重启应用,测试数据读写是否正常,比如尝试写入一条缓存数据,再读取,确认能正常交互
常见问题排查
如果遇到连接失败,优先检查这几个点:
- 对等连接状态是不是
*active*,有没有一方没确认 - 两边VPC的路由表有没有正确添加对方的CIDR路由
- ElastiCache安全组的入站规则是不是包含了Lightsail的IP/CIDR
- Lightsail实例的安全组出站规则是不是允许访问11211端口
内容的提问来源于stack exchange,提问作者Martin Giroux
相关产品推荐
相关产品推荐

