Amazon ElastiCache
用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

第 4 步:授权访问

此部分假设您熟悉 Amazon EC2 实例的启动和连接。有关更多信息,请转至 Amazon EC2 入门指南

所有 ElastiCache 群集都设计为从 Amazon EC2 实例进行访问。最常见的情况是,从同一 Amazon Virtual Private Cloud (Amazon VPC) 中的 Amazon EC2 实例访问 ElastiCache 群集。这是本主题中涵盖的方案。有关从其他 Amazon VPC、其他区域或企业网络访问您的 ElastiCache 群集的信息,请参阅:

默认情况下,对您的群集的网络访问权限仅限于启动群集的用户账户。必须先授权 EC2 实例访问群集,然后您才能从 EC2 实例连接到群集。所需步骤取决于您是否将群集启动到 EC2-VPC 或 EC2-Classic 中。

步骤 4.1:确定群集的环境

在继续下一步之前,请确定群集是在 EC2-VPC 中还是在 EC2-Classic 中启动的。

有关更多信息,请参阅检测支持的平台以及是否具有默认 VPC

使用 ElastiCache 控制台确定您的群集平台

以下过程使用 ElastiCache 控制台确定您是否已经将群集启动到 EC2-VPC 或 EC2-Classic 中。

要使用 ElastiCache 控制台确定群集平台

  1. 登录 AWS 管理控制台 并通过以下网址打开 ElastiCache 控制台:https://console.amazonaws.cn/elasticache/

  2. 在左导航窗格中,选择在您的群集上运行的引擎,即 MemcachedRedis

  3. 在群集列表中,通过选择群集名称左侧的框,展开要授权访问的群集。

  4. 找到 Subnet group:

有关更多信息,请参阅检测支持的平台以及是否具有默认 VPC

使用 AWS CLI 确定您的群集平台

以下过程使用 AWS CLI 确定您是否已经将群集启动到 EC2-VPC 或 EC2-Classic 中。

要使用 AWS CLI 确定群集平台

  1. 打开一个命令窗口。

  2. 在命令提示符下,运行以下命令。

    对于 Linux, OS X, or Unix:

    aws elasticache describe-cache-clusters \ --show-cache-cluster-details \ --cache-cluster-id redis-two

    对于 Windows:

    aws elasticache describe-cache-clusters ^ --show-cache-cluster-details ^ --cache-cluster-id redis-two

    该命令的 JSON 输出内容如下所示。某些输出会省略,以节省空间。

    { "CacheClusters": [ { "Engine": "redis", "AuthTokenEnabled": false, "CacheParameterGroup": { "CacheNodeIdsToReboot": [], "CacheParameterGroupName": "default.redis3.2", "ParameterApplyStatus": "in-sync" }, "CacheClusterId": "redis-two-001", "CacheSecurityGroups": [], "NumCacheNodes": 1, "AtRestEncryptionEnabled": false, "CacheClusterCreateTime": "2018-01-16T20:09:34.449Z", "ReplicationGroupId": "redis-two", "AutoMinorVersionUpgrade": true, "CacheClusterStatus": "available", "PreferredAvailabilityZone": "us-east-2a", "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", "SecurityGroups": [ { "Status": "active", "SecurityGroupId": "sg-e8c03081" } ], "TransitEncryptionEnabled": false, "CacheSubnetGroupName": "default", "EngineVersion": "3.2.10", "PendingModifiedValues": {}, "PreferredMaintenanceWindow": "sat:05:30-sat:06:30", "CacheNodeType": "cache.t2.medium" } ] }

步骤 4.2:授予访问权限

您在 EC2-VPC 中启动了群集

如果在 Amazon Virtual Private Cloud (Amazon VPC) 中启动了群集,则只能从正在该 Amazon VPC 中运行的 Amazon EC2 实例连接到您的 ElastiCache 群集。在此情况下,您需要向群集授予网络进入。

授予从 Amazon VPC 安全组到群集的网络进入

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 Network & Security 下,选择 Security Groups

  3. 从安全组列表中,选择 Amazon VPC 对应的安全组。除非创建安全组供 ElastiCache 使用,否则此安全组将命名为 default

  4. 选择 Inbound 选项卡,然后执行以下操作:

    1. 选择 Edit

    2. 选择 Add rule

    3. Type 列中,选择 Custom TCP rule

    4. Port range 框中,为您的群集节点键入端口号。此端口号必须与启动群集时指定的端口号相同。默认端口如下所示:

      • Memcached:端口 11211

      • Redis:端口 6379

    5. Source 框中,选择端口范围为 (0.0.0.0/0) 的 Anywhere,以便从 Amazon VPC 中启动的任何 Amazon EC2 实例都可以连接到您的 ElastiCache 节点。

      重要

      向 0.0.0.0/0 公开 ElastiCache 群集 (步骤 4.e.) 时,不会在 Internet 上公开群集,因为它没有公共 IP 地址,因此无法从 VPC 外部访问。但是,默认安全组可以应用到客户账户中的其他 Amazon EC2 实例,这些实例可能具有公共 IP 地址。如果这些实例碰巧在端口 6379 上运行某些内容,则该服务可能会意外暴露。因此,我们建议创建由 ElastiCache 独占使用 VPC 安全组。有关更多信息,请参阅自定义安全组

    6. 选择 Save

当您将 Amazon EC2 实例启动到您的 Amazon VPC 中时,该实例将能够连接到您的 ElastiCache 群集。

您在 EC2-Classic 中启动了群集

如果您在 EC2-Classic 中启动了群集,若要允许 Amazon EC2 实例访问您的群集,您将需要向与该实例关联的 Amazon EC2 安全组授予对您的缓存安全组的访问权限。

向群集授予对 Amazon EC2 安全组的访问权限

  1. 登录 AWS 管理控制台 并通过以下网址打开 ElastiCache 控制台:https://console.amazonaws.cn/elasticache/

  2. 要查看安全组列表,请从左侧导航窗格中,选择 Security Groups

    重要

    如果 Security Groups 未在导航窗格列出,则说明您在 EC2-VPC 中而不是 EC2-Classic 中启动了群集,应遵循您在 EC2-VPC 中启动了群集中的说明。

  3. 选择 default 安全组左侧的框。

  4. 从屏幕底部的列表中选择要授权的 EC2 Security Group Name

  5. 要授予访问权限,请选择 Add

    与安全组关联的 Amazon EC2 实例现在获得授权,可以连接到您的 ElastiCache 群集。

要撤销某一安全组的访问权限,请在授权安全组列表中找到相应安全组,然后选择 Remove

有关 ElastiCache 安全组的更多信息,请参阅安全组 [EC2-Classic]