本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設計您自己的 ElastiCache (Valkey) 叢集
以下是您開始設計 ElastiCache (Valkey) 叢集時必須採取的一次性動作。
步驟 1:建立子網路群組
建立 ElastiCache (Valkey) 叢集之前,請先建立子網路群組。快取子網路群組是您可能想要為 中的快取叢集指定的子網路集合VPC。在 中啟動快取叢集時VPC,您需要選取快取子網路群組。然後使用 ElastiCache 該快取子網路群組,將該子網路內的 IP 地址指派給叢集中的每個快取節點。
建立新子網路群組時,請記下可用 IP 地址的數量。如果子網路有很少可用的 IP 地址,對於您還可以新增至叢集的節點數量,您可能受到限制。若要解決此問題,您可以對子網路群組指定一或多個子網路,使得您在叢集的可用區域中有足夠數量的 IP 地址。在那之後,您便可以將更多節點新增至您的叢集。
如需設定的詳細資訊, ElastiCache 請參閱 設定 ElastiCache。
下列程序顯示如何建立名為 mysubnetgroup
(控制台) 的子網路群組和 AWS CLI。
下列程序顯示如何建立子網路群組 (主控台)。
建立子網路群組 (主控台)
-
登入 AWS 管理主控台,然後在 開啟 ElastiCache 主控台https://console.aws.amazon.com/elasticache/
。 -
在導覽清單中,選擇 Subnet Groups (子網路群組)。
-
選擇 Create Subnet Group (建立子網路群組)。
-
在 Create Subnet Group (建立子網路群組) 精靈中,執行下列動作。當您滿意所有設定後,請選擇 Yes, Create (是,建立)。
-
在 Name (名稱) 方塊中,輸入子網路群組的名稱。
-
在 Description (描述) 方塊中,輸入子網路群組的描述。
-
在 VPC ID 方塊中,選擇您建立VPC的 Amazon。
-
在可用區域和子網路 ID 清單中,選擇私有子網路的可用區域 或 搭配 使用本機區域 ElastiCache和 ID,然後選擇新增 。
-
-
在出現的確認訊息中,選擇 Close (關閉)。
您的新子網路群組會出現在 ElastiCache 主控台的子網路群組清單中。您可以在視窗底部選擇要查看詳細資訊的子網路群組,例如與此群組相關聯的所有子網路。
在命令提示字元中,使用命令 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服務在虛擬私有雲端 (VPC) 中啟動。
建立 Valkey (停用叢集模式) 叢集 (主控台)
使用 ElastiCache 主控台建立 Valkey (停用叢集模式) 叢集
-
登入 AWS Management Console 並在 開啟 Amazon ElastiCache 主控台https://console.aws.amazon.com/elasticache/
。 -
從右上角的清單中,選擇要啟動此叢集 AWS 的區域。
-
從導覽窗格選擇 Get started (開始使用)。
選擇建立VPC並遵循建立虛擬私有雲端 (VPC) 中概述的步驟。
在 ElastiCache 儀表板頁面上,選擇 Valkey 快取或 Redis OSS快取,然後選擇建立 Valkey 快取或 Redis OSS快取。
-
在 Cluster settings (叢集設定) 中,執行下列動作:
選擇 Configure and create a new cluster (設定和建立新叢集)。
針對 Cluster mode (叢集模式),選擇 Disabled (已停用)。
-
針對 Cluster info (叢集資訊),輸入 Name (名稱) 值。
-
(選用) 輸入 Description (描述) 值。
在 Location (位置) 中:
一旦叢集的狀態可用,您就可以授予 Amazon EC2存取權、連線到叢集,並開始使用叢集。如需詳細資訊,請參閱 步驟 3。授權對叢集的存取 和 步驟 4. 連線至叢集的節點。
重要
在您的叢集可用之後,系統就會按叢集作用中時間每個小時或部分小時計費 (即使您並未主動使用亦同)。若要停止此叢集產生費用,您必須將其刪除。請參閱 在 中刪除叢集 ElastiCache。
範例
下列CLI程式碼會建立沒有複本的 Valkey (停用叢集模式) 快取叢集。
若為 Linux、macOS 或 Unix:
aws elasticache create-cache-cluster \ --cache-cluster-id
my-cluster
\ --cache-node-typecache.r4.large
\ --enginevalkey
\ --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
^ --enginevalkey
^ --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 (AmazonVPC) 中的 Amazon EC2執行個體存取 ElastiCache 叢集,這將是本練習的情況。
根據預設,僅有用來建立叢集的帳戶可以透過網路存取您的叢集。您必須先授權EC2執行個體存取叢集,才能從EC2執行個體連線至叢集。
最常見的使用案例是部署在EC2執行個體上的應用程式需要連線到相同 中的叢集VPC。管理相同EC2執行個體和叢集之間存取的最簡單方法是VPC執行下列動作:
-
為您的叢集建立VPC安全群組。此安全群組可用來限制叢集執行個體的存取權限。例如,您可以為此安全群組建立自訂規則,以允許TCP使用您在建立叢集時指派給叢集的連接埠和用於存取叢集的 IP 地址進行存取。
Valkey 或 Redis OSS叢集和複寫群組的預設連接埠為
6379
。重要
Amazon ElastiCache 安全群組僅適用於未在 Amazon Virtual Private Cloud 環境 () 中執行的叢集VPC。如果您在 Amazon Virtual Private Cloud 中執行,主控台的導覽窗格中的 Security Groups (安全群組) 就無法使用。
如果您在 Amazon 中執行 ElastiCache 節點VPC,您可以使用與 ElastiCache 安全群組不同的 Amazon VPC安全群組控制對叢集的存取。如需在 Amazon ElastiCache 中使用 的詳細資訊VPC,請參閱 Amazon VPCs和安全性 ElastiCache
-
為您的EC2執行個體 (網路和應用程式伺服器) 建立VPC安全群組。如有需要,此安全群組可以透過 的VPC路由表允許從網際網路存取EC2執行個體。例如,您可以在此安全群組上設定規則,以允許透過連接埠 22 TCP存取EC2執行個體。
-
在叢集的安全群組中建立自訂規則,以允許來自您為EC2執行個體建立的安全群組的連線。這樣做會允許安全群組的所有成員存取叢集。
注意
如果您打算使用本地區域,請確認本地區域已啟用。當您在該本機區域建立子網路群組時,您的 VPC 會延伸到該本機區域,而您的 VPC會將子網路視為任何其他可用區域中的任何子網路。所有相關閘道和路由表都將自動調整。
在允許從其他VPC安全群組連線的安全群組中建立規則
-
登入 AWS 管理主控台,並在 https://console.aws.amazon.com/vpc
開啟 Amazon VPC主控台。 -
在導覽窗格中,選擇 Security Groups (安全群組)。
-
選取或建立您將用於叢集執行個體的安全群組。在 Inbound Rules (傳入規則) 下方,選取 Edit Inbound Rules (編輯傳入規則),然後選取 Add Rule (新增規則)。此安全群組將允許其他安全群組成員存取。
-
從類型選擇自訂TCP規則 。
-
針對 Port Range (連接埠範圍),指定您在建立叢集時所使用的連接埠。
Valkey 或 Redis OSS叢集和複寫群組的預設連接埠為
6379
。 -
在 Source (來源) 方塊中輸入安全群組的 ID。從清單中選取您要用於 Amazon EC2執行個體的安全群組。
-
-
完成後,請選擇 Save (儲存)。
啟用存取權之後,您便可連線到節點,如下節所述。
如需從不同 Amazon VPC、不同 AWS 區域或甚至公司網路存取ElastiCache 叢集的資訊,請參閱下列內容:
步驟 4. 連線至叢集的節點
在繼續之前,請先完成步驟 3。授權對叢集的存取。
本節假設您已建立 Amazon EC2執行個體,且可與其連線。如需如何執行此操作的指示,請參閱 Amazon EC2 入門指南 。
只有在您授權 Amazon EC2執行個體執行此操作時,才能連線至叢集節點。
尋找您的節點端點
當您的叢集處於可用狀態且您已授權存取該叢集時,您可以登入 Amazon EC2執行個體並連線至叢集。若要執行此作業,您必須先判斷端點。
尋找 Valkey (停用叢集模式) 叢集的端點 (主控台)
如果 Valkey (停用叢集模式) 叢集只有一個節點,則節點的端點會同時用於讀取和寫入。如果叢集有多個節點,則端點類型有三種:主要端點、讀取者端點和節點端點。
主要端點是一律解析為叢集中主要節點DNS的名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動,我們建議您的應用程式連線到主要端點。
讀取器端點將在 ElastiCache 叢集中的所有僅供讀取複本之間平均分割端點的傳入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除,讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache 叢集的多個僅供讀取複本放置在不同的 AWS 可用區域 (AZ),以確保讀取器端點的高可用性。
注意
讀取者端點並非負載平衡器。它是以循環方式解析為其中一個複本節點的 IP 地址DNS的記錄。
針對讀取活動,應用程式也可連線到叢集中的任何節點。與主要端點不同,節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本),您必須更新您應用程式中的節點端點。
尋找 Valkey (停用叢集模式) 叢集的端點
-
登入 AWS Management Console 並在 https://console.aws.amazon.com/elasticache/
開啟 ElastiCache 主控台。 -
從導覽窗格中,選擇 Valkey 快取或 Redis OSS快取 。
叢集畫面將會出現清單,其中包含任何現有的 Valkey 或 Redis 無OSS伺服器快取、Valkey (停用叢集模式) 和 Valkey (啟用叢集模式) 叢集。選擇您在 建立 Valkey (停用叢集模式) 叢集 (主控台) 一節中建立的叢集。
-
若要尋找叢集的主要和/或讀取器端點,請選擇叢集名稱 (而非選項按鈕)。
Valkey (停用叢集模式) 叢集的主要和讀取器端點
如果叢集中只有一個節點,就不會有主要端點,因此您必須繼續下一個步驟。
-
如果 Valkey (停用叢集模式) 叢集有複本節點,您可以選擇叢集的名稱,然後選擇節點索引標籤,以尋找叢集的複本節點端點。
隨即顯示節點畫面,其顯示叢集中的每個節點、主要複本和複本,並與其端點一起列出。
Valkey (停用叢集模式) 叢集的節點端點
-
將端點複製到剪貼簿:
-
逐一尋找您要複製的端點。
-
選擇端點前面的複製圖示。
現在,端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊,請參閱 連線至節點。
-
Valkey (停用叢集模式) 主要端點看起來如下所示。其中的差異取決於是否啟用傳輸中加密。
未啟用傳輸中加密
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 和 Redis OSS用戶端清單,請參閱 Valkey 文件
連線至停用叢集模式的未加密叢集
執行下列命令以連線至叢集並取代
primary-endpoint
以及port number
叢集的端點和連接埠號碼。(Valkey 或 Redis 的預設連接埠OSS為 6379。)src/valkey-cli -h
primary-endpoint
-pport number
產生 Valkey 或 Redis OSS命令提示字元的結果如下所示:
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
之後啟用叢集模式。 產生 Valkey 或 Redis OSS命令提示字元的結果如下所示:
configuration-endpoint
:port number
您現在可以執行 Valkey 或 Redis OSS命令。請注意,發生重新引導是因為您使用 -c 選項啟用了此功能。如果未啟用重新導向,命令會傳回MOVED錯誤。如需MOVED錯誤的詳細資訊,請參閱 Redis OSS叢集規格
。 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 時使用未加密的TCP連線OSS。選項會在編譯 valkey-cli 時BUILD_TLS=yes
啟用 SSL/TLS,如上下載並設定命令列存取一節所示。啟用AUTH是選用的。不過,您必須啟用傳輸中加密,才能啟用 AUTH。如需加密和身分驗證的詳細資訊 ElastiCache ,請參閱 ElastiCache 傳輸中加密 (TLS)。
注意
您可以--tls
搭配 valkey-cli 使用 選項來連線至啟用和停用的叢集模式加密叢集。如果叢集具有AUTH權杖集,您可以使用 選項-a
提供AUTH密碼。
在下列範例中,請務必取代 cluster-endpoint
以及 port number
叢集的端點和連接埠號碼。(Valkey 或 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 替代方案
如果叢集未啟用叢集模式,而且您需要建立叢集的連線以進行簡短測試,但不經過 valkey-cli 編譯,您可以使用 telnet 或 openssl。在下列範例命令中,請務必取代 cluster-endpoint
以及 port number
叢集的端點和連接埠號碼。(Valkey 或 Redis 的預設連接埠OSS為 6379。)
下列範例會連線到啟用加密和/或身分驗證且停用叢集模式的叢集:
openssl s_client -connect
cluster-endpoint
:port number
如果叢集已設定密碼,請先連線至叢集。連線後,請使用下列命令驗證叢集,然後按 Enter
鍵。在下列範例中,取代 your-password
使用叢集的密碼。
Auth
your-password
下列範例會連線到沒有啟用加密和/或身分驗證且停用叢集模式的叢集:
telnet
cluster-endpoint
port number
若要使用 Valkey 或 Redis 從 EC2 Windows 執行個體連線至 Valkey CLI或 Redis OSS OSS叢集CLI,您必須下載 valkey-cli 套件,並使用 valkey-cli.exe 從 EC2 Windows 執行個體連線至 Valkey 或 Redis OSS叢集。
在下列範例中,您可以使用 valkey-cli 公用程式連線到未啟用加密且執行 Valkey 或 Redis 的叢集OSS。如需 Valkey 或 Redis OSS和可用命令的詳細資訊,請參閱 Valkey 網站上的 Valkey 和 Redis OSS命令
使用 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
中複製並貼上連結,以從 的可用版本下載 Valkey 用戶端的 zip 檔案 GitHub https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504 將 zip 檔案解壓縮到所需的資料夾/路徑。
開啟命令提示字元並變更為 Valkey 目錄,然後執行命令
c:\Valkey>valkey-cli -h
。Redis_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
接下來做些什麼?
現在您已嘗試了入門練習,您可以探索下列章節,進一步了解 ElastiCache 和 可用的工具:
完成入門練習後,您可以閱讀這些章節以進一步了解 ElastiCache 管理:
-
建議您具備夠大的快取,以包含所有要快取的資料。同時,您不想要支付超出所需快取數量的費用。此主題可協助您選擇最佳節點大小。
-
識別並解決可能影響叢集效率的問題。