

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 设置 ElastiCache
<a name="set-up"></a>

要使用 ElastiCache Web 服务，请按照以下步骤操作。

**Topics**
+ [注册获取Amazon Web Services 账户](#sign-up-for-aws)
+ [保护 IAM 用户](#secure-an-admin)
+ [授权以编程方式访问](#elasticache-set-up-access-key)
+ [设置权限](#elasticache-set-up-permissions)
+ [设置 EC2](#elasticache-install-configure-ec2)
+ [授予网络访问权限](#elasticache-install-grant-access-VPN)
+ [设置命令行访问权限](#Download-and-install-cli)

## 注册获取Amazon Web Services 账户
<a name="sign-up-for-aws"></a>

如果您没有Amazon Web Services 账户，请完成以下步骤来创建一个。

**报名参加Amazon Web Services 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.amazonaws.cn/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时Amazon Web Services 账户，就会创建*Amazon Web Services 账户根用户*一个。根用户有权访问该账户中的所有Amazon Web Services 服务和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

Amazon注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 [https://aws.amazon.com/](https://www.amazonaws.cn/)并选择 “**我的账户”，查看您当前的账户活动并管理您的账户**。

## 保护 IAM 用户
<a name="secure-an-admin"></a>

注册后Amazon Web Services 账户，请开启多重身份验证 (MFA)，保护您的管理用户。有关说明，请参阅《IAM 用户指南》**中的 [为 IAM 用户启用虚拟 MFA 设备（控制台）](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html#enable-virt-mfa-for-iam-user)。

要允许其他用户访问您的Amazon Web Services 账户资源，请创建 IAM 用户。为了保护您的 IAM 用户，请启用 MFA 并仅向 IAM 用户授予执行任务所需的权限。

有关创建和保护 IAM 用户的更多信息，请参阅《IAM 用户指南》中的以下主题：**
+ [在你的 IAM 用户中创建Amazon Web Services 账户](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_users_create.html)
+ [适用于Amazon资源的访问权限管理](https://docs.amazonaws.cn/IAM/latest/UserGuide/access.html)
+ [基于 IAM 身份的策略示例](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_examples.html)

## 授权以编程方式访问
<a name="elasticache-set-up-access-key"></a>

如果用户想在Amazon外部进行交互，则需要编程访问权限Amazon Web Services 管理控制台。Amazon APIs 和Amazon Command Line Interface需要访问密钥。可能的话，创建临时凭证，该凭证由一个访问密钥 ID、一个秘密访问密钥和一个指示凭证何时到期的安全令牌组成。

要向用户授予编程式访问权限，请选择以下选项之一。


****  

| 哪个用户需要编程式访问权限？ | 目的 | 方式 | 
| --- | --- | --- | 
| IAM | 使用短期证书签署对Amazon CLI或的编程请求Amazon APIs（直接或使用Amazon SDKs）。 | 按照 IAM 用户指南中的将[临时证书与Amazon资源配合使用](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_credentials_temp_use-resources.html)中的说明进行操作。 | 
| IAM | （不推荐使用）使用长期证书签署对Amazon CLI或的编程请求Amazon APIs（直接或使用Amazon SDKs）。 | 按照《IAM 用户指南》中[管理 IAM 用户的访问密钥](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_credentials_access-keys.html)中的说明进行操作。 | 

**相关主题:**
+ *IAM 用户指南*中的[什么是 IAM？](https://docs.amazonaws.cn/IAM/latest/UserGuide/introduction.html)
+ Amazon*Amazon一般参考*中的@@ [安全证书](https://docs.amazonaws.cn/general/latest/gr/aws-security-credentials.html)。

## 设置您的权限（仅限新 ElastiCache 用户）
<a name="elasticache-set-up-permissions"></a>

要提供访问权限，请为您的用户、组或角色添加权限：
+ 通过身份提供商在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供商创建角色（联合身份验证）](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》**中[向用户添加权限（控制台）](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

Amazon ElastiCache 创建并使用服务相关角色代表您配置Amazon资源和访问其他资源和服务。 ElastiCache 要为您创建服务相关角色，请使用名为的Amazon托管策略。`AmazonElastiCacheFullAccess`此角色预配置了该服务您代表您创建服务相关角色所需的权限。

您可能决定不使用默认策略，而是使用自定义托管策略。在这种情况下，请确保您具有调用 `iam:createServiceLinkedRole` 的权限或创建了 ElastiCache 服务相关角色。

有关更多信息，请参阅下列内容：
+ [创建新策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_create.html)（IAM）
+ [Amazon Amazon 的托管政策 ElastiCache](IAM.IdentityBasedPolicies.PredefinedPolicies.md)
+ [将服务相关角色用于 Amazon ElastiCache](using-service-linked-roles.md)

## 设置 EC2
<a name="elasticache-install-configure-ec2"></a>

您将需要设置一个用于连接到缓存的 EC2 实例。
+ 如果您还没有 EC2 实例，请在此处学习如何设置 EC2 实例：[Amazon EC2 入门指南](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/EC2_GetStarted.html)。
+ 您的 EC2 实例必须位于同一 VPC 中，并且具有与缓存相同的安全组设置。默认情况下，Amazon ElastiCache 会在您的默认 VPC 中创建缓存并使用默认安全组。要学习本教程，请确保您的 EC2 实例位于默认 VPC 中并且具有默认安全组。

## 授予从 Amazon VPC 安全组到您的缓存的网络访问权限
<a name="elasticache-install-grant-access-VPN"></a>

ElastiCache 基于节点的集群使用端口 6379 来执行 Valkey 和 Redis OSS 命令， ElastiCache 无服务器同时使用端口 6379 和端口 6380。为了成功连接并从您的 EC2 实例执行 Valkey 或 Redis OSS 命令，您的安全组必须允许根据需要访问这些端口。

ElastiCache for Memcached 使用 11211 和 11212 端口接受 Memcached 命令。为了成功连接并从您的 EC2 实例执行 Memcached 命令，您的安全组必须允许访问这些端口。

1. 登录Amazon Command Line Interface并打开 [Amazon EC2 控制台](https://console.amazonaws.cn/ec2/)。

1. 在导航窗格中的 **Network & Security** 下，选择 **Security Groups**。

1. 从安全组列表中，为 Amazon VPC 选择安全组。除非您创建了供 ElastiCache 使用的安全组，否则该安全组将被命名为 de *fault*。

1. 选择“入站”选项卡，然后：

   1. 选择 **Edit**（编辑）。

   1. 选择**添加规则**。

   1. 在“类型”列中，选择**自定义 TCP 规则**。

   1. 如果使用 Valkey 或 Redis OSS，则在**端口范围**框中键入 `6379`。

      如果使用 Memcached，则在**端口范围**框中键入 `11211`。

   1. 在**源**框中，选择**任何具有端口范围 (0.0.0.0/0) 的任意位置**，这样您在 Amazon VPC 中启动的任何 Amazon EC2 实例都可以连接到您的缓存。

   1. 如果您使用的是 ElastiCache 无服务器，请通过选择添加规则来**添加其他规则**。

   1. 在 **Type** 列中，选择 **Custom TCP rule**。

   1. 如果用 ElastiCache 于 Redis OSS，则在**端口范围**框中键入`6380`。

      如果用 ElastiCache 于 Memcached，则在 “**端口范围**” 框中键入`11212`。

   1. 在**源**框中，选择**任何具有端口范围 (0.0.0.0/0) 的任意位置**，这样您在亚马逊 VPC 中启动的任何 Amazon EC2 实例都可以连接到您的缓存。

   1. 选择**保存**

## 下载并设置命令行访问权限
<a name="Download-and-install-cli"></a>

**下载并安装 *valkey-cli* 实用工具。**

如果你用 ElastiCache 于 Valkey，那么你可能会发现 valkey-cli 实用程序很有用。如果你使用的是带有 redis-cli 的 Redis OSS，可以考虑切换到 valkey-cli，因为它也 ElastiCache 适用于 Redis OSS。

1. 使用您选择的连接实用程序连接到您的 Amazon EC2 实例。有关如何连接亚马逊 EC2 实例的说明，请参阅《[亚马逊 EC2 入门指南》](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/EC2_GetStarted.html)。

1. 根据您的设置运行相应命令，下载并安装 valkey-cli 实用工具。

   **Amazon Linux 2**

   ```
   sudo amazon-linux-extras install epel -y
   sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y
   wget https://github.com/valkey-io/valkey/archive/refs/tags/8.0.0.tar.gz
   tar xvzf valkey-8.0.0.tar.gz
   cd valkey-8.0.0
   make BUILD_TLS=yes
   ```

**注意**  
当您安装 redis6 程序包时，它会安装 redis6-cli 并默认提供加密支持。
在安装 valkey-cli 或 redis-cli 时，必须为 TLS 提供构建支持。 ElastiCache 只有启用 TLS 后，才能访问无服务器。
如果您要连接到未加密的集群，则不需要 `Build_TLS=yes` 选项。