本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設計您自己的 ElastiCache Redis OSS 叢集
以下是您必須採取的一次性動作,才能設計自己的 ElastiCache Redis OSS 叢集。
如需有關設定 ElastiCache 的進一步資訊,請參閱 設定 ElastiCache。
步驟 1:建立子網路群組
建立叢集前,您需先建立子網路群組。快取子網路群組是子網路的集合,您可能想要在 VPC 中為快取叢集指定該集合。在 VPC 中啟動快取叢集時,您必須選取快取子網路群組。然後 ElastiCache 會使用該快取子網路群組,對叢集中的每個快取節點指派該子網路內的 IP 地址。
建立新子網路群組時,請記下可用 IP 地址的數量。如果子網路有很少可用的 IP 地址,對於您還可以新增至叢集的節點數量,您可能受到限制。若要解決此問題,您可以對子網路群組指定一或多個子網路,使得您在叢集的可用區域中有足夠數量的 IP 地址。在那之後,您便可以將更多節點新增至您的叢集。
下列程序顯示如何建立名為 mysubnetgroup
(控制台) 的子網路群組和 AWS CLI。
下列程序顯示如何建立子網路群組 (主控台)。
建立子網路群組 (主控台)
-
登入 AWS 管理主控台,然後開啟 ElastiCache 主控台,網址為 https://https://console.aws.amazon.com/elasticache/
。 -
在導覽清單中,選擇 Subnet Groups (子網路群組)。
-
選擇 Create Subnet Group (建立子網路群組)。
-
在 Create Subnet Group (建立子網路群組) 精靈中,執行下列動作。當您滿意所有設定後,請選擇 Yes, Create (是,建立)。
-
在 Name (名稱) 方塊中,輸入子網路群組的名稱。
-
在 Description (描述) 方塊中,輸入子網路群組的描述。
-
在 VPC ID 方塊中,選擇您建立的 Amazon VPC。
-
在 Availability Zone (可用區域) 和 Subnet ID (子網路 ID) 清單中,選擇可用區域或本地區域,以及私有子網路的 ID,然後選擇 Add (新增)。
-
-
在出現的確認訊息中,選擇 Close (關閉)。
您新的子網路群組會顯示在 ElastiCache 主控台的 Subnet Groups (子網路群組) 清單中。您可以在視窗底部選擇要查看詳細資訊的子網路群組,例如與此群組相關聯的所有子網路。
在命令提示字元中,使用命令 create-cache-subnet-group
來建立子網路群組。
若為 Linux、macOS 或 Unix:
aws elasticache create-cache-subnet-group \ --cache-subnet-group-name
mysubnetgroup
\ --cache-subnet-group-description"Testing"
\ --subnet-idssubnet-53df9c3a
針對 Windows:
aws elasticache create-cache-subnet-group ^ --cache-subnet-group-name
mysubnetgroup
^ --cache-subnet-group-description"Testing"
^ --subnet-idssubnet-53df9c3a
此命令應該產生類似下列的輸出:
{
"CacheSubnetGroup": {
"VpcId": "vpc-37c3cd17",
"CacheSubnetGroupDescription": "Testing",
"Subnets": [
{
"SubnetIdentifier": "subnet-53df9c3a",
"SubnetAvailabilityZone": {
"Name": "us-west-2a"
}
}
],
"CacheSubnetGroupName": "mysubnetgroup"
}
}
如需詳細資訊,請參閱 AWS CLI 主題 create-cache-subnet-group。
步驟 2:建立叢集
在建立供生產使用的叢集之前,您明顯需要考慮如何設定叢集以符合您的業務需求。這些問題在「在 ElastiCache 中準備叢集」一節中說明。此入門練習的用意是讓您建立停用叢集模式的叢集,且可以接受它們適用的預設組態值。
您建立的叢集將會實際上線,而非在沙盒中執行。您需為執行個體支付標準 ElastiCache 使用費,直到您將執行個體刪除為止。如果您一口氣地完成這裡所述的練習,並在完成時刪除您的叢集,則總計費用會很少 (通常不到 1 美元)。如需 ElastiCache 使用費率的詳細資訊,請參閱 Amazon ElastiCache
您的叢集會在以 Amazon VPC 服務為基礎的 Virtual Private Cloud (VPC) 中啟動。
建立 Redis OSS (停用叢集模式) 叢集 (主控台)
使用 ElastiCache 主控台建立 Redis OSS (停用叢集模式) 叢集
-
登入 AWS Management Console ,並在 https://Amazon ElastiCache 主控台://https:/https://console.aws.amazon.com/elasticache/
://https://https://www./www.micro..microsoft.com。 -
從右上角的清單中,選擇您要啟動此叢集 AWS 的區域。
-
從導覽窗格選擇 Get started (開始使用)。
選擇 Create VPC (建立 VPC),然後按照建立虛擬私有雲端 (VPC) 中列出的步驟操作。
在 ElastiCache 儀表板頁面上,選擇 Valkey 快取或 Redis OSS 快取。在本練習中,我們將選擇 Redis OSS 快取,然後選擇建立 Redis OSS 快取。
-
在 Cluster settings (叢集設定) 中,執行下列動作:
選擇 Configure and create a new cluster (設定和建立新叢集)。
針對 Cluster mode (叢集模式),選擇 Disabled (已停用)。
-
針對 Cluster info (叢集資訊),輸入 Name (名稱) 值。
-
(選用) 輸入 Description (描述) 值。
在 Location (位置) 中:
一旦叢集的狀態變為可用,您就可以為其授予 Amazon EC2 存取權限、連線至叢集並開始使用叢集。如需詳細資訊,請參閱步驟 3。授權存取叢集及步驟 4. 連線至叢集的節點。
重要
在您的叢集可用之後,系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用,您必須將其刪除。請參閱 在 ElastiCache 中刪除叢集。
範例
下列 CLI 程式碼會建立沒有複本的 Redis OSS (停用叢集模式) 快取叢集。
若為 Linux、macOS 或 Unix:
aws elasticache create-cache-cluster \ --cache-cluster-id
my-cluster
\ --cache-node-typecache.r4.large
\ --engineredis
\ --num-cache-nodes1
\ --snapshot-arnsarn:aws:s3:::my_bucket/snapshot.rdb
針對 Windows:
aws elasticache create-cache-cluster ^ --cache-cluster-id
my-cluster
^ --cache-node-typecache.r4.large
^ --engineredis
^ --num-cache-nodes1
^ --snapshot-arnsarn:aws:s3:::my_bucket/snapshot.rdb
若要在叢集已啟用的情況下作業,請參閱下列主題:
若要使用主控台,請參閱建立 Valkey 或 Redis OSS (啟用叢集模式) 叢集 (主控台)。
若要使用 AWS CLI,請參閱 建立 Valkey 或 Redis OSS (啟用叢集模式) 叢集 (AWS CLI)。
步驟3:授予叢集的存取權
本節假設您已熟悉如何啟動及連線至 Amazon EC2 執行個體。如需詳細資訊,請參閱 Amazon EC2 入門指南。
所有 ElastiCache 叢集都設計為從 Amazon EC2 執行個體進行存取。最常見的情況是從同一個 Amazon Virtual Private Cloud (Amazon VPC) 裡的 Amazon EC2 執行個體中存取 ElastiCache 叢集,本練習也適用此情況。
根據預設,僅有用來建立叢集的帳戶可以透過網路存取您的叢集。因此,在您從 EC2 執行個體連接至叢集之前,必須先授權讓 EC2 執行個體存取叢集。需要的步驟取決於您是在 EC2-VPC 還是 EC2-Classic 中啟動叢集。
最常見的使用案例是部署於 EC2 執行個體的應用程式時,需要連線至相同 VPC 中的叢集。若要管理相同 VPC 中 EC2 執行個體與叢集之間的存取權限,最簡單的方式如下:
-
為您的叢集建立 VPC 安全群組。此安全群組可用來限制叢集執行個體的存取權限。舉例來說,您可以為此安全群建置立自訂規則,允許使用您在建立自訂規則時指派給叢集的連接埠存取 TCP,並可建立您將用於存取叢集的 IP 位址。
Redis OSS 叢集和複寫群組的預設連接埠為
6379
。重要
Amazon ElastiCache 安全群組僅適用於不在 Amazon Virtual Private Cloud (Amazon VPC) 環境中執行的叢集。如果您在 Amazon Virtual Private Cloud 中執行,主控台的導覽窗格中的 Security Groups (安全群組) 就無法使用。
如果您在 Amazon VPC 中執行 ElastiCache 節點,則可以使用 Amazon VPC 安全群組 (與 Amazon VPC 安全群組不同) 來控制叢集的存取權。如需在 Amazon VPC 中使用 ElastiCache 的詳細資訊,請參閱「Amazon VPC 和 ElastiCache 安全性」
-
為您的 EC2 執行個體建立 VPC 安全群組 (Web 和應用程式伺服器)。若有需要,此安全群組可允許透過 VPC 路由表存取網際網路上的 EC2 執行個體。舉例來說,您可以在此安全群組上設定規則,允許 TCP 透過連接埠 22 存取 EC2 執行個體。
-
在您叢集的安全群組中建立自訂規則,允許來自您為 EC2 執行個體所建立之安全群組的連線。這樣做會允許安全群組的所有成員存取叢集。
注意
如果您打算使用 搭配 ElastiCache 使用本地區域,請確保您已啟用它們。在本地區域中建立子網路群組時,VPC 會延伸至該本地區域,VPC 會將子網路視為任何其他可用區域中的任何子網路群組。所有相關閘道和路由表都將自動調整。
在允許來自其他安全群組連線的 VPC 安全群組中建立規則
-
登入 AWS 管理主控台,然後開啟 Amazon VPC 主控台,網址為 https://https://console.aws.amazon.com/vpc
.。 -
在導覽窗格中,選擇安全群組。
-
選取或建立您將用於叢集執行個體的安全群組。在 Inbound Rules (傳入規則) 下方,選取 Edit Inbound Rules (編輯傳入規則),然後選取 Add Rule (新增規則)。此安全群組將允許其他安全群組成員存取。
-
從 Type (類型) 選擇 Custom TCP Rule (自訂 TCP 規則)。
-
針對 Port Range (連接埠範圍),指定您在建立叢集時所使用的連接埠。
Redis OSS 叢集和複寫群組的預設連接埠為
6379
。 -
在 Source (來源) 方塊中輸入安全群組的 ID。從清單中選取您將用於 Amazon EC2 執行個體的安全群組。
-
-
完成後,請選擇 Save (儲存)。
啟用存取權之後,您便可連線到節點,如下節所述。
如需從不同的 Amazon VPC、不同 AWS 區域或甚至是您的公司網路存取 ElastiCache 叢集的資訊,請參閱下列內容:
步驟 4:連線至叢集的節點
在繼續之前,請先完成步驟3:授予叢集的存取權。
本節假設您已建立 Amazon EC2 執行個體且可連線至該執行個體。如需操作方式說明,請參閱 Amazon EC2 入門指南。
只有在您獲得授權執行此作業時,Amazon EC2 執行個體才能連線至叢集節點。
尋找您的節點端點
當您的叢集處於可用狀態,且您獲得存取授權後,您就可以登入 Amazon EC2 執行個體並連線至叢集。若要執行此作業,您必須先判斷端點。
尋找 Valkey 或 Redis OSS (停用叢集模式) 叢集的端點 (主控台)
如果 Redis OSS (停用叢集模式) 叢集只有一個節點,則節點的端點會同時用於讀取和寫入。如果叢集有多個節點,則端點類型有三種:主要端點、讀取者端點和節點端點。
主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動,我們建議您的應用程式連線到主要端點。
讀取器端點會在 ElastiCache for Redis OSS 叢集中的所有僅供讀取複本之間平均分割端點的傳入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除,讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache for Redis OSS 叢集的多個僅供讀取複本放在不同的 AWS 可用區域 (AZ),以確保讀取器端點的高可用性。
注意
讀取者端點並非負載平衡器。它是一筆 DNS 記錄,會以循環配置方式解析為其中一個複本節點的 IP 地址。
針對讀取活動,應用程式也可連線到叢集中的任何節點。與主要端點不同,節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本),您必須更新您應用程式中的節點端點。
尋找 Redis OSS (停用叢集模式) 叢集的端點
-
登入 AWS Management Console ,並在 https:// 開啟 ElastiCache 主控台。 https://console.aws.amazon.com/elasticache/
-
從導覽窗格中,選擇 Redis OSS 快取。
叢集畫面會顯示清單,其中包含任何現有的 Valkey 或 Redis OSS 無伺服器快取、Redis OSS (停用叢集模式) 叢集和 Redis OSS (啟用叢集模式) 叢集。選擇您在 建立 Redis OSS (停用叢集模式) 叢集 (主控台) 一節中建立的叢集。
-
若要尋找叢集的主要和/或讀取器端點,請選擇叢集名稱 (而非選項按鈕)。
Redis OSS (停用叢集模式) 叢集的主要端點和讀取器端點
如果叢集中只有一個節點,就不會有主要端點,因此您必須繼續下一個步驟。
-
如果 Redis OSS (停用叢集模式) 叢集有複本節點,您可以選擇叢集的名稱,然後選擇節點索引標籤,以尋找叢集的複本節點端點。
隨即顯示節點畫面,其顯示叢集中的每個節點、主要複本和複本,並與其端點一起列出。
Redis OSS (停用叢集模式) 叢集的節點端點
-
將端點複製到剪貼簿:
-
逐一尋找您要複製的端點。
-
選擇端點前面的複製圖示。
現在,端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊,請參閱 連線至節點。
-
Redis OSS (停用叢集模式) 主要端點如下所示。其中的差異取決於是否啟用傳輸中加密。
未啟用傳輸中加密
clusterName.xxxxxx
.nodeId
.regionAndAz
.cache.amazonaws.com:port
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
已啟用傳輸中加密
master.clusterName
.xxxxxx
.regionAndAz
.cache.amazonaws.com:port
master.ncit.ameaqx.use1.cache.amazonaws.com:6379
若要進一步探索您的端點,請參閱您所執行引擎和叢集類型的相關主題。
現在,您有了所需的端點,您可以登入 EC2 執行個體並連線到叢集或複寫群組。在下列範例中,您使用 valkey-cli 公用程式來連線至叢集。最新版本的 valkey-cli 也支援 SSL/TLS 來連接啟用加密/身分驗證的叢集。
下列範例使用執行 Amazon Linux 和 Amazon Linux 2 的 Amazon EC2 執行個體。如需搭配其他 Linux 發行版本安裝和編譯 valkey-cli 的詳細資訊,請參閱特定作業系統的文件。
注意
此程序涵蓋使用 valkey-cli 公用程式測試連線,僅供計劃外使用。如需支援的用戶端清單,請參閱 Valkey 文件
連線至停用叢集模式的未加密叢集
執行下列命令,以連線至叢集,並將
primary-endpoint
和port number
取代為您叢集的端點和連接埠號碼。(Valkey 和 Redis OSS 的預設連接埠為 6379。)src/valkey-cli -h
primary-endpoint
-pport number
產生命令提示字元的結果看起來類似如下:
primary-endpoint
:port number
您現在可以執行 Valkey 和 Redis OSS 命令。
set x Hello OK get x "Hello"
連線至啟用叢集模式的未加密叢集
執行下列命令,以連線至叢集,並將
configuration-endpoint
和port number
取代為您叢集的端點和連接埠號碼。(Valkey 和 Redis OSS 的預設連接埠為 6379。)src/valkey-cli -h
configuration-endpoint
-c -pport number
注意
上述命令中,選項 -c 可讓叢集模式遵循 -ASK 和 -MOVED 重新引導
。 產生命令提示字元的結果看起來類似如下:
configuration-endpoint
:port number
您現在可以執行 Valkey 和 Redis OSS 命令。請注意,發生重新引導是因為您使用 -c 選項啟用了此功能。如果未啟用重新引導,該命令會傳回 MOVED 錯誤。如需 MOVED 錯誤的詳細資訊,請參閱叢集規格
。 set x Hi -> Redirected to slot [16287] located at 172.31.28.122:6379 OK set y Hello OK get y "Hello" set z Bye -> Redirected to slot [8157] located at 172.31.9.201:6379 OK get z "Bye" get x -> Redirected to slot [16287] located at 172.31.28.122:6379 "Hi"
連線到啟用加密/身分驗證的叢集
根據預設,valkey-cli 會在連線至 Valkey 和 Redis OSS 時使用未加密的 TCP 連線。選項會在 valkey-cli 編譯時BUILD_TLS=yes
啟用 SSL/TLS,如上下載並設定命令列存取一節所示。啟用 AUTH 功能為選用操作。不過,您必須啟用傳輸中加密功能,才能啟用 AUTH。如需 ElastiCache 加密和身分驗證的詳細資訊,請參閱「ElastiCache 傳輸中加密 (TLS)」。
注意
您可以--tls
搭配 valkey-cli 使用 選項,以連線至啟用和停用的叢集模式加密叢集。如果叢集已設定 AUTH 字符,則可以使用 -a
選項提供 AUTH 密碼。
在下列範例中,請務必將 cluster-endpoint
和 port number
取代為您叢集的端點和連接埠號碼。(Redis OSS 的預設連接埠為 6379。)
連線到停用叢集模式的加密叢集
下列範例會連線到啟用加密和身分驗證的叢集:
src/valkey-cli -h
cluster-endpoint
--tls -ayour-password
-pport number
下列範例會連線到只啟用加密的叢集:
src/valkey-cli -h
cluster-endpoint
--tls -pport number
連線到啟用叢集模式的加密叢集
下列範例會連線到啟用加密和身分驗證的叢集:
src/valkey-cli -c -h
cluster-endpoint
--tls -ayour-password
-pport number
下列範例會連線到只啟用加密的叢集:
src/valkey-cli -c -h
cluster-endpoint
--tls -pport number
連線至叢集後,您可以執行未加密叢集的 Valkey 或 Redis OSS 命令,如上述範例所示。
valkey-cli 或 Redis-cli 的替代方案
如果叢集未啟用叢集模式,而且您需要連線到叢集進行簡短測試,但不需要經過 valkey-cli 或 redis-cli 編譯,您可以使用 telnet 或 openssl。在下列命令範例中,請務必將 cluster-endpoint
和 port number
取代為您叢集的端點和連接埠號碼。(Redis OSS 的預設連接埠為 6379。)
下列範例會連線到啟用加密和/或身分驗證且停用叢集模式的叢集:
openssl s_client -connect
cluster-endpoint
:port number
如果叢集已設定密碼,請先連線至叢集。連線後,請使用下列命令驗證叢集,然後按 Enter
鍵。在下列範例中,將 your-password
取代為您的叢集密碼。
Auth
your-password
下列範例會連線到沒有啟用加密和/或身分驗證且停用叢集模式的叢集:
telnet
cluster-endpoint
port number
若要使用 Valkey 或 Redis OSS CLI 從 EC2 Windows 執行個體連線至叢集,您必須下載 valkey-cli 套件,並使用 valkey-cli.exe 從 EC2 Windows 執行個體連線至 Valkey 或 Redis OSS 叢集。
在下列範例中,您使用 valkey-cli 公用程式來連線至未啟用加密並執行 Valkey 或 Redis OSS 的叢集。如需 Valkey 和可用命令的詳細資訊,請參閱 Valkey 網站上的 Valkey 命令
使用 valkey-cli 連線至未啟用加密的 Valkey 或 Redis OSS 叢集
-
使用您選擇的連線公用程式連線到 Amazon EC2 執行個體。如需如何連線到 Amazon EC2 執行個體的說明,請參閱 Amazon EC2 入門指南。
在網際網路瀏覽器https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip
中複製並貼上連結,以從 GitHub 的可用版本下載 Redis OSS 用戶端的 zip 檔案 https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504 將 zip 檔案解壓縮到所需的資料夾/路徑。
開啟命令提示字元,並變更為 Valkey 目錄,然後執行命令
c:\Valkey>valkey-cli -h
。Valkey_Cluster_Endpoint
-p 6379例如:
c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
-
執行 Valkey 或 Redis OSS 命令。
您現在已連線至叢集,可以執行如下所示的 Valkey 或 Redis OSS 命令。
set a "hello"
// Set key "a" with a string value and no expiration OKget a
// Get value for key "a" "hello"get b
// Get value for key "b" results in miss (nil)set b "Good-bye" EX 5
// Set key "b" with a string value and a 5 second expiration "Good-bye"get b
// Get value for key "b" "Good-bye" // wait >= 5 secondsget b
(nil) // key has expired, nothing returnedquit
// Exit from valkey-cli