設定 Redis 叢集以實現可擴展性和高可用性
Amazon ElastiCache for Redis 叢集模式的設定、組態、安全及佈建
您在本項教學中,將了解如何使用 ElastiCache for Redis 建立和設定 Redis 叢集。在啟用叢集模式的情況下,Redis 叢集將提升可擴展性及高可用性。您可從小規模開始著手,隨著應用程式成長輕鬆擴展 Redis 資料,並可在不同可用區域設定複本,以便增加讀取容量。您也可在本項教學之中,了解 Reds 叢集部署的部份最佳實務。
Redis 用戶端具有非常豐富的生態系統,支援各種叢集模式功能。因此您能夠非常輕鬆可靠地使用碎片資料,用戶端則可記錄本機快取的雜湊槽位置,藉此提升整體系統效能。
本教學中建立的 ElastiCache 節點符合免費方案資格。
要求
您在本教學中有時需要連線 Redis 叢集,以便體驗第一手的部份功能。這代表您需要存取安裝 Redis 用戶端的 EC2 執行個體。如果您已經有安裝 Redis 用戶端的 EC2 執行個體,就可跳至步驟 1。否則請連線至 Amazon EC2 執行個體,然後遵循以下指示安裝 Redis 用戶端。
如果您沒有 C 編譯器,安裝方法為執行:
$ sudo yum install gcc
下載及編譯 Redis 用戶端:
$ curl -O http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean # Ubuntu systems only
$ make
現在可開始教學。
關於本教學 | |
---|---|
時間 | 10 - 20 分鐘 |
費用 | 符合免費方案資格 |
使用案例 | 擴展、高可用性、即時應用程式 |
產品 | AWS ElastiCache for Redis、AWS 免費方案 |
對象 | 開發人員 |
等級 | 初階 |
上次更新日期 | 2019 年 6 月 5 日 |
步驟 3:進行 Redis 設定
3.5 – 選取「子網路群組」。如需子網路群組的詳細資訊,請參閱文件。
步驟 6:將資料匯入叢集
在此範例中,我們不載入任何子 RDB 檔案,因此我們可以完全略過此設定步驟。但請記住,此選項是可用的。
步驟 9:檢查並建立
在快速檢閱表單中的所有欄位後,您可以按下「建立」。
若您偏好使用 Amazon CLI,以下命令可一次建立 Redis 叢集:
$ aws elasticache create-replication-group \
--replication-group-id elc-tutorial \
--replication-group-description "Tutorial example" \
--num-node-groups 3 \
--cache-node-type cache.t2.micro \
--cache-parameter-group default.redis5.0.cluster.on \
--engine redis \
--engine-version 5.0.3 \
--cache-subnet-group-name sn-value \
--security-group-ids sg-value \
--node-group-configuration \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1b','us-east-1c',Slots=0-5460" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1b',ReplicaAvailabilityZones='us-east-1c','us-east-1a',Slots=5461-10921" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1a','us-east-1b',Slots=10922-16383"
對於 --security-group-ids 的引數,您必須將 sg-value 更換為欲使用的安全群組 ID。
至於 --cache-subnet-group-name 的引數,請將 sn-value 更換為子網路群組名稱。如果您需要建立子網路群組,請使用下列命令:
$ aws elasticache create-cache-subnet-group \
--cache-subnet-group-name elc-tutorial-subnet \
--cache-subnet-group-description "Tutorial Subnet Group" \
--subnet-ids sn-ids
sn-ids 值必須為子網路 ID 清單。
若您偏好使用 Amazon API,以下要求將建立 Redis 叢集:
https://elasticache.us-east-1.amazonaws.com/
?Action=CreateReplicationGroup
&CacheParameterGroup=default.redis5.0.cluster.on
&Engine=redis
&EngineVersion=5.0.3
&ReplicationGroupDescription=Tutorial%20example
&ReplicationGroupId=elc-tutorial
&NumNodeGroups=3
&PrimaryClusterId=elc-primary
&ReplicasPerNodeGroup=2
&Version=<version>
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=<timestamp>
&X-Amz-Credential=<credential>
您在之前要求中必須提供版本、時間戳記和 X-Amz-登入資料的值。
步驟 11:觸發容錯移轉
現在您擁有正常運作且狀態良好的 Redis 叢集。叢集模式的功能之一,就是叢集可在節點失效時自行修復。為了測試前述主張,您可觸發手動容錯移轉,接下來將發生以下情況:將選取讀取複本取代主節點,一旦執行容錯移轉,就能連線至新的主節點。同時新的複本將自動新增,這樣叢集仍擁有一個主節點和兩個複本。
使用步驟 10 的端點檢查節點角色。
11.1 — 檢查端點角色。
endpoint:6379> ROLE
1) "master"
...
您希望連線至主節點。如果您並未連線主節點,請嘗試以不同端點進行。您有三次機會進行連線。
一旦您找到主節點:
步驟 12:刪除叢集
為了完成此實驗,您將了解如何刪除不再需要使用的 Redis 叢集。
若要刪除 Redis 叢集,請前往 ElastiCache 儀表板並遵循以下指示:
12.1 – 選取左側面板的「Redis」。
這會向您顯示所有 Redis 叢集的清單。
建議的後續步驟
進一步了解
如果您需要進一步了解 Redis 叢集,請參閱 Redis Cluster 101 部落格貼文。 如需更多入門說明、開發人員指南,以及使用案例技術部落格,請造訪我們的資源頁面。
選擇適當的節點大小
判定 Redis 節點大小似乎並不容易,不過我們已經制定準則,協助您依據需求選擇適當的節點大小。
快取策略
最後您可進一步了解各種快取策略及最佳實務,協助提升效能及可靠度。