一般

基礎知識

問:什麼是 Amazon ElastiCache?
Amazon ElastiCache 是一種 Web 服務,讓使用者能夠在雲端輕鬆部署和執行與 Memcached 或 Redis 協定相容的伺服器節點。Amazon ElastiCache 允許您從高速、受管的記憶體內系統擷取資訊,而不是完全倚賴速度較慢的磁碟型資料庫,藉此提高 Web 應用程式的效能。此服務可簡化和免除記憶體內環境的管理、監控和操作,讓您將工程資源投注在應用程式開發。使用 Amazon ElastiCache,不僅能夠改善使用者動作和查詢的負載與回應時間,也可降低與擴展 Web 應用程式相關的成本。

Amazon ElastiCache 可自動化分散式記憶體內鍵值環境操作所需的常見管理工作。使用 Amazon ElastiCache,只需在 AWS 管理主控台按幾下滑鼠,就能在幾分鐘內為您的應用程式架構新增快取或記憶體內層。佈建叢集後,Amazon ElastiCache 即可自動偵測和更換故障的節點,並藉此提供一個彈性的系統,以降低會拖慢網站和應用程式載入時間的資料庫過載風險。透過與 Amazon CloudWatch 監控功能整合,Amazon ElastiCache 能提供增強的可見度,以便您更清楚了解與節點相關的關鍵效能指標。Amazon ElastiCache 與 Memcached 和 Redis 協定相容,因此您在現有 Memcached 或 Redis 環境內使用的程式碼、應用程式和常用工具都能順暢地與本服務搭配使用。使用 Amazon ElastiCache 提供的叢集化組態支援,您可充分利用快速、可擴展且容易使用的受管服務,以滿足高需求應用程式的需要。與所有 Amazon Web Services 相同,無需前期投資,只需為使用的資源付費。

問:什麼是記憶體內快取,而它對應用程式有何幫助?
Amazon ElastiCache 提供的記憶體內快取可以顯著改善許多高讀取量的應用程式工作負載 (如社交聯網、遊戲、媒體共享和問答集入口網站) 或運算密集型工作負載 (如推薦引擎) 的延遲和輸送量。記憶體內快取透過將關鍵資料存放在記憶體來提供低延遲存取,以提高應用程式效能。已快取的資訊可能包括 I/O 密集型資料庫查詢的結果或運算密集型計算的結果。

問:是否可在快取以外的使用案例使用 Amazon ElastiCache?
是。ElastiCache for Redis 可用來做為主要記憶體內機碼值資料存放區,它提供快速、低於一毫秒的資料效能、高可用性和可擴展性。您可以選擇設定 500 節點的叢集,此叢集的範圍在 83 個碎片 (每個碎片一個主節點和五個複本) 和 500 個碎片 (單一主節點,無複本) 之間,從而提供最多 340 TB 記憶體。從 Redis 5.0.6 版開始,Amazon ElastiCache for Redis 支援 500 節點的叢集。請參閱這裡以了解排行榜、速率限制、佇列和對談等使用案例。

問:是否可透過 AWS CloudFormation 使用 Amazon ElastiCache?
AWS CloudFormation 提供 AWS CloudFormation 範本以簡化佈建和管理程序,讓您能夠以快速且可靠的方式佈建服務或應用程式。AWS CloudFormation 提供用來建立叢集 (MemCached 和 Redis) 和複寫群組的範本,為 Amazon ElastiCache 提供全方位的支援。這些範本已根據 ElastiCache Redis 最新宣布的叢集化 Redis 組態進行更新,讓 Amazon ElastiCache 客戶擁有更多彈性且更容易使用。

問:Amazon ElastiCache 可代表我管理哪些項目?
Amazon ElastiCache 管理與設定分散式記憶體內環境相關的工作,從佈建請求的伺服器資源到安裝軟體。環境啟動和執行後,該服務會自動處理常見的管理工作,如故障偵測和恢復及軟體修補等。Amazon ElastiCache 提供與節點相關的詳細監控指標,讓您能夠對問題進行快速診斷和反應。例如,您可以設定閾值,在其中一個節點的請求過載時收到警示。

問:什麼是 Amazon ElastiCache 節點、碎片和叢集?
節點是 Amazon ElastiCache 部署中最小的建置區塊。它是大小固定、與網路連接的安全 RAM 區塊。每個節點都執行一個 Memcached 或 Redis 協定相容服務的執行個體,且有其自己的 DNS 名稱和連接埠。受支援的節點類型很多,各有不同的相關記憶體數量。Redis 碎片是叢集鍵值空間的子集,其中包含主要節點和零或多個僅供讀取複本。如需有關 Redis 部署的詳細資訊,請參閱下方的 Redis 部分。叢集是由碎片組合而成。

問:Amazon ElastiCache 支援哪些引擎?
Amazon ElastiCache 提供全受管的 Redis (在 Stack Overflow 開發人員調查中連續 5 年被開發人員評為最受喜愛的資料庫) 以及 Memcached,後者適用於要求低於一毫秒回應時間要求嚴格的應用程式。

問:如何開始使用 Amazon ElastiCache?
如果您還沒有註冊 Amazon ElastiCache,可以按一下 Amazon ElastiCache 頁面上的「開始使用」按鈕,然後完成註冊程序。您必須擁有 Amazon Web Services 帳戶;如果沒有帳戶,在您開始 Amazon ElastiCache 註冊程序時,系統會提示您建立一個帳戶。註冊 ElastiCache 後,請參閱 Amazon ElastiCache 文件,其中包含 Amazon ElastiCache for RedisAmazon ElastiCache for Memcached 入門指南。

熟悉 Amazon ElastiCache 之後,即可使用 AWS 管理主控台或 Amazon ElastiCache API 在幾分鐘內啟動叢集。

問:如何建立叢集?
建立叢集非常簡單,您可以使用 AWS 管理主控台、Amazon ElastiCache API 或命令列工具。要使用 AWS 管理主控台啟動叢集,按一下 "Memcached" 或 "Redis" 標籤中的 "Create" 按鈕。然後,您只需指定叢集識別符、節點類型和節點數量,就能建立包含所需記憶體數量的叢集。此外,您還可以使用 CreateCacheCluster API 或 elasticache-create-cache-cluster 命令建立叢集。如果建立叢集時沒有指定可用區域,AWS 會根據您的記憶體要求和可用容量自動放置。

問:我可以選擇哪些節點類型?
Amazon ElastiCache 支援下列節點類型:

最新一代節點:
cache.m4.large︰6.42 GiB、cache.m4.xlarge14.28 GiB、cache.m4.2xlarge︰29.7 GiB、cache.m4.4xlarge︰60.78 GiB、cache.m4.10xlarge︰154.64 GiB、cache.m5.large︰6.38 GiB、cache.m5.xlarge︰12.93 GiB、cache.m5.2xlarge︰26.04 GiB、cache.m5.4xlarge︰52.26 GiB、cache.m5.12xlarge︰157.12 GiB、cache.m5.24xlarge︰314.32 GiB、cache.m6g.large︰6.38 GiB、cache.m6g.xlarge︰12.94 GiB、cache.m6g.2xlarge︰26.05 GiB、cache.m6g.4xlarge︰52.26 GiB、cache.m6g.8xlarge︰103.68 GiB、cache.m6g.12xlarge︰157.13 GiB、cache.m6g.16xlarge︰209.55 GiB、cache.r4.large︰12.3 GiB、cache.r4.xlarge︰25.05 GiB、cache.r4.2xlarge︰50.47 GiB、cache.r4.4xlarge︰101.38 GiB、cache.r4.8xlarge︰203.26 GiB、cache.r4.16xlarge︰407 GiB、cache.r5.large︰13.07 GiB、cache.r5.xlarge︰26.32 GiB、cache.r5.2xlarge︰52.82 GiB、cache.r5.4xlarge︰105.81 GiB、cache.r5.12xlarge︰317.77 GiB、cache.r5.24xlarge︰635.61 GiB、cache.r6g.large︰13.07 GiB、cache.r6g.xlarge︰26.32 GiB、cache.r6g.2xlarge︰52.82 GiB、cache.r6g.4xlarge︰105.81 GiB、cache.r6g.8xlarge︰209.55 GiB、cache.r6g.12xlarge︰317.77 GiB、cache.r6g.16xlarge: 419.1 GiB、cache.t2.micro︰555 MB、cache.t2.small︰1.55 GiB、cache.t2.medium︰3.22 GiB、cache.t3.micro︰0.5 GiB、cache.t3.small︰1.37 GiB、cache.t3.medium︰3.09 GiB、cache.t4g.micro︰0.5 GiB、cache.t4g.small︰1.37 GiB、cache.t4g.medium︰3.09 GiB

具有資料分層的最新一代節點:
cache.r6gd.xlarge︰26.32 GiB memory、99.33 GiB SSD,cache.r6gd.2xlarge︰52.82 GiB memory、199.07 GiB SSD,cache.r6gd.4xlarge︰105.81 GiB memory、398.14 GiB SSD,cache.r6gd.8xlarge︰209.55 GiB memory、796.28 GiB SSD,cache.r6gd.12xlarge︰317.77 GiB memory、1194.42 GiB SSD,cache.r6gd.16xlarge︰419.1 GiB memory、1592.56 GiB SSD

上述節點類型的 Memcached 或 Redis 可用記憶體已將 Amazon ElastiCache 系統軟體消耗列入考量。叢集的記憶體總量是每個碎片中可用記憶體的整數倍數。例如,如果一個叢集包含 10 個 6 GB 的碎片,則可提供 60 GB 的記憶體總量。

問:如何存取我的節點?
叢集可供使用之後,您可以在 AWS 管理主控台使用下列步驟擷取節點端點:

  • 瀏覽到 "Amazon ElastiCache" 標籤。
  • 按一下 "(Number of) Nodes" 連結,再瀏覽到 "Nodes" 標籤。
  • 按一下 "Copy Node Endpoint(s)" 按鈕。

或者,您可以使用 DescribeCacheClusters API 擷取端點清單。

之後,您就能使用此端點清單組態您的 Memcached 或 Redis 用戶端,並使用您最常用的程式設計語言在您的 ElastiCache 節點中新增或刪除資料。為了讓網路可以向節點發出請求,您需要授予存取權限。如需詳細的快速入門說明,請參閱我們的 Amazon ElastiCache for RedisAmazon ElastiCache for Memcached 快速入門指南。

問:什麼是維護時段? 我的節點在軟體維護期間是否可用?
您可以將 Amazon ElastiCache 維護時段視為在請求或需要的情況下控制何時執行軟體修補的機會。如果在某星期排定了「維護」事件,則將在您指定的 60 分鐘維護時段的某個時間點啟動和完成維護。

如果排定軟體修補,您的節點將在維護時段內出現短暫停機。如需詳細資訊,請參閱引擎版本管理。軟體修補可以是使用者請求的 (如快取軟體升級),或者是隨需要決定的 (如果我們發現系統或快取軟體中存在任何安全漏洞)。軟體修補不常發生 (通常幾個月才一次),並且幾乎不需要太長的維護時段。如果建立叢集時未指定偏好的每週維護時段,則會指派 60 分鐘的預設值。如果希望修改替您執行維護的時間,您可以透過 AWS 管理主控台或使用 ModifyCacheCluster API 修改資料庫執行個體來執行該操作。如果您選擇這種方式,則每個叢集可以有不同的偏好維護時段。

計費

問:使用 Amazon ElastiCache 如何計價和收費?
按實際用量付費,而且沒有最低費用。定價依據為每種節點所消耗的節點小時數。節點的使用時間未滿一小時,按一小時計費。同一可用區域內的 Amazon EC2 和 Amazon ElastiCache 之間傳輸資料是免費的。儘管在同一區域的不同可用區域內,Amazon EC2 執行個體與 Amazon ElastiCache 節點之間的資料傳輸要收取標準的 Amazon EC2 區域資料傳輸費用,但您只需支付從 Amazon EC2 執行個體傳入和傳出資料的費用。Amazon ElastiCache 節點本身傳入或傳出的流量並不需要支付 Amazon ElastiCache 數據傳輸費。標準資料傳輸費率適用於從區域傳出的資料。如需詳細資訊,請瀏覽定價頁面

問:我的 Amazon ElastiCache 節點的帳單週期怎麼計算?
節點的帳單週期從該節點可用時開始計算。帳單週期持續到節點終止時為止,終止也可能會在刪除時發生。

問:ElastiCache 節點應計費小時數如何界定?
節點小時數是指按您的節點在「可用」狀態下執行的時間計費。如果您不想再支付節點的費用,就必須將其終止,以免產生更多應計費節點小時數。

問:價格含稅嗎?
除非另有說明,否則我們的價格不包括適用的稅金和稅收 (包括加值稅和適用的營業稅)。帳單地址在日本的客戶若使用 AWS 服務,則需負擔日本消費稅。進一步了解

預留節點

問:什麼是 Amazon ElastiCache 預留節點?
預留節點或預留執行個體 (RI) 是一種產品,當您簽訂一年期或三年期的合約時,可獲得隨需用量的大幅折扣。您可以利用預留節點支付一次性預付款,保留一年或三年期特定區域的節點執行,並獲得後續每小時使用費的大幅折扣。預留節點有三種:全額預付、不預付和部分預付,可讓您根據實際的每小時價格平衡預付款金額。

問:預留節點與隨需節點有何區別?
預留節點和隨需節點在功能上完全相同。唯一的區別在於節點的計費方式;對於預留節點,您可以支付一次性預付款,並在合約期間內享受較低的小時費率 (相較於隨需節點)。

問:如何購買和建立預留節點?
您可以使用 AWS 管理主控台中的 "Purchase Reserved Nodes" (購買預留節點) 選項。或者,您可以使用 API 工具,以 DescribeReservedCacheNodesOfferings API 方法列出可供購買的保留,然後呼叫 PurchaseReservedCacheNodesOffering 方法購買快取節點保留。

建立預留節點和啟動隨需節點沒有任何區別。只需指定節點類別,以及進行保留的區域。您成功購買保留之後,Amazon ElastiCache 就會對符合資格的新節點套用折扣後的小時費率。

問:是否一直有保留可供購買?
是。預留節點按區域購買,而非按可用區域。這表示即使某個可用區域的容量有限,仍可以在該區域購買保留,並用於該區域內的不同可用區域。

問:我可以購買多少個預留快取?
您最多可以購買 300 個預留節點。如果要執行 300 個以上節點,請填寫 Amazon ElastiCache 節點申請表

問:如果我想將現有的節點轉換為預留節點,應該怎麼做?
只要在您目前執行節點和希望預訂節點的相同區域內,購買相同節點類別的節點保留即可。如果您成功購買保留,Amazon ElastiCache 將自動在現有的節點套用新的每小時使用費。

問:如果我註冊了預留節點,期間從何時開始? 該期間結束後,會怎麼處理我的節點?
收到您的請求及處理付款授權後,就會啟動與預留節點相關聯的定價變更。您可以在 AWS Account Activity 頁面或使用 DescribeReservedCacheNodes API 追蹤保留的狀態。如果在下一帳單週期前未成功授權一次性付款,折扣價格將不會生效。

保留期間到期後,您的預留節點將恢復為該節點類別和區域所適用的隨需小時費率。

問:我如何控制哪些節點按照預留節點費用計費?
用來建立、修改和刪除節點的 Amazon ElastiCache API 不會區別隨需節點和預留節點,因此您可以靈活運用兩者。我們的系統在計算帳單時會自動套用您的保留,就是所有符合條件的節點都會以較低的預留快取節點每小時費率收費。

問:是否可以將預留節點從一個區域或可用區域轉移到另一個區域或可用區域?
每個預留節點都與特定區域關聯,並且在保留生命週期內固定不變,也無法變更。不過,每個保留都可以用於關聯區域內的任何可用區域。

問:是否可以取消預留?
否,您無法取消預留資料庫執行個體,而且一次性付款 (如果有) 也無法退款。無論使用多少容量,在預留資料庫執行個體期限內都必須繼續支付小時費用。

問:付款選項如何影響我的帳單?
當您使用全額預付付款選項購買 RI 時,是以一次預付款的方式支付整個 RI 合約期限的費用。您可以選擇不預付選項,不支付任何預付金。不預付 RI 的總金額會分配至執行個體合約期限中的每個小時,無論使用量為何,都依該合約期限內的每個小時付費。部分預付款選項是綜合全額預付和不預付選項。支付小額預付款後,無論使用量為何,都會依較低的小時費率為執行個體合約期間內的每個小時計費。

安全性

問:如何控制對 Amazon ElastiCache 的存取?
不使用 VPC 時,Amazon ElastiCache 允許您透過快取安全群組來控制對叢集的存取。安全群組與防火牆的功能類似,可控制對叢集的網路存取。預設情況下,叢集的網路存取處於關閉狀態。如果希望應用程式可以存取您的叢集,必須明確允許來自於特定 EC2 安全群組主機的存取。這個過程稱為輸入。

若要允許透過網路存取您的叢集,需要建立安全群組,並將所需的 EC2 安全群組 (進而指定要允許的 EC2 執行個體) 連結到該群組。您可以在建立時將安全群組與叢集關聯,或者使用 AWS 管理主控台中的 "Modify" 選項。

請注意,目前叢集尚未啟用以 IP 範圍為基礎的存取控制。叢集的所有用戶端必須位於 EC2 網路內,並按照上文所述透過安全群組授權。

使用 VPC 時,請參閱這裡了解更多資訊。

問:我自己資料中心伺服器內執行的程式是否可存取 Amazon ElastiCache?
是。您可以透過資料中心內執行的應用程式存取 Amazon ElastiCache 叢集,前提是您的 VPC 與資料中心之間必須透過 VPN 或 Direct Connect 加以連結。如需詳細資訊,請參閱此處

問:VPC 內 EC2 執行個體所執行的程式是否可以存取 Amazon ElastiCache?
可以,如果 ElastiCache 叢集是在 VPC 內部建立,則該 VPC 內的 EC2 執行個體可以存取此 Amazon ElastiCache。有關如何在 VPC 內建立 Amazon ElastiCache 叢集的詳細資訊,請參閱這裡。

問:什麼是 Amazon Virtual Private Cloud (VPC)?為什麼我可能會使用 Amazon ElastiCache?
Amazon VPC 可讓您在 Amazon Web Services (AWS) 雲端的私有、隔離部分建立虛擬聯網環境,您可以在其中全面控制私有 IP 地址範圍、子網路、路由表和網路閘道。您可以利用 Amazon VPC 定義虛擬網路拓撲和自訂網路設定,使其非常類似於您在自己的資料中心所操作的傳統 IP 網路。

如果您希望執行公有 Web 應用程式,同時仍在私有子網路中保留不可公開存取的後端伺服器時,就可能需要在 VPC 中使用 Amazon ElastiCache。您可以為 Web 伺服器建立一個可存取網際網路的公有子網路,並將後端基礎設施置於不能存取網際網路的私有子網路中。您的後端基礎設施可以包含 RDS 資料庫執行個體和一個提供記憶體內層的 Amazon ElastiCache 叢集。如需 Amazon VPC 的詳細資訊,請參閱 Amazon Virtual Private Cloud 使用者指南

問:如何在 VPC 內建立 Amazon ElastiCache 叢集?
有關在 VPC 中建立 Amazon ElastiCache 叢集的步驟說明,請參閱 Amazon ElastiCache 使用者指南

以下是在 VPC 中建立叢集所需的先決條件:

  • 您需要建立至少包含了一個子網路的 VPC。有關建立 Amazon VPC 和子網路的資訊,請參閱 Amazon VPC 入門指南
  • 您需要為 VPC 定義一個 (RedisMemcached) 子網路群組。
  • 您需要為 VPC 定義一個 VPC 安全群組 (或使用提供的預設值)。
  • 此外,您應該為每個子網路分配夠大的 CIDR 區塊,以便 Amazon ElastiCache 在維護活動時 (例如,快取節點置換) 有足夠的備用 IP 地址可用。

問:如何在現有的 VPC 內建立 Amazon ElastiCache 叢集?
在現有的 VPC 內建立 Amazon ElastiCache 叢集與在新建的 VPC 內建立叢集的方法相同。這裡有 RedisMemcached 的詳細資訊。

問:如何連接到 VPC 內的 ElastiCache 節點?
在 VPC 內部署的 EC2 執行個體可以存取相同 VPC 內部署的 Amazon ElastiCache 節點。如果這些 EC2 執行個體部署在具有關聯彈性 IP 的公有子網路中,您可以透過網際網路存取 EC2 執行個體。

如果您想要從網際網路或 VPC 外的 EC2 執行個體存取 VPC 內部署的 Amazon ElastiCache 節點,請參閱 RedisMemcached 的指導方針。

當快取節點在發生故障後恢復時,ElastiCache 會確保快取節點的 DNS 名稱和 IP 地址都維持相同。 

問:什麼是子網路群組?為什麼我需要子網路群組?
子網路群組是您必須為 VPC 內的 Amazon ElastiCache 叢集指定的子網路集合。子網路群組是使用 Amazon ElastiCache 主控台建立的。每個子網路群組至少應包括一個子網路。Amazon ElastiCache 使用子網路群組來選擇子網路。之後,所選子網路的 IP 地址將與該節點的端點相關聯。此外,Amazon ElastiCache 會建立彈性網路界面,並使用先前提到的 IP 地址將彈性網路界面關聯到節點。

請注意,我們強烈建議您使用 DNS 名稱來連接節點,因為基礎 IP 地址可能會發生變化 (例如,在快取節點置換後)。

問:是否可變更 ElastiCache 叢集的子網路群組?
現有的子網路群組可以進行更新,以便為現有的可用區域或建立 ElastiCache 叢集後加入的新可用區域新增更多子網路。不過,目前不允許變更已部署叢集的子網路群組。

問:在 VPC 內與在 VPC 外使用 Amazon ElastiCache 有何差別?
無論是否使用 VPC,Amazon ElastiCache 的基本功能都保持不變。無論您的 ElastiCache 叢集部署在 VPC 的內部或外部,Amazon ElastiCache 都可以管理自動故障偵測、復原、擴展、自動探索以及軟體修補等任務。

在 VPC 內,ElastiCache 叢集的節點只有一個私有 IP 地址 (在您定義的子網路內)。在 VPC 外,可使用安全群組來控制對 ElastiCache 叢集的存取,詳情請參閱這裡。

問:是否可將 VPC 外部的現有 ElastiCache 叢集移轉到 VPC 內部?
否,您不能將 VPC 外的現有 Amazon ElastiCache 叢集移轉到 VPC 內。您需要在 VPC 內建立一個新的 Amazon ElastiCache 叢集。

問:是否可以將 VPC 內部的現有 ElastiCache 叢集移轉到 VPC 外部?
目前,不支援直接將 ElastiCache 叢集從 VPC 內部遷移至外部。您需要在 VPC 外部建立一個新的 Amazon ElastiCache 叢集。

問:如何控制對叢集的網路存取?
Amazon ElastiCache 的節點會在非 VPC 部署中使用安全群組,以便讓您控制對叢集的存取。安全群組與防火牆的功能類似,可控制節點的網路存取。預設情況下,節點的網路存取處於關閉狀態。如果希望應用程式可以存取您的節點,您可以設定安全群組,以允許從具有特定 EC2 安全群組成員資格或特定 IP 範圍的 EC2 執行個體進行存取。這個過程稱為輸入。一旦對安全群組設定了輸入,此相同規則將套用到與該安全群組關聯的所有節點。安全群組可以透過 Amazon ElastiCache 主控台的 “Security Groups” (安全群組) 部分或使用 Amazon ElastiCache API 進行設定。

在 VPC 部署中,節點的存取是透過 VPC 安全群組和子網路群組進行控制。VPC 安全群組是與安全群組功能相當的 VPC 組件。

問:為確保我的應用程式可以存取 VPC 中的 ElastiCache 節點,要採取哪些措施?
您需要負責修改 VPC 中的路由表和聯網 ACL,以確保能夠從 VPC 中的用戶端執行個體存取您的 ElastiCache 節點。若要進一步了解,請參閱 Amazon ElastiCache for RedisAmazon ElastiCache for Memcached 文件。

問:是否可使用安全群組來設定 VPC 內的叢集?
否,因為在 VPC 內操作時,不使用安全群組。相反地,它們在非 VPC 設定下使用。在 VPC 內建立叢集時,您需要使用 VPC 安全群組。

問:是否可將常規的 EC2 安全群組與 VPC 內啟動的叢集相關聯?
否,您只能關聯與叢集處於同一 VPC 的 VPC 安全群組。

問:ElastiCache 叢集的節點是否可以跨越多個子網路?
可以,Amazon ElastiCache 叢集的節點可以跨越多個子網路,只要這些子網路屬於同一個子網路群組,且該子網路群組在建立時就與該 ElastiCache 叢集相關聯。

參數群組

問:什麼是參數群組? 它們可提供什麼幫助?
參數群組扮演引擎組態值的「容器」角色,這些值可套用到一或多個叢集。如果建立的叢集未指定參數群組,會使用預設參數群組。此預設群組包含針對您執行的叢集進行優化的引擎預設值和 Amazon ElastiCache 系統預設值。不過,如果希望叢集以您自訂的引擎組態值執行,只需建立一個新參數群組,再修改所需的參數,然後修改叢集使用新參數群組即可。建立關聯之後,使用特定參數群組的所有叢集都將取得該參數群組的所有參數更新。如需設定參數群組的詳細資訊,請參閱 Amazon ElastiCache for RedisAmazon ElastiCache for Memcached 使用者指南。

問:如何為我的叢集選擇正確的組態參數?
預設情況下,Amazon ElastiCache 會將節點類型的記憶體/運算資源容量列入考慮,為叢集選擇最優化的組態參數。不過,如果您要變更的話,可以使用我們的設定管理 API 來執行操作。請注意,將組態參數改為非建議的值可能產生各種意外影響,從效能降低到系統當機等等,只有能夠承擔此風險的進階使用者才應嘗試此操作。如需變更參數的詳細資訊,請參閱 Amazon ElastiCache 使用者指南

問:如何查看指定參數群組中的目前參數設定?
您可以使用 AWS 管理主控台、Amazon ElastiCache API 或命令列工具,查看參數群組及其對應之參數設定的相關資訊。

Redis

Redis 功能

問:什麼是 Amazon ElastiCache for Redis?
Amazon ElastiCache for Redis 是一種 Web 服務,讓使用者能夠在雲端輕鬆部署和執行與 Redis 協定相容的伺服器節點。此服務可進行 Redis 節點的管理、監控和操作;而且可透過 Amazon ElastiCache 主控台、命令列界面 (CLI) 或 Web 服務 API 執行節點的建立、刪除和修改。Amazon ElastiCache for Redis 支援高可用性組態,包括啟用 Redis 叢集模式和停用叢集模式,以及從主節點到複本的自動容錯移轉。

問:Amazon ElastiCache for Redis 協定是否與開放原始碼 Redis 相容?
是,Amazon ElastiCache for Redis 設計為協定與開放原始碼 Redis 相容。客戶目前與其現有的獨立 Redis 資料存放區搭配使用的程式碼、應用程式、驅動程式和工具仍然能與 Amazon ElastiCache for Redis 搭配使用,將現有 Redis 部署遷移至 Amazon ElastiCache for Redis 時也不需要變更程式碼,除非另有說明。我們目前支援 Redis 7、6.2.5、6.0.5、5.0.6、5.0.5、5.0.4、5.0.3、5.0.0、4.0.10、3.2.10、3.2.6、3.2.4。

問:Amazon ElastiCache for Redis 如何計費?
請參閱定價頁面了解最新的定價資訊。

問:什麼是 Amazon ElastiCache for Redis 節點、叢集和複寫群組?
Amazon ElastiCache for Redis 節點是 Amazon ElastiCache for Redis 部署的最小建置區塊。每一個 Amazon ElastiCache for Redis 節點都支援 Redis 協定,並有其自己的 DNS 名稱和連接埠。支援的 Amazon ElastiCache for Redis 節點有多種類型,每種各有不同的 CPU 功能和相關記憶體。Amazon ElastiCache for Redis 節點可能擔任主節點或僅供讀取複本的角色。主節點可複製到多個僅供讀取複本節點。Amazon ElastiCache for Redis 叢集是一或多個 Amazon ElastiCache for Redis 節點的集合;主節點位於主叢集中,僅供讀取複本節點位於僅供讀取複本叢集中。叢集是管理邏輯鍵值空間,其中每個節點負責一部分的鍵值空間。您的大多數管理操作將在叢集層次執行。Amazon ElastiCache for Redis 複寫群組會封裝主叢集和僅供讀取複本叢集進行 Redis 安裝。一個複寫群組只有一個主叢集和零或多個僅供讀取複本叢集。複寫群組 (以及隨之產生的叢集) 內的所有節點類型都相同,且有相同的參數和安全群組設定。

問:Amazon ElastiCache for Redis 是否支援 Redis 耐用性?
Amazon ElastiCache for Redis 不支援 AOF (僅附加檔案) 功能,但您可以透過使用備份與還原功能,對 Redis 資料拍攝快照來實現持久性。請參閱這裡了解詳細資訊。

問:如何從 Amazon ElastiCache for Memcached 遷移至 Amazon ElastiCache for Redis,反之又如何操作?
我們目前不支援從 Memcached 自動遷移至 Redis,反之亦然。但是,您可以使用 Memcached 用戶端從 Memcached 叢集讀取,然後使用 Redis 用戶端寫入 Redis 叢集。同樣地,您可以使用 Redis 用戶端從 Redis 叢集讀取,然後使用 Memcached 用戶端寫入 Memcached 叢集。務必考慮資料格式的差異和兩種引擎之間的叢集組態。

問:Amazon ElastiCache for Redis 是否支援多可用區備份操作?
是,透過 Amazon ElastiCache for Redis,您可以在另一個 AWS 可用區域中建立僅供讀取複本。節點發生故障時,我們將佈建一個新的節點。在主節點發生故障的情況下,ElastCache for Redis 會自動將現有的僅供讀取複本提升為主要角色。如需如何處理節點故障的詳細資訊,請參閱這裡

問:節點發生故障時,Amazon ElastiCache for Redis 提供哪些選項?
Amazon ElastiCache for Redis 會取得新的服務資源以修復節點,然後將節點的現有 DNS 名稱重新導向到新的服務資源。因此,Redis 節點的 DNS 名稱維持不變,但 Redis 節點的 IP 地址可能隨著時間變更。如果您擁有的複寫群組具有一或多個僅供讀取複本,且已啟用異地同步備份,那麼在主節點發生故障時,Amazon ElastiCache 將自動偵測故障、選擇複本並將其提升為新的主節點。它也會傳播 DNS 以便您能夠繼續使用主端點,並在提升後指向新提升的主節點。如需更多詳細資訊,請參閱此常見問答集的多可用區備份一節。 

當選取 Redis 複寫選項但停用多可用區備份時,如果主節點發生故障,您可以選擇啟動容錯移轉到僅供讀取複本節點。容錯移轉目標可以在相同區域或另一個區域中。若要容錯回復到原始區域,要將原始區域中的僅供讀取複本提升為主節點。您可以選擇將應用程式設計為使 Redis 用戶端程式庫重新連接到已修復的 Redis 伺服器節點。由於有些 Redis 程式庫會在遇到通訊錯誤或逾時的時候無限期停止使用伺服器,所有這一點很有用。

問:容錯移轉如何運作?
在停用叢集模式的情況下部署 ElastiCache for Redis 時,關於啟用多可用區備份的複寫群組,此常見問答集的多可用區一節描述了容錯移轉行為。如果您選擇不啟用多可用區備份,那麼當 Amazon ElastiCache 監控主節點且該節點變成無法使用或無法回應,則 Amazon ElastiCache for Redis 會取得新的服務資源以修復節點,然後將節點的現有 DNS 名稱重新導向到新的服務資源。因此,Redis 節點的 DNS 名稱維持不變,但 Redis 節點的 IP 地址可能隨著時間變更。但是,如果無法修復主節點 (且多可用區備份已停用),您可以選擇將其中一個僅供讀取複本提升為新的主節點。請參閱 這裡了解如何選擇新的主節點。主節點的端點 DNS 記錄將會更新,以指向提升後的僅供讀取複本節點。然後,原始主節點的可用區域中的僅供讀取複本節點會建立為複寫群組中的僅供讀取複本,接著成為新的主節點。

在啟用叢集模式的情況下部署 ElastiCache for Redis 時,您會將快取金鑰空間分佈在多個碎片上。這意味著您的資料和對該資料的讀/寫存取權分佈在多個可用區域中的多個 Redis 節點上 (需要啟用叢集模式)。主節點的角色會將自動容錯移轉至其中一個僅供讀取複本。無需建立和佈建新的主節點,因為 ElastiCache 會以透明方式處理此問題。此容錯移轉和複本提升可確保提升完成後立即恢復對新的主節點的寫入。

問:主節點故障期間,我的僅供讀取複本是否可用?
是,主節點故障期間,僅供讀取複本可繼續為請求提供服務。主節點以修復的節點或提升的僅供讀取複本形式恢復後,僅供讀取複本短時間內將不能為任何請求提供服務,因為它們要從主節點同步快取資訊。

問:如何設定 Amazon ElastiCache for Redis 節點的參數?
您可以使用快取參數群組設定您的 Redis 安裝,該參數群組必須是 Redis 叢集的指定參數群組。所有僅供讀取複本叢集都使用其主叢集的參數群組。Redis 參數群組就像是 Redis 組態值的「容器」,這些值可套用到一或多個 Redis 主叢集。如果建立的 Redis 主叢集未指定快取參數群組,會使用預設參數群組。此預設群組包含您計劃執行的節點類型預設值。不過,如果您希望 Redis 主叢集以指定的組態值執行,只要建立一個新快取參數群組、修改所需的參數並修改 Redis 主叢集,即可使用新參數群組。

問:是否可透過 Amazon ElastiCache 主控台存取 Redis?
是,Redis 在 Amazon ElastiCache 主控台中顯示為引擎選項。您可以選擇 Redis 引擎,利用啟動精靈建立新的 Redis 快取叢集。您也可以使用 Amazon ElastiCache 主控台修改或刪除現有的 Redis 叢集。

問:是否可以在 Amazon VPC 中建立 Amazon ElastiCache for Redis 叢集?
是。如果您的帳戶為預設情況下的 VPC,則將在與您的帳戶相關的預設 VPC 內建立您的 Redis 叢集。您可以使用 Amazon ElastiCache 主控台,在建立叢集時指定不同的 VPC。

問:如何保護我的 Redis 叢集?
Amazon ElastiCache for Redis 支援兩種方法來保護您的 Redis 叢集。您可以在 Redis AUTH 或以角色為基礎的受管存取控制 (RBAC) 之間進行選擇,均為選擇加入功能,且需要啟用動態加密。Redis AUTH 允許您新增密碼以確保對 Redis 叢集的存取安全,並且自 3.2.6 版開始才受支援。自 Redis 6 開始,RBAC 功能可讓您建立並管理使用者和使用者群組以保護 Redis 叢集。您可以將使用者指派給與特定角色 (例如管理員、人力資源、分析等) 相符的使用者群組,然後將該使用者群組部署至一個或多個 Amazon ElastiCache for Redis 複寫群組。執行此操作後,您即可在使用相同 Redis 複寫群組的使用者之間建立安全邊界,並防止用戶端存取彼此的資料。透過以下連結可以進一步了解有關 Redis AuthRBAC 的資訊。 

問:如何升級到較新的引擎版本?
使用 ModifyCacheCluster 或 ModifyReplicationGroup API,並針對 EngineVersion 參數指定偏好的引擎版本,即可輕鬆升級到較新的引擎版本。您可以在 Amazon ElastiCache 主控台選取快取叢集或複寫群組,然後按一下「修改」(Modify)。在「修改快取叢集」(Modify Cache Cluster) 或「修改複寫群組」(Modify Replication Group) 視窗,從可用的選項中選取偏好的引擎版本。引擎升級程序的設計是盡可能保留您現有的資料,且需要 Redis 複寫才能成功。如需關於此程序的詳細資訊,請參閱這裡

問:是否可以降級到較早的引擎版本?
否。不支援降級到較早的引擎版本。

問:如何擴展至較大的節點類型或縱向擴展至更多的節點?
在 Amazon ElastiCache for Redis 中,您可以在停用叢集模式的情況下,輕鬆地縱向擴展至更大的執行個體類型,並在啟用叢集模式的情況下輕鬆地縱向擴展至更多執行個體。 

使用 ModifyCacheCluster 或 ModifyReplicationGroup API,並針對 CacheNodeType 參數指定偏好的節點類型,即可輕鬆地縱向擴展至更大的節點類型。您可以在 Amazon ElastiCache 主控台選取快取叢集或複寫群組,然後按一下「修改」(Modify)。在「修改快取叢集」(Modify Cache Cluster) 或「修改複寫群組」(Modify Replication Group) 視窗,從可用的選項中選取偏好的節點類型。擴展程序的設計是盡可能保留您現有的資料,且需要 Redis 複寫才能成功。如需關於此程序的詳細資訊,請參閱這裡

叢集模式可讓您透過新增或刪除碎片來水平擴展,而不是垂直擴展單一節點。從概念上講,叢集的水平擴展在伺服器端很容易理解,只需新增或刪除碎片即可。每個碎片均有一個主節點和最多五個僅供讀取複本節點。一旦新節點準備就緒,叢集將需要按照設定,重新分配或平衡節點上的金鑰空間。使用 ElastiCache for Redis,可自動執行重新平衡。

問︰是否可以使用 Amazon ElastiCache for Redis 進行跨區域複寫?
是,您可以使用 Amazon ElastiCache for Redis 中的 Global Datastore 功能建立跨區域複寫。Global Datastore 提供全受管、快速、可靠且安全的跨區域複寫。您可以在一個區域寫入 Amazon ElastiCache for Redis 叢集,然後從最多兩個其他跨區域複寫叢集讀取該資料,進而實現跨區域的低延遲讀取和災難復原。

效能

問:ElastiCache 效能與開放原始碼 Redis 相比如何?
Amazon ElastiCache for Redis 在 Redis 5.0.3 及更高版本中會將動態網路處理新增至增強的 I/O 處理中。透過使用具有四或多個 vCPU 節點中可用的額外 CPU 功率,ElastiCache 以透明的方式將輸送量提高了 83%,並將每個節點的延遲現象降低了 47%。如需詳細資訊,請參閱這裡。在 Amazon ElastiCache for Redis 7 及以上版本,我們推出了增強型 I/O 多工處理,可大規模額外改善輸送量和延遲。增強型 I/O 多工處理非常適合具有多個用戶端連線的輸送量受限工作負載,其優勢隨工作負載並行層級而擴展。例如,當使用 r6g.xlarge 節點並執行 5200 個並行用戶端時,相較於 ElastiCache for Redis 6,您可以實現高達 72% 的輸送量提升 (每秒讀取和寫入操作數),以及高達 71% 的 P99 延遲降低。針對這些類型的工作負載,節點的網路 I/O 處理可能成為擴展能力的限制因素。使用 ElastiCache for Redis,每個專用網路 I/O 執行緒將多個用戶端的命令輸送至 Redis 引擎,以充分利用 Redis 高效地批次處理命令的能力。如需詳細資訊,請參閱部落格文件

問:如何監控 Redis CPU 使用率?
Amazon ElastiCache 提供兩種指標來測量 Amazon ElastiCache for Redis 工作負載的 CPU 使用率 – EngineCPUUtilization 和 CPUUtilization。CPUUtilization 指標可測量執行個體 (節點) 的 CPU 使用率,而 EngineCPUUtilization 指標可測量 Redis 程序層級的使用率。除了 CPUUtilization 指標之外,您還需要 EngineCPUUtilization 指標,因為主要 Redis 程序是使用單一執行緒,而且在執行個體有多個 CPU 核心可用時只會使用一個 CPU。因此,CPUUtilization 指標無法精確檢視 Redis 程序層級的 CPU 使用率。建議您同時使用 CPUUtilization 和 EngineCPUUtilization 指標,以詳細瞭解 Redis 叢集的 CPU 使用率。這兩種指標都可在所有 AWS 區域使用,而且您可使用 CloudWatch 或透過 AWS 管理主控台存取這些指標。此外,建議您瀏覽此頁面,以了解用於進行效能監控的實用指標。

問:如何最佳化 Redis 用戶端效能?
Redis 是最熱門的 NoSQL 鍵值存放區之一,以其出色的效能而聞名。為了最佳化 Redis 的使用,您還需要一個高效能用戶端。請閱讀此部落格,了解有關為您選取和最佳化合適用戶端的指南。

僅供讀取複本

問:以僅供讀取複本執行 Redis 節點代表什麼意義?
僅供讀取複本在 Redis 有兩個用途:

  • 故障處理
  • 讀取擴展

當您以僅供讀取複本執行快取節點時,「主」節點可同時服務寫入和讀取操作。僅供讀取複本在容錯移轉情況中會「提升」做為「備用」複本。容錯移轉之後,備用複本成為主節點,並接受您的快取操作。您可以透過僅供讀取複本, 輕鬆地以彈性方式橫向擴展超越單一快取節點的容量限制,以處理高讀取量的快取工作負載。
問:何時應考慮使用 Redis 僅供讀取複本?
許多情況都適合為指定主節點部署一或多個僅供讀取複本。部署僅供讀取複本的常見原因包括:
  • 擴展超越單一主節點的運算或 I/O 容量,以處理高讀取量的資料庫工作負載。這可將過多的讀取流量導向一或多個僅供讀取複本。
  • 在主節點不可用時提供讀取流量。如果您的主節點無法處理 I/O 請求 (例如,由於備份或計劃維護而暫停 I/O),可以將讀取流量導向僅供讀取複本。請注意,在這種使用案例中,因為主執行個體不可用,僅供讀取複本中的資料可能為「過時」狀態。僅供讀取複本還可用於讓故障的主節點重新開始活躍起來。
  • 資料保護情況;在極少見的情況或主節點故障或主節點所在的可用區域變成無法使用的情況下,您可以將不同可用區域中的僅供讀取複本提升為新的主節點。

問:如何為指定的主節點部署僅供讀取複本節點?
您可以使用 CreateReplicationGroup API 或在 Amazon ElastiCache 管理主控台按幾下滑鼠,就能在幾分鐘內建立僅供讀取複本。在建立複寫群組時,您要指定 MasterCacheClusterIdentifier。MasterCacheClusterIdentifier 是您想從中複寫的「主」快取叢集的快取叢集識別符。然後,您可以呼叫 CreateCacheCluster API 指定主要叢集的 ReplicationGroupIdentifier 和 CacheClusterIdentifier,在複寫群組中建立僅供讀取複本叢集。和標準快取叢集一樣,您也可以指定可用區域。當您啟動僅供讀取複本的建立時,Amazon ElastiCache 將對主快取叢集拍攝快照,並開始複寫。因此,在拍攝快照時,您的主快取叢集上的 I/O 可能會暫停一下。I/O 暫停一般大約會持續一分鐘。

刪除僅供讀取複本和建立它一樣簡單;只要使用 Amazon ElastiCache 管理主控台或呼叫 DeleteCacheCluster API 即可 (指定要刪除的僅供讀取複本的 CacheClusterIdentifier)。

問:是否可同時建立主節點和僅供讀取複本?
是。您可以使用 CreateReplicationGroup API 或在 Amazon ElastiCache 管理主控台中使用 "Create" (建立) 精靈並選擇 "Multi-AZ Replication" (多可用區備份複寫),在幾分鐘內建立新的快取叢集和僅供讀取複本。建立叢集時,指定識別符、叢集中所需的碎片總數和每個碎片的僅供讀取複本數,以及節點類型、引擎版本等快取建立參數。您還可以為該叢集中的每個碎片指定可用區域。

問:如何連接至我的僅供讀取複本?
您可以像連接到主快取節點一樣,使用 DescribeCacheClusters API 或 AWS 管理主控台擷取僅供讀取複本的端點,以連接到僅供讀取複本。如果您有多個僅供讀取複本,各個複本之間的讀取流量分配方式取決於應用程式。以下是更多詳細資訊:

  • Redis (已停用叢集模式) 叢集,使用個別節點端點進行讀取操作 (在 API/CLI 中,它們稱為讀取端點)。
  • Redis (已啟用叢集模式) 叢集,使用叢集的組態端點進行所有操作。您必須使用支援 Redis 叢集的用戶端 (Redis 3.2)。您仍然可以從個別節點端點讀取(在 API/CLI 中,它們稱為讀取端點)。

問:我可以為指定的主節點建立多少個僅供讀取複本?
Amazon ElastiCache 目前允許您為指定的主快取節點最多建立五 (5) 個僅供讀取複本。

問:如果發生容錯移轉,僅供讀取複本會出現什麼情況?
如果發生容錯移轉,所有關聯和可用的僅供讀取複本在容錯移轉完成之後將自動恢復複寫 (從最新提升的僅供讀取複本取得更新)。

問:是否可以為另一個僅供讀取複本建立僅供讀取複本?
不支援為另一個僅供讀取複本建立僅供讀取複本。

問:是否可將僅供讀取複本提升成「獨立」主節點?
否,不支援此操作。但是,您可以為 Amazon ElastiCache for Redis 節點拍攝快照 (可以選擇主節點或任何僅供讀取複本)。然後,使用快照開拓 Amazon ElastiCache for Redis 主節點。

問:僅供讀取複本是否會與其主節點一起保持在最新狀態?
主快取節點的更新會自動複製到所有關聯的僅供讀取複本。不過,若利用 Redis 的異步複寫技術,僅供讀取複本可能因為各種原因落後於主快取節點。常見的原因包括:

  • 主快取節點的寫入 I/O 磁碟區速率超過套用變更到僅供讀取複本的速率。
  • 主快取節點和僅供讀取複本之間有網路分割或延遲

僅供讀取複本會受到 Redis 複寫的優缺點影響。如果您正在使用僅供讀取複本,應該會注意到僅供讀取複本與其主快取節點之間可能的延遲或「不一致」。 Amazon ElastiCache 會發出一個指標,來協助您了解不一致之處。

問:如何查看作用中的僅供讀取複本?
您可以使用標準 DescribeCacheClusters API 返回已部署的所有快取叢集清單 (包括僅供讀取複本),或者直接按一下 Amazon ElastiCache 管理主控台的 "Cache Clusters" 標籤查看。

Amazon ElastiCache 會監控僅供讀取複本的複寫狀態,並在因為任何原因停止複寫時,將 Replication State 欄位更新為 Error。您可以檢視 Replication Error 欄位以查看 Redis 引擎產生的錯誤相關詳細資訊,然後採取適當動作加以還原。您可以在 Amazon ElastiCache User Guide 的「排解僅供讀取複本問題」章節,進一步了解有關複寫問題的疑難解答。如果複寫錯誤已修復,Replication State 會變更為 Replicating。

Amazon ElastiCache 允許您透過 Amazon CloudWatch 指標 ("Replica Lag") 查看僅供讀取複本落後於主節點的時間距離,並可透過 AWS 管理主控台或 Amazon CloudWatch API 取得。

問:我的僅供讀取複本已遠遠落後於其主節點。我應該怎麼做?
如之前的問題所述,使用 Redis 異步複寫時,僅供讀取複本與其主快取節點之間的「不一致」或延遲很常見。如果現有的僅供讀取複本已遠遠落後,而不能滿足您的要求,您可以重新啟動該複本。請注意,複本延遲可能會隨著時間而自然增大和縮小,這取決於主快取節點的穩定狀態使用模式。

問:如何刪除僅供讀取複本? 如果刪除它的主節點,是否會自動刪除僅供讀取複本?
只要在 AWS 管理主控台按幾下滑鼠,或使用 DeleteCacheCluster 或 DecreaseReplicaCount API,即可輕鬆地刪除僅供讀取複本。如果您想要同時刪除主快取節點和僅供讀取複本,則必須使用 DeleteReplicationGroup API 或 AWS 管理主控台。

問:僅供讀取複本的費用為何? 如何計算帳單週期?
僅供讀取複本按標準快取節點計費,而且費率相同。就和標準快取節點一樣,僅供讀取複本的每「快取節點小時」費率取決於僅供讀取複本的快取節點類別 – 有關最新的定價資訊,請參閱 Amazon ElastiCache 詳細資訊頁面。主快取節點和僅供讀取複本之間複製資料所產生的資料傳輸不收取費用。僅供讀取複本的帳單週期從成功建立僅供讀取複本之後就馬上開始 (即狀態為「作用中」時)。僅供讀取複本將一直按標準 Amazon ElastiCache 快取節點小時費率計費,直到您發出命令將其刪除為止。

問:容錯移轉時會出現什麼情況?這種情況會持續多久?
Amazon ElastiCache 支援啟動容錯移轉,這樣您可以儘快恢復快取操作。在容錯移轉時,Amazon ElastiCache 會翻轉快取節點的 DNS 記錄以指向僅供讀取複本,僅供讀取複本轉而提升成新的主節點。我們鼓勵您遵循最佳實務,在應用程式層實作快取節點連線重試機制。通常,從頭到尾完成下面的步驟 1 至 5,6 分鐘內即可完成。

下面是自動容錯移轉事件,按發生的順序列出:

  1. 複寫群組訊息:針對節點群組 <node-group-id> 呼叫的測試容錯移轉 API
  2. 快取叢集訊息:從主節點 <primary-node-id> 到複本節點 <node-id> 的容錯移轉已完成
  3. 複寫群組訊息:從主節點 <primary-node-id> 到複本節點 <node-id> 的容錯移轉已完成
  4. 快取叢集訊息:復原快取節點 <node-id>
  5. 快取叢集訊息:快取節點 <node-id> 的復原已完成

問:是否可以在另一個區域建立僅供讀取複本做為我的主節點?
否。您只能在相同區域的同一可用區域或不同可用區域佈建您的僅供讀取複本做為主快取節點。

但是,您可以使用 Global Datastore for Redis,在 AWS 區域之間進行全受管、快速、可靠和安全的複寫。使用此功能,您可以為 ElastiCache for Redis 建立跨區域僅供讀取複本叢集,以在 AWS 區域之間啟用低延遲讀取和災難復原。

問:是否可以查看我的主節點目前位於哪個可用區域?
是。您可以使用 AWS 管理主控台或 DescribeCacheClusters API 查看目前主節點的位置。
容錯移轉後,現在我的主節點與其他 AWS 資源 (例如 EC2 執行個體) 位於不同的可用區域。

問:我是否需要擔心有延遲?
可用區域的設計是將低延遲網路連線能力提供給同一區域中的其他可用區域。此外,您可能要考慮以跨多個可用區域的冗餘建構應用程式及其他 AWS 資源,以便在可用區域發生故障時,應用程式能夠靈活反應。

問:是否可以為 Redis 叢集環境新增和移除僅供讀取複本節點?
是。您可以在 Redis 叢集環境中新增和移除一個或多個碎片中的複本。在此操作期間,叢集會持續保持線上狀態並提供傳入 I/O 服務。

多可用區

問:什麼是 Amazon ElastiCache for Redis 複寫群組的多可用區備份?
Amazon ElastiCache for Redis 複寫群組是由一個主節點和最多五個僅供讀取複本組成。如果啟用多可用區備份,則每個主節點至少需要一個複本。請參閱 AutoFailover。Redis 將資料從主節點以非同步方式複製到僅供讀取複本。在特定類型的計劃維護期間,或在少見的 Amazon ElastiCache 節點故障或可用區域故障情況下,Amazon ElastiCache 將自動偵測主要節點的故障、選擇一個僅供讀取複本並將其提升為新的主要節點。Amazon ElastiCache 還將傳播所提升僅供讀取複本的 DNS 變更,因此,如果您的應用程式正在寫入主節點的端點,則不需要更改端點。

問:使用多可用區備份有哪些優點?什麼時候應該使用?
在多可用區備份模式下執行 Amazon ElastiCache for Redis,主要優點為提高可用性與降低管理需求。如果 Amazon ElastiCache for Redis 主節點發生故障,則對您讀取/寫入主節點能力的影響將限制在完成自動容錯移轉所需要的時間。啟用異地同步備份時,Amazon ElastiCache 節點會自動容錯移轉,不需要任何管理。您不再需要監控 Redis 節點,主節點中斷時也不再需要手動啟動復原。

問:多可用區備份如何運作?
如果您正在使用 Amazon ElastiCache for Redis,而且複寫群組由一個主節點和一或多個僅供讀取複本組成,則可以使用多可用區備份。如果主節點故障,Amazon ElastiCache 將自動偵測該故障,從可用的僅供讀取複本中選擇其一,並將其提升為新的主節點。Amazon ElastiCache 將傳播所提升複本的 DNS 變更,因此您的應用程式可繼續寫入主端點。Amazon ElastiCache 也會擴充一個新節點,以取代與故障主要節點位於相同可用區域的已提升僅供讀取複本。如果主節點因可用區域暫時中斷而發生故障,一旦該可用區域還原,新的複本即會啟動。

問:是否可將相同可用區域中的複本設為主節點?
是。請注意,將主節點和複本放在相同可用區域中並不能使 Amazon ElastiCache for Redis 複寫群組在可用區域發生故障時靈活反應。此外,如果啟用多可用區備份,則不允許這樣做。

問:什麼情況下會使 Amazon ElastiCache 容錯移轉到僅供讀取複本?
如果發生以下任何情況,Amazon ElastiCache 將會容錯移轉到僅供讀取複本:

  • 主節點的可用區域可用性受損
  • 主可用區域的網路連線能力受損
  • 主可用區域的運算單位故障

問:何時應使用多可用區備份?
Redis 複寫搭配多可用區使用可提高可用性和容錯能力。這種部署非常適合在生產環境中使用。

問:如何在已啟用多可用區備份的情況下建立 Amazon ElastiCache for Redis 複寫群組?
按一下 Amazon ElastiCache 管理主控台上的 啟動快取叢集 (Launch Cache Cluster),即可建立 Amazon ElastiCache for Redis 主節點和僅供讀取複本。另一個方式是呼叫 CreateReplicationGroup API。對於現有的複寫群組 (Redis 2.8.24、2.8.23、2.8.22、2.8.21、2.8.19 及 2.8.6),您可以選擇複寫群組並按一下 Amazon ElastiCache 管理主控台上的 Modify 或使用 ModifyReplicationGroup API,以啟用多可用區備份。將複寫群組切換為多可用區備份不會中斷您的 Redis 資料,也不會干擾您的節點為請求提供服務的能力。

問:當主節點發生故障時,將提升哪個僅供讀取複本?
如果有多個僅供讀取複本,將提升對主節點非同步複寫延遲最小的僅供讀取複本。

問:使用多可用區備份成本為何?
多可用區備份功能是免費的。您只需為所使用的 Amazon ElastiCache 節點付費。

問:多可用區有什麼效能影響?
Amazon ElastiCache 目前使用 Redis 引擎的原生異步複寫功能,有其優點和限制。尤其是,當僅供讀取複本首次連接到主節點或主節點變更時,僅供讀取複本會從主節點完整同步資料,對本身和主節點都會施加負載。如需 Redis 複寫的更多詳細資訊,請參閱這裡

問:哪些節點類型支援多可用區備份?
Amazon ElastiCache 中,除 T1 節點系列之外,所有可用快取節點類型都支援多可用區備份。

問:執行自動容錯移轉時,我是否會收到警示?
是,Amazon ElastiCache 將建立事件,以通知您已執行自動容錯移轉。您可以使用 DescribeEvents API 返回與 Amazon ElastiCache 節點相關的事件資訊,或按一下 Amazon ElastiCache 管理主控台的 Events 部分。

問:容錯移轉後,現在我的主節點與其他 AWS 資源 (例如 EC2 執行個體) 位於不同的可用區域。我是否需要擔心有延遲?
可用區域的設計是將低延遲網路連線能力提供給同一區域中的其他可用區域。您可能要考慮以跨多個可用區域的冗餘建構應用程式及其他 AWS 資源,以便在可用區域發生中斷時,應用程式能夠靈活反應。

問:可以在哪裡獲得關於多可用區備份的詳細資訊?
如需多可用區備份的詳細資訊,請參閱 Amazon ElastiCache 文件

備份與還原

問:什麼是備份與還原?
備份與還原是一項功能,可讓客戶為 Amazon ElastiCache for Redis 叢集建立快照。Amazon ElastiCache 會儲存這些快照,以便使用者之後用來還原 Redis 叢集。

問:什麼是快照?
快照是您的整個 Redis 叢集在特定時間點的副本。

問:為什麼需要快照?
如果因為節點故障和少見的硬體故障導致資料遺失,建立快照就非常有用。使用備份的另一個常見原因是用於存檔。快照儲存在 Amazon S3 中,這是一種耐久的儲存,這表示即使電源故障也不會清除您的資料。

問:快照有什麼作用?
您可以使用快照,以預先載入的資料來暖開機 Amazon ElastiCache for Redis 叢集。

問:備份與還原如何運作?
啟動備份時,Amazon ElastiCache 將拍攝特定 Redis 叢集的快照,之後可將其用於復原或封存。您隨時可以選擇啟動備份,也可以設定一個保留期長達 35 天每天重複進行的備份。
當您選擇快照進行還原時,將會建立一個新的 Amazon Amazon for Redis 叢集並填入快照的資料。利用這種方式,您可以從特定的快照建立多個 ElastiCache for Redis 叢集。

問:我的快照存放在哪裡?
快照存放在 S3 中。

問:如何開始使用備份與還原?
您可以選擇透過 AWS 管理主控台、Amazon ElastiCache API (CreateCacheCluster、ModifyCacheCluster、CreateReplicationGroup 和 ModifyReplicationGroup API) 以及 CLI 使用備份與還原功能。您可以選擇隨時停用和重新啟動此功能。

問:如何指定要備份的 Redis 叢集和節點?
備份與恢復是以叢集為基礎來建立快照。使用者可以透過 AWS 管理主控台、CLI 或 CreateSnapshot API,指定要備份的 ElastiCache for Redis 叢集。在複寫群組中,您可以選擇備份主叢集或任何唯讀複本叢集。我們建議使用者啟用其中一個僅供讀取複本的備份,以降低對 Redis 主叢集的延遲影響。

問:如何指定何時備份?
您可以透過 AWS 管理主控台、CLI 或 API 指定開始單次備份或重複備份的時間。使用者能夠:
立即拍攝快照 (透過 "Redis" 標籤的 "Backup" 主控台按鈕,或 CreateSnapshot API) 設定每日自動備份。備份將在您的偏好備份時段內開始執行。您可以透過主控台或是 CreateCacheCluster、ModifyCacheCluster 或 ModifyReplicationGroup API,使用「建立/修改」叢集來設定。問:什麼是備份時段,為什麼需要?
偏好備份時段是使用者定義的時段,您的 Amazon ElastiCache for Redis 叢集會在此時段開始備份。如果您需要在每日特定時間備份或避免在特別高使用率期間內備份,偏好備份時段將非常有用。

問:拍攝快照對效能有什麼影響?
拍攝快照時,節點延遲可能會在短時間內增加。快照使用 Redis 的內建 BGSAVE,有其優點和限制。尤其是 Redis 程序分叉時,父程序繼續為請求提供服務而子程序將資料儲存在磁碟上然後結束。快照產生期間,分叉會增加記憶體使用量。當此記憶體使用量超過快取節點可用記憶體的使用量時,將會觸發交換,而且會降低節點速度。因此,我們建議在其中一個僅供讀取複本產生快照 (而非主叢集)。此外,我們也建議設定預留記憶體參數,盡量減少交換使用量。請參閱這裡了解詳細資訊。

問:是否可以從 Amazon ElastiCache for Redis 僅供讀取複本建立快照?
是。在停用叢集模式的複寫群組中,從僅供讀取複本建立快照是備份資料同時將效能影響降至最低的最佳方式。在停用叢集模式的複寫群組中,您無法選擇備份主叢集或任何唯讀複本叢集。

問:可在哪些區域使用備份與還原功能?
可以使用 ElastiCache 服務的所有區域都可以使用備份與還原功能。

問:是否可以將 Amazon ElastiCache for Redis 快照匯出到我擁有的 S3 儲存貯體?
是。您可以將 Amazon ElastiCache for Redis 快照匯出到與您的叢集位於相同區域中的授權 S3 儲存貯體。如需匯出快照和設定所需許可的詳細資訊,請參閱這裡。

問:是否可以從一個區域將快照複製到另一個區域?
是。您必須先將快照複製到相同區域中所選的授權 S3 儲存貯體,然後使用 S3 PUT object- Copy API 將快照複製到另一個區域中的儲存貯體。有關複製 S3 物件的詳細資訊,請參閱這裡。

問:我有多個使用 Amazon ElastiCache for Redis 的 AWS 帳戶。是否可以使用一個帳戶的 Amazon ElastiCache 快照來暖開機其他帳戶中 Amazon ElastiCache for Redis 叢集?
是。您必須先將快照複製到相同區域中所選的授權 S3 儲存貯體,然後將跨帳戶儲存貯體許可授予其他帳戶。有關 S3 跨帳戶許可的詳細資訊,請參閱這裡。最後,在叢集建立期間,透過主控台的 Launch Cache Cluster 精靈或透過 CreateCacheCluster API 指定 RDB 檔案在 S3 中的位置。

問:使用備份與還原的成本為何?
Amazon ElastiCache 為每個作用中的 Amazon ElastiCache for Redis 叢集免費提供一個快照的儲存空間。額外儲存將根據快照佔用的空間收取費用,每月 0.085 USD/GB (所有區域的價格相同)。使用快照功能進行的資料傳輸無需付費。

問:什麼是保留期?
保留期是指保留自動快照的時間範圍。例如,如果將保留期設為 5 天,則今天拍攝的快照將會保留 5 天之後才刪除。您可以選擇複製一或多個自動快照並將它們存放為手動快照,以此方式,快照在保留期之後也不會被刪除。

問:如何管理自動快照的保留?
您可以使用 AWS 管理主控台或者 ModifyCreateCluster 或 ModifyReplicationGroup API 修改 RetentionPeriod 參數,以管理自動備份的保留期。如果您希望完全關閉自動備份,可以將保留期設為 0 (不建議)。

問:如果刪除 Amazon ElastiCache for Redis 叢集,我的快照會出現什麼情況? 
當您刪除 Amazon ElastiCache for Redis 叢集時,會保留您的手動快照。您還可以選擇在刪除叢集之前建立最終快照。自動快取快照則不會保留。

問:哪些快取節點類型支援備份與還原功能?
除 t1.micro 外,所有 Amazon ElastiCache for Redis 執行個體節點類型都支援備份與還原:

最新一代快取節點:
cache.m4.large、cache.m4.xlarge、cache.m4.2xlarge、cache.m4.4xlarge、cache.m4.10xlarge、cache.m5.large、cache.m5.xlarge、cache.m5.2xlarge、cache.m5.4xlarge、cache.m5.12xlarge、cache.m5.24xlarge、cache.m6g.large、cache.m6g.xlarge、cache.m6g.2xlarge、cache.m6g.4xlarge、cache.m6g.8xlarge、cache.m6g.12xlarge、cache.m6g.16xlarge、cache.r4.large、cache.r4.xlarge、cache.r4.2xlarge、cache.r4.4xlarge、cache.r4.8xlarge、cache.r4.16xlarge、cache.r5.large、cache.r5.xlarge、cache.r5.2xlarge、cache.r5.4xlarge、cache.r5.12xlarge、cache.r5.24xlarge、cache.r6g.large、cache.r6g.xlarge、cache.r6g.2xlarge、cache.r6g.4xlarge、cache.r6g.8xlarge、cache.r6g.12xlarge、cache.r6g.16xlarge、cache.t2.medium、cache.t2.small、cache.t2.micro、cache.t3.medium、cache.t3.small、cache.t4g.micro、cache.t4g.small、cache.t4g.medium

具有資料分層的最新一代快取節點:
cache.r6gd.xlarge、cache.r6gd.2xlarge、cache.r6gd.4xlarge、cache.r6gd.8xlarge、cache.r6gd.12xlarge、cache.r6gd.16xlarge

上一代節點:
cache.m1.small、cache.m1.medium、cache.m1.large、cache.m1.xlarge、cache.m2.xlarge、cache.m2.2xlarge、cache.m2.4xlarge、cache.m3.medium、cache.m3.large、cache.m3.xlarge、cache.m3.2xlarge、cache.r3.large、cache.r3.xlarge、cache.r3.2xlarge、cache.r3.4xlarge、cache.r3.8xlarge、cache.c1.xlarge

問:是否可使用自己存放在 S3 中的 RDB 快照來暖開機 Amazon ElastiCache for Redis 叢集?
是。在叢集建立期間,您可以透過主控台的「建立叢集」(Create Cluster) 精靈,或者透過 CreateCacheCluster 或 CreateReplicationGroup API 指定 RDB 檔案在 S3 中的位置。

問:如果我在 VPC 中執行 Amazon ElastiCache,是否可使用備份與還原功能?
是。

Redis 叢集

問:什麼是 ElastiCache for Redis 叢集?
ElastiCache for Redis 叢集可讓客戶建立和執行有多個碎片的受管 Redis 叢集。這往前與開放原始碼 Redis 3.2.4 相容,且隨附多個增強功能以提供更穩固且強大的體驗 (如需這些增強功能的詳細資訊,請參閱下方的「增強型引擎」部分)。

問:為何我需要橫向擴展的 Redis 環境?
在以下三種主要情況下,需要執行橫向擴展的 Redis 環境。第一種情況,如果 Redis 資料的總記憶體大小超過或預計會超過單一 VM 的記憶體容量。第二種情況,如果從應用程式到 Redis 的寫入輸送量超過單一 VM 的容量。第三種情況,如果您想要將資料分散到多個碎片,讓單一節點可能發生的任何潛在問題對整體 Redis 環境造成較小的影響。

問:為什麼要在 Amazon ElastiCache 上執行 Redis 叢集工作負載?
Amazon ElastiCache 提供全受管的分散式記憶體內 Redis 環境,可處理佈建伺服器資源、安裝引擎軟體和套用任何您選擇的組態參數等各項工作。它使用 Amazon 開發的 Redis 引擎增強功能,可提供更為強大且穩定的體驗 (如需詳細資訊,請參閱「增強型引擎」部分)。Redis 環境啟動和執行後,該服務會自動化處理常見的管理工作,如故障偵測和恢復、備份及軟體修補等。同時還提供包含自動化容錯移轉的強大異地同步備份解決方案。如果您的叢集中發生一或多個主要節點故障,Amazon ElastiCache 會自動偵測故障,並將最新的複本提升為主要節點做為回應。這是自動化的程序,且不會要求您進行任何手動操作。Amazon ElastiCache 還可提供與 ElastiCache 節點相關的詳細監控指標,讓您能夠對問題進行快速診斷和反應。

問:ElastiCache for Redis 是否與開放原始碼 Redis 相容?
是,Amazon ElastiCache for Redis 往前與開放原始碼 3.2.4 相容。您可以使用開放原始碼 Redis 叢集用戶端存取 ElastiCache for Redis 上的擴展叢集。

問:從目前 ElastiCache for Redis 2.8 x 升級到 ElastiCache for Redis 叢集 (版本 3.2.4),有哪些升級途徑?
如果您使用 Redis 3.2 且停用 cluster_mode 參數,可以直接選擇要升級的節點或叢集,並修改引擎版本。ElastiCache 將佈建 Redis 3.2.4 叢集,並將資料遷移至該處,同時保留端點。
如果您使用 Redis 3.2 且啟用 cluster_mode,可使用以下方法移轉到 Redis 叢集:先使用備份與恢復功能建立資料的快照。接著,選取建立的快照,然後按一下 "Restore Snapshot",使用快照的資料建立 Redis 3.2 叢集。最後,在用戶端更新全新的端點。請注意,要以叢集模式使用 Redis 3.2,您需要切換到 Redis 叢集用戶端。

問:叢集化組態與非叢集化組態的定價是否不同?
否。Amazon ElastiCache for Redis 以相同的價格提供叢集化組態與非叢集化組態的彈性。客戶現在可以享受 Amazon ElastiCache for Redis 內的增強型引擎功能,並以相同的價格使用叢集化組態的完整功能支援和可擴展性。 

問:什麼是 ElastiCache for Redis 叢集多可用區備份?
ElastiCache for Redis 叢集中的每個碎片都是由一個主節點和最多五個僅供讀取複本組成。Redis 將資料從主節點以非同步方式複製到僅供讀取複本。在特定類型的計劃維護期間,或在少見的 ElastiCache 節點故障或可用區域故障情況下,Amazon ElastiCache 將自動偵測主要節點的故障、選擇一個僅供讀取複本並將其提升為新的主要節點。
ElastiCache for Redis 叢集為 Redis 3.x 及更新版本環境提供增強功能和管理。執行未受管的 Redis 環境時,在主要節點故障的情況下,叢集倚賴多數主節點來判斷和開始容錯移轉。如果沒有這類多數主節點存在,叢集將會進入故障狀態,並拒絕任何進一步的讀取和寫入。這可能會對應用程式的可用性帶來重大的影響,且需要人為介入以手動的方式搶救叢集。建置 ElastiCache for Redis 多可用區備份功能是為了以穩健且有效率的方式處理任何 Redis 叢集容錯移轉案例。

問:ElastiCache for Redis 叢集中的多可用區備份與 ElastiCache for Redis 版本 2.8.x 中的多可用區備份有何不同?
Redis 3.x 及更新版本與智慧型用戶端搭配運作,可存放節點對應和所有叢集節點的端點。容錯移轉期間,用戶端會使用新主要節點的 IP 端點更新節點對應。這比 ElastiCache for Redis 2.8.x 的容錯移轉速度快了高達 4 倍。

問:Redis 叢集的多可用區如何運作?
如果您使用 ElastiCache for Redis 叢集,且每個碎片有一或多個僅供讀取複本,則可使用多可用區。如果碎片的主節點故障,ElastiCache 將自動偵測該故障,從可用的僅供讀取複本中選擇其一,並將其提升為新的主要節點。Redis 3.x 及更新版本用戶端會將提升的複本更新為主要節點。無須變更應用程式。ElastiCache 也會擴充一個新節點,以取代與故障主要節點位於相同可用區域的已提升僅供讀取複本。如果主要節點因可用區域暫時故障而發生故障,該可用區域恢復之後,就會啟動新的複本。

問:什麼是 ElastiCache for Redis 叢集備份?
ElastiCache for Redis 叢集備份是叢集碎片的一系列快照,這些快照會存放在一起,以保留整個 Redis 資料特定時間內的副本。

問:ElastiCache for Redis 叢集備份與 ElastiCache for Redis 快照有何不同?
由於非叢集化 ElastiCache for Redis 環境只有一個主節點,因此備份就是包含 Redis 資料副本的單一檔案。ElastiCache for Redis 叢集可以有一或多個碎片,所以備份可能包含多個檔案。

問:如何指定要在每個碎片中備份哪些 ElastiCache for Redis 節點?
您無法手動指定每個碎片內要備份的節點。啟動備份時,ElastiCache 會自動選擇每個碎片中最新的僅供讀取複本,並拍攝其資料快照。

問:ElastiCache for Redis 叢集備份與恢復如何運作?
啟動備份時,ElastiCache 會建立指定叢集的備份;該備份之後可用於恢復或存檔。備份包含每個叢集碎片的副本,因此完整的備份會包含一系列檔案。您隨時可以選擇啟動備份,也可以設定一個保留期長達 35 天每天重複進行的備份。
當您選擇備份進行恢復時,將會建立一個全新 ElastiCache for Redis 叢集,並填入備份的資料。您還可以使用這個功能建立連到 ElastiCache 受管 Redis 叢集體驗的簡易移轉路徑。如果您在 EC2 執行自我管理的 Redis,可以將拍攝的 RDB 快照或現有工作負載 (Redis 叢集和單一碎片 Redis) 存放到 S3。然後,只要在 ElastiCache 建立碎片 Redis 叢集時以輸入的形式提供它們,並提供所需的碎片數即可。ElastiCache 將會完成剩餘的工作。
目前,ElastiCache 使用 Redis 的原生機制為每個碎片建立 RDB 檔案並將其存放為備份。

問:ElastiCache for Redis 叢集備份是否是時間點快照?
啟動備份時,ElastiCache 會同時觸發叢集內所有碎片的備份。在少數情況下,第一次未成功拍攝快照的一或多個節點,可能需要重新拍攝快照。ElastiCache 會自動執行此工作,無須使用者操作。但在這種情況下,每個個別的快照都代表某個時間點拍攝的節點,並非所有叢集的快照都在同時拍攝。

問:如何指定何時備份?
您可以透過 AWS 管理主控台、CLI 或 API 指定開始單次備份或重複備份的時間。使用者能夠:

  • 立即建立備份 (透過 "Create Snapshot" 主控台按鈕或 CreateSnapshot API)
  • 設定自動每日備份。備份將在您的偏好備份時段內開始執行。您可以透過主控台或是 CreateCacheCluster、ModifyCacheCluster、CreateReplicationGroup 或 ModifyReplicationGroup API,使用「建立/修改」叢集來設定。

問:是否可使用自己存放在 S3 中的 RDB 快照,預先植入 ElastiCache for Redis 叢集橫向擴展環境?
是。在叢集建立期間,您可以透過主控台的 Create Cluster 精靈或 CreateReplicationGroup API 指定 RDB 檔案在 S3 中的位置。ElastiCache 會自動剖析 RDB 快照的 Redis 鍵值空間,並在新叢集的碎片間轉散佈。

增強型引擎

問:ElastiCache for Redis 內的引擎與開放原始碼 Redis 有何不同?
ElastiCache for Redis 內的引擎與開放原始碼 Redis 完全相容,但隨附可提升穩健性和穩定性的增強功能。這些增強功能包含:

  • 更多可用記憶體:您現在可以放心為應用程式分配更多記憶體,無須擔心同步和快照期間會增加交換使用量。
  • 改善同步功能:針對高負載及從網路中斷恢復時,提供更穩固的同步功能。此外,由於主要節點和複本在此操作中不再需要使用磁碟,因此同步的速度更快。
  • 更順暢的容錯移轉:在容錯移轉的情況下,由於複本不再需要排清資料,就能與主要節點進行完整的重新同步,因此現在可以更快恢復碎片。
 
問:如何使用增強型引擎?
要從 Amazon ElastiCache 管理主控台使用增強型引擎,只要在建立叢集時,選取與 Redis 引擎版本 2.8.22 或更新版本相容的引擎。選取之後,您使用的就是增強型引擎。您也可以在執行 CreateCacheCluster API 時指定引擎版本,以透過 ElastiCache API 或 AWS CLI 使用增強型引擎。

問:是否要變更應用程式的程式碼,才能使用 ElastiCache 上的增強型引擎?
否。增強型引擎與開放原始碼 Redis 完全相容,因此您可以充分利用改進的穩健性和穩定性,而無須變更任何應用程式程式碼。

問:使用增強型引擎的費用為何?
使用增強型引擎無須額外付費。如往常一樣,您只需支付使用的節點費用。

線上叢集大小調整

問:什麼是線上叢集大小調整?
Amazon ElastiCache for Redis 提供從啟用叢集模式的執行中 Redis 叢集中新增和移除碎片的能力。您可以動態擴展或縮減 Redis 叢集工作負載以因應需要的變更。Amazon ElastiCache 可透過新增或移除碎片調整叢集的大小,並將雜湊槽平均重新分發到新的碎片組態,執行這些工作時叢集會持續保持線上狀態並繼續服務請求。

問:使用線上叢集大小調整有哪些好處?
動態擴展和縮減叢集的能力可協助您管理應用程式的易變性,並因應不斷變化的需求。您可以透過新增或移除碎片來擴展效能和記憶體內容量,將叢集調整到適當的大小。使用此功能即無須為因應峰值需求而過度佈建叢集,有助於提升效率及降低成本。

問:如何使用線上叢集大小調整?
線上叢集大小調整適用於在 3.2.10 版或更新版本中啟用了叢集模式的 Redis 叢集。若要對叢集進行重新碎片,請選取叢集,然後指定要新增或移除碎片。重新調整叢集大小以進行擴展時,Amazon ElastiCache 會新增碎片,然後依計數將槽平均分發到各個碎片,以此方式將槽從現有的碎片移轉到新的碎片。同樣地,重新調整叢集大小以進行縮減時,Amazon ElastiCache 會將槽遷移至剩餘的碎片以平均分發槽,然後刪除指定的碎片。

問:執行線上叢集大小調整需花費多久時間?
調整叢集大小所需的時間取決於多個因素,像是叢集需要遷移至各個碎片的槽數量、資料大小和傳入的請求率。最佳化工作流程來平行化插槽遷移,以實現更快的橫向擴展。

問:調整叢集大小期間是否可使用叢集?
是,重新碎片進行期間,叢集會持續保持線上狀態並服務傳入請求。然而,在重新碎片進行過程中,不支援對叢集拍攝快照。

問:這項操作對叢集的效能是否會有影響?
雖然線上叢集大小調整可提供無停機時間的擴展/縮減優勢,但它屬於運算密集型操作,可能會增加用戶端連接的延遲。若要在執行這項操作時降低叢集負載,建議您依照文件中所述的最佳實務操作。

問:如何追蹤線上重新碎片操作的進度?
您可以透過檢視叢集、碎片和節點的狀態,追蹤該重新碎片的進度。操作進行期間,叢集、碎片和節點會保持 "modifying" 狀態。同樣地,建立、刪除碎片或參與槽移轉時,個別碎片的狀態會反映這些狀態以顯示進度。此外,端對端操作的狀態也可透過重新碎片操作進度指標進行追蹤,該指標可顯示完成百分比,並提供操作剩餘時間的相關資訊。最後,事件訊息會在這項操作進行期間,透過說明採取的動作 (碎片建立、槽遷移等) 來顯示進度。

問:什麼是 Amazon ElastiCache for Redis 叢集重新平衡操作?
重新平衡操作可將槽重新分發到現有的碎片以達到平均分發。建立叢集時手動指定不平均槽分發或在擴展/縮減操作期間造成叢集分發不平均時,這項功能非常實用。假設每個槽的記憶體和 I/O 需求都相同,以計數平均分發槽是讓碎片達到負載平衡最簡單的方式。

問:標記在叢集擴展時如何運作?
新增節點以擴展叢集時,這些節點都具備所有現有節點共有的相同標籤集。此外,使用者可修改所有節點的標籤,然後繼續照常使用標記。

問:使用線上叢集大小調整是否需要變更用戶端或應用程式?
否。叢集大小調整使用的增強型槽分發符合 Redis 叢集用戶端行為,不需要進行任何應用程式變更。Amazon ElastiCache 會保留叢集端點,讓您持續使用現有用戶端,無須任何變更。

加密

問:Amazon ElastiCache for Redis 靜態加密提供哪些功能?
靜態加密提供了防止在伺服器上未經授權存取資料的機制。在複寫群組上啟用後,它將針對以下方面進行加密:

  • 同步、備份和交換操作期間的磁盤
  • 存放在 Amazon S3 中的備份
 
Amazon ElastiCache for Redis 在靜止時提供預設 (服務受管) 加密,並能夠在 AWS Key Management Service (KMS) 中使用您自己的對稱客戶受管客戶主金鑰。僅當建立複寫群組時,才能在複寫群組上啟用靜態加密。在 這裡閱讀詳細內容。
 
問:Amazon ElastiCache for Redis 動態加密提供哪些功能?
動態加密功能可讓您加密用戶端和 Redis 伺服器間、以及 Redis 伺服器之間 (主要和僅供讀取複本節點) 的所有通訊。這是一項選用功能,只能在建立 Redis 複寫群組啟用。在 這裡閱讀詳細內容。

問:如何使用動態加密、靜態加密和 Redis AUTH?
動態加密、靜態加密、Redis AUTH 和以角色為基礎的受管存取控制 (RBAC) 都是選用功能。在透過主控台或命令列界面建立 Redis 叢集時,您可以指定是否要啟用靜態及/或動態加密。如果啟用動態加密,則可以選擇使用 Redis AUTH 或 RBAC 來增加安全性和存取控制。叢集設定為啟用加密之後,Amazon ElastiCache 就可以順暢地管理憑證過期和更新,應用程式無須執行任何其他動作。此外,Redis 用戶端必須支援 TLS,才能利用加密的動態流量。如果選擇使用 Redis AUTH,則需要具有 Redis 3.2.6 或更高版本,而 RBAC 要求您使用 Redis 6。

問:使用動態加密或靜態加密時,是否有必須使用的 Amazon ElastiCache for Redis 用戶端?
否。動態加密需要能支援 TLS 的用戶端。大多數常見的 Redis 用戶端 (如 Lettuce、Predis、go-Redis) 都透過一些組態設定提供 TLS 支援。您必須確定所選擇的 Redis 用戶端設定為支援 TLS,並和之前一樣的使用 Amazon ElastiCache for Redis。

問:是否可在現有 Amazon ElastiCache for Redis 叢集上啟用動態加密和靜態加密?
否。動態加密和靜態加密只能在新叢集上使用,現有 Amazon ElastiCache for Redis 叢集不支援此功能。Amazon ElastiCache for Redis 版本 7.0、6.2.5、6.0.5、5.0.0、4.0.10 和 3.2.6 支援這些功能。

問:更新憑證是否需要執行任何動作?
否。Amazon ElastiCache 在幕後管理認證過期和更新。使用者不需採取任何動作即可繼續執行憑證維護。

問:是否可將我的憑證用於加密?
否。Amazon ElastiCache 目前並未提供您使用憑證的能力。Amazon ElastiCache 會以透明的方式為您管理憑證。

問:動態加密和靜態加密支援哪些執行個體類型?
動態加密和靜態加密可支援所有最新一代執行個體。如需有關動態加密條件的完整清單,請參閱 這裡,如需有關靜態加密條件的完整清單,請參閱 這裡。  

問:使用加密是否需要額外付費?
使用加密無須額外付費。

合規

問:Amazon ElastiCache for Redis 支援哪些合規計劃?
Amazon ElastiCache for Redis 支援 SOC 1、SOC 2、SOC 3、ISO、MTCS、C5、PCI、HIPAA 和 FedRAMP 等合規計劃。請參閱合規計劃的 AWS 服務範圍以取得支援的合規計劃最新清單。

問:Amazon ElastiCache for Redis 是否符合 PCI?
是,Amazon ElastiCache for Redis 是 AWS PCI 合規計劃中的 PCI 合規服務。若要進一步了解,請參閱以下資源:

如需涵蓋 Amazon ElastiCache for Redis 的最新合規計劃清單,請參閱 合規計劃的 AWS 服務範圍

問:Amazon ElastiCache for Redis 是否為 HIPAA 合格服務?
是,Amazon ElastiCache for Redis 是 HIPAA 合格服務,且已新增到 AWS 商業夥伴增補合約 (BAA)。這表示您可以使用 Amazon ElastiCache for Redis 協助處理、維護和存放受保護的醫療資訊 (PHI),並為醫療保健應用程式提供支援。

問:要使用 HIPAA 合格服務 Amazon ElastiCache for Redis,該怎麼做?
如果您擁有與 AWS 共同履行的 商業夥伴協議 (BAA),現在可以使用 ElastiCache for Redis 建立 HIPAA 合規應用程式。如果沒有 BAA 或對在 HIPAA 合規應用程式使用 AWS 有任何問題,請 聯絡我們以取得詳細資訊。如需有關如何設定 Amazon HIPAA 合格服務以存放、處理和傳輸 PHI 的詳細資訊,請參閱「在 Amazon Web Service 上建置 HIPAA 安全性與合規性」。

問:Amazon ElastiCache for Redis 是否為 FedRAMP 授權服務?
AWS FedRAMP 合規計劃把 Amazon ElastiCache for Redis 納為 FedRAMP 授權服務。美國政府客戶及其合作夥伴現在可以使用最新版 Amazon ElastiCache for Redis 在 AWS GovCloud (美國) 區域處理和存放他們的 FedRAMP 系統、資料和任務關鍵型、高影響力的工作負載,而且在 AWS 美國東部/西部區域處於中等影響級別。

要進一步了解,請參閱以下資源:
 
如需涵蓋 Amazon ElastiCache for Redis 的最新合規計劃清單,請參閱 合規計劃的 AWS 服務範圍

問:使用合規功能是否需要額外付費?
否,使用合規功能不需額外付費。

Global Datastore

問:什麼是 Global Datastore for Redis?
Global Datastore 是 Amazon ElastiCache for Redis 中的一項功能,提供全受管、快速、可靠且安全的跨區域複寫。透過 Global Datastore,您可以在一個區域寫入 Amazon ElastiCache for Redis 叢集,然後從最多兩個其他跨區域複寫叢集讀取該資料,進而實現跨區域的低延遲讀取和災難復原。
Global Datastore for Redis 專為遍佈全球的即時應用程式所設計,支援通常不到一秒的跨區域複寫延遲,透過提供更接近最終使用者的地理位置讀取來提高應用程式的回應速度。在不太可能發生區域降級的情況下,可以將一個運作正常的跨區域複寫叢集升級成具有完全讀取/寫入功能的主叢集。開始升級之後,通常會在一分鐘之內完成,讓您的應用程式不會停擺。

問:我可以複寫到多少個 AWS 區域?
您最多可以複寫到 Global Datastore for Redis 中的兩個次要區域。在不太可能發生區域降級的情況下,次要區域中的叢集可用於提供低延遲區域讀取和災難復原。

問:哪些引擎版本支援 Global Datastore for Redis?
Amazon ElastiCache for Redis 5.0.6 或更新版本支援 Global Datastore。客戶可以升級引擎版本至 5.0.6 並使用 Global Datastore。

問:如何建立 Global Datastore for Redis?
您可以使用現有叢集或建立新的主要叢集來設定 Global Datastore。只要在 Amazon ElastiCache 管理主控台按幾下,或下載最新 AWS 開發套件或 CLI,就能建立 Global Datastore for Redis。AWS CloudFormation 中支援 Global Datastore。

問:在主叢集 (區域) 降級的情況下,Amazon ElastiCache 是否會自動容錯移轉 Global Datastore for Redis 並升級次要叢集?
否,當主叢集 (區域) 降級時,Amazon ElastiCache 不會自動升級次要叢集。您可以透過將次要叢集升級為主叢集來手動啟動容錯移轉。容錯移轉和升級次要叢集通常可以在一分鐘內完成。

問:如果主叢集遇到服務降級的情況,要如何執行應用程式容錯移轉以進行災難復原?
如果 Global Datastore for Redis 中的主叢集出現服務降級,您可以將一個次要叢集指派為新的主叢集,然後從 Global Datastore 移除舊的主叢集。次要叢集一旦升級為主叢集,Amazon ElastiCache 會把舊的主叢集 (如果可以連接) 重新設定為次要叢集,並設定複寫以同步所有次要區域和新的主叢集。如果將整個應用程式堆疊複寫至另一個 AWS 區域,就可以將整個應用程式堆疊 (包括運算資源) 容錯移轉至該 AWS 區域。如果應用程式堆疊的其餘部分不需要容錯移轉,請確保應用程式可以存取次要叢集端點。

問:使用 Global Datastore for Redis 時,如何保護我的資料?
Global Datastore for Redis 會針對跨區域流量使用傳輸中加密,確保資料的安全。此外,您也可以使用靜態加密進行主叢集和次要叢集的加密,確保端對端資料的安全。在 AWS Key Management Service (KMS) 中,每個主叢集和次要叢集都可以有一個由個別客戶保管的客戶主金鑰 (CMK) 來進行靜態加密。

問:Global Datastore for Redis 提供何種復原點目標 (RPO) 和復原時間點目標 (RTO)?
Amazon ElastiCache 並未提供 RPO 和 RTO 的 SLA。RPO 會因為區域之間的複寫延遲而不同,而且取決於區域之間的網路延遲和跨區域網路流量的擁堵狀況。Global Datastore 的 RPO 通常不到一秒,因此寫入主區域的資料在一秒鐘之內即可供次要區域使用。Global Datastore for Redis 的 RTO 通常不到一分鐘。一旦開始容錯移轉至次要叢集,Amazon ElastiCache 通常會在一分鐘內將次要叢集升級為具備完全讀取/寫入功能。

問:Global Datastore for Redis 的定價為何?
Amazon ElastiCache 對使用 Global Datastore for Redis 不另收取任何費用。您需要為 Global Datastore 中的主要和次要叢集及跨區域資料傳輸流量付費。

資料分層

問:什麼是適用於 ElastiCache for Redis 的資料分層?
除了將資料儲存在記憶體中之外,資料分層還透過在每個叢集節點中使用成本較低的固態硬碟 (SSD),為 Redis 工作負載提供一種新的性價比選項。它非常適合定期存取多達 20% 的整個資料集的工作負載,以及在存取 SSD 上的資料時可以容忍額外延遲的應用程式。與僅使用記憶體的 ElastiCache R6g 節點相比,具有記憶體和固態硬碟的 Amazon ElastiCache R6gd 節點的總儲存容量增加了近 5 倍,並且可以協助客戶在以最大利用率執行時節省 60% 以上的價格。 

問:適用於 ElastiCache for Redis 的資料分層如何運作?
資料分層的工作原理是,當可用記憶體容量完全耗盡時,將最近使用最少的項目從記憶體中自動透明地移動到本地連接的 NVMe SSD。當隨後存取移動到 SSD 的項目時,ElastiCache 會在為請求提供服務之前將其異步移回記憶體。

問:使用含資料分層的叢集時會產生什麼樣的效能?
資料分層設計用於對應用程式效能的影響最低。假設 500 位元組的字串值,與對記憶體中資料的請求相比,對儲存在 SSD 上的資料的請求平均會額外增加 300 微秒的延遲。

問:哪種引擎版本支援資料分層?
ElastiCache for Redis 支援 Redis 6.2 及更高版本的資料分層。

問:哪些節點類型支援資料分層?
ElastiCache for Redis 支援使用 R6gd 節點的 Redis 叢集上的資料分層。

問:使用資料分層的叢集支援哪些 ElastiCache 功能?
使用資料分層時,支援所有 Redis 命令和大多數 ElastiCache 功能。如需使用資料分層的叢集上不支援的功能清單,請參閱文件

問:什麼是適用於 ElastiCache for Redis 的資料分層價格?
除了節點的每小時成本,使用資料分層無需額外費用。使用資料分層的節點可以按需定價和作為預留節點使用。如需定價,請參閱 ElastiCache 定價頁面

Memcached

Memcached 功能

問:Amazon ElastiCache for Memcached 可以用來快取什麼內容?
您可以使用本服務快取多種物件,如永久資料存放區中的內容 (如 Amazon RDS、DynamoDB 或 EC2 上託管的自我受管型資料庫等)、動態產生的網頁 (例如使用 Nginx),或者可能不需要永久備份存放區的暫時工作階段資料。您也可以使用它來實施高頻計數器,以便在高容量 Web 應用程式中部署許可控制。

問:是否可將 Amazon ElastiCache for Memcached 與 Amazon RDS 或 Amazon DynamoDB 等 AWS 永久資料存放區一起使用?
是。Amazon ElastiCache 是 Amazon RDS 或 Amazon DynamoDB 等資料存放區的理想前端,為具有極高請求率和/或低延遲要求的應用程式提供高效能中介層。

問:我目前使用 Memcached。要如何遷移至 Amazon ElastiCache?
Amazon ElastiCache 與 Memcached 協定相容。因此,您可以使用標準的 Memcached 操作,如 get、set、incr 和 decr,使用方式也和您現有的 Memcached 部署完全相同。Amazon ElastiCache 支援文字和二進位協定。它還支援大多數標準的統計結果,也可透過 CloudWatch 以圖形方式查看。因此,您可以切換為使用 Amazon ElastiCache,無須重新編譯或重新連結您的應用程式,您使用的程式庫可以繼續工作。若要設定應用程式存取的快取伺服器,您只需要更新應用程式的 Memcached 設定檔案,將我們為您佈建的伺服器端點 (節點) 包含在內即可。您只要使用 AWS 管理主控台中的 "Copy Node Endpoints" 選項或 "DescribeCacheClusters" API,就能取得端點清單。與任何移轉過程相同,我們建議您先對新的 Amazon ElastiCache 部署進行完整的測試,而後再完成目前解決方案的割接工作。

您可以從 Amazon EC2 網路或您自己的資料中心存取 Amazon VPC 中的 Amazon ElastiCache 叢集,如需更多詳細資訊,請參閱 Amazon VPC 存取模式

Amazon ElastiCache 使用 DNS 項目來允許用戶端應用程式定位伺服器 (節點)。節點的 DNS 名稱保持不變,但節點的 IP 地址可能會不時改變,例如,在非 VPC 安裝上發生故障後自動更換節點時。有關如何處理節點故障的建議,請參閱此常見問答集。

組態和擴展

問:如何為我的應用程式選擇適當的節點類型?
雖然此問題沒有標準答案,但使用 Amazon ElastiCache 時,您無須擔心節點的數量是否完全準確,因為之後可隨時輕鬆新增或移除節點。在選擇初始組態時,您可以考慮以下兩個相互關聯的因素:

  • 達到目標快取命中率所需的總記憶體量,以及
  • 保持可接受的應用程式效能且不會在節點故障時造成資料庫後端過載所需的節點數。

所需的記憶體量取決於您的資料集大小及應用程式的存取模式。若要提高容錯能力,在對所需的記憶體總量有初步概念之後,可將該記憶體量分割為足夠數量的節點,以便您的應用程式在一兩個節點出現故障時依然可以執行。例如,如果您的記憶體要求為 13 GB,則可能需要使用兩個 cache.m4.large 節點,而不是一個 cache.m4.xlarge 節點。需要確保一或多個節點故障恢復期間快取命中率出現臨時降低時,資料庫等其他系統不會過載,這一點很重要。如需詳細資訊,請參閱 Amazon ElastiCache 使用者指南

問:一個叢集是否可跨越多個可用區域?
是。建立叢集或在現有叢集新增節點時,可以為新節點選擇可用區域。您可以在每個可用區域中指定請求的節點數量,也可以選擇 "spread nodes across zones"。如果叢集位於 VPC 中,節點只能放置在屬於所選快取子網路群組的可用區域中。如需詳細資訊,請參閱 ElastiCache VPC 文件

問:我可以在 Amazon ElastiCache Memcached 的每一區域執行多少個節點?
您最多可以在每個區域執行 300 個節點。如果需要更多節點,請填寫提高 ElastiCache 上限申請表

問:Amazon ElastiCache 如何對節點故障作出反應?
該服務可以偵測到節點故障,並透過下列自動步驟進行反應:

  • Amazon ElastiCache 會取得新的服務資源以修復節點,然後將節點的現有 DNS 名稱重新導向到指向新的服務資源。如果是 VPC 安裝,當節點在發生故障後恢復時,ElastiCache 會確保節點的 DNS 名稱和 IP 地址都維持相同。如果是非 VPC 安裝,ElastiCache 會確保節點的 DNS 名稱不變,但節點的基礎 IP 地址可能變更。
  • 如果您已將某個 SNS 主題與叢集關聯,在新的節點設定完成並可用時,Amazon ElastiCache 會傳送 SNS 通知以告知您出現了節點恢復。這可讓您選擇安排應用程式強制 Memcached 用戶端程式庫嘗試重新連接修復後的節點。這可能很重要,因為一些 Memcached 程式庫在與某個伺服器的通訊出現錯誤或逾時的時候,會無限期停止使用該伺服器 (節點)。

問:如果我確定需要更多記憶體來支援我的應用程式,如何利用 Amazon ElastiCache 增加總記憶體?
您可以在現有的 Memcached 叢集新增更多節點:在 AWS 管理主控台,使用您快取叢集的 "Nodes" 標籤上的 "Add Node" 選項,或者呼叫 ModifyCacheCluster API。

相容性

問:Amazon ElastiCache 如何與其他 Amazon Web Services 互動?
Amazon ElastiCache 是 Amazon RDS 和 Amazon DynamoDB 等 Amazon Web Services 的理想前端選擇,可為高效能應用程式提供極低的延遲並卸載一些請求容量,同時這些服務能提供長久的資料耐用性。在與 Amazon EC2 和 EMR 搭配使用時,此服務也可用於提升應用程式效能。

問:Amazon ElastiCache 是否較適合任何特定的程式設計語言?
儘管並非全部,但 Memcached 用戶端程式庫適合許多熱門的程式設計語言使用。如果您使用 Amazon ElastiCache 時遇到特定的 Memcached 用戶端問題,請透過 Amazon ElastiCache 社群論壇與我們聯絡。

問:哪些熱門的 Memcached 程式庫與 Amazon ElastiCache 相容?
Amazon ElastiCache 並不需要特定的用戶端程式庫,而且與現有的 Memcached 用戶端程式庫搭配使用時無須重新編譯或重新連結應用程式 (Memcached 1.4.5 及更高版本);例如,包括 libMemcached (C) 及以此為基礎的程式庫 (如 PHP、Perl、Python)、spyMemcached (Java) 和 fauna (Ruby)。

Auto Discovery

問:什麼是 Auto Discovery?它對我有什麼幫助?
Auto Discovery 是可節省開發人員時間和精力,並降低應用程式複雜性的一種功能。在 Amazon ElastiCache 叢集新增或刪除快取節點時,Auto Discovery 可透過用戶端自動發現快取節點。直到現在,為處理叢集成員資格的變更,開發人員仍須手動更新快取節點的端點清單。根據用戶端應用程式的建構方式,通常用戶端初始化需要關閉和重新啟動應用程式,而這會導致停機。但透過 Auto Discovery,我們可以消除這種複雜性。利用 Auto Discovery,除了與 Memcached 協定向後相容以外,Amazon ElastiCache 還提供用戶端有關快取叢集成員資格的資訊。用戶端能夠處理更多資訊,無須任何初始化即可自我重新設定,以使用 Amazon ElastiCache 叢集的最新節點。

問:Auto Discovery 如何運作?
Amazon ElastiCache 叢集可以利用透過指定端點進行尋址的節點來建立。透過 Auto Discovery,Amazon ElastiCache 叢集也會取得一個獨特的組態端點,這是在叢集生命週期內均有效的 DNS 記錄。此 DNS 記錄包含屬於該叢集的節點的 DNS 名稱。Amazon ElastiCache 將確保組態端點永遠指向至少一個這種「目標」節點。然後,針對目標節點的查詢將為相關叢集的所有節點返回端點。之後,您就可以和以前一樣連接到叢集節點和使用各種 Memcached 協定命令,如 get、set、incr 和 decr。如需詳細資訊,請參閱這裡。若要使用 Auto Discovery 功能,您需要有具備 Auto Discovery 功能的用戶端。您可以從 Amazon ElastiCache 主控台下載適用於 .Net、Java 和 PHP 的 Auto Discovery 用戶端。完成初始化後,用戶端將使用組態端點自動確定 Amazon ElastiCache 叢集的最新成員。當您新增或移除節點以對快取叢集進行變更,或者因發生故障取代節點後,Auto Discovery 用戶端會自動確定變更,您不需要手動初始化用戶端。

問:如何開始使用 Auto Discovery?
若要開始使用,按一下 Amazon ElastiCache 主控台中的 "Download ElastiCache Cluster Client" 連結,以下載 Amazon ElastiCache 叢集用戶端。下載之前,您必須已經有 Amazon ElastiCache 帳戶;如果還沒有帳戶,可以從 Amazon ElastiCache 詳細資訊頁面註冊。下載用戶端後,您可以透過 Amazon ElastiCache 主控台開始設定和啟動 Amazon ElastiCache 叢集。您可以在 這裡找到更多詳細資訊。

問:如果我繼續使用自己的 Memcached 用戶端搭配 ElastiCache 快取叢集,是否可取得此功能?
否,使用現有的 Memcached 用戶端將無法使用 Auto Discovery 功能。若要使用 Auto Discovery 功能,用戶端必須能夠使用組態端點並確定該叢集節點的端點。您可以使用 Amazon ElastiCache 叢集用戶端,或者擴展您現有的 Memcached 用戶端以納入 Auto Discovery 命令集

問:使用 Auto Discovery 的最低軟硬體需求為何?
若要利用 Auto Discovery 功能,必須使用具備 Auto Discovery 功能的用戶端連接到 Amazon ElastiCache 叢集。Amazon ElastiCache 目前支援適用於 .Net、Java 和 PHP 且支援 Auto Discovery 功能的用戶端。您可以從 Amazon ElastiCache 主控台下載這些用戶端。我們的客戶可以在可用的熱門 Memcached 用戶端上建立任何其他語言的用戶端。

問:如何修改或編寫我的 Memcached 用戶端以支援 Auto Discovery 功能?
您可以使用任何 Memcached 用戶端程式庫,並新增 Auto Discovery 支援功能。如果您希望新增或修改自己的用戶端以支援 Auto Discovery,請參閱 Auto Discovery 命令集文件

問:如果我不需要使用 Auto Discovery,是否可以繼續使用現有的 Memcached 用戶端?
可以,Amazon ElastiCache 仍然與 Memcached 協定相容,不會要求您變更用戶端。不過,為了利用 Auto Discovery 功能,我們必須增強 Memcached 用戶端的功能。如果您選擇不使用 Amazon ElastiCache 叢集用戶端,可以繼續使用現有的用戶端,或修改您的用戶端程式庫,使其能了解 Auto Discovery 命令集。

問:使用 Auto Discovery 時,是否可以擁有異質用戶端?
可以,您可以同時使用支援 Auto Discovery 的用戶端和傳統的 Memcached 用戶端連接同一個 Amazon ElastiCache 叢集。Amazon ElastiCache 仍然與 Memcached 100% 相容。

問:是否可以停用 Auto Discovery?
可以,您可以隨時停用 Auto Discovery。您可以在 Amazon ElastiCache 叢集用戶端初始化期間,透過指定操作模式以停用 Auto Discovery。同時,因為 Amazon ElastiCache 仍然 100% 支援 Memcached,所以您可以像從前一樣使用任何 Memcached 協定相容的用戶端。

引擎版本管理

問:我可以控制是否以及何時將支援 Amazon ElastiCache 叢集的引擎版本升級到支援的新版本嗎?
Amazon ElastiCache 允許您控制是否以及何時將支援叢集的 Memcached 協定相容軟體升級到 Amazon ElastiCache 支援的新版本。這使您能夠靈活地保持與特定 Memcached 版本的相容性,在生產中部署應用程式前針對新版本進行測試,以及根據自己的要求和時間執行版本升級。由於版本升級涉及一定的相容性風險,因此這些升級不會自行啟動,必須由您啟動。這種軟體修補的方式讓您主導版本升級,但仍將應用程式修補的工作交給 Amazon ElastiCache。您可以閱讀後續的常見問答集以進一步了解版本管理的更多相關資訊。或者,也可以參閱 Amazon ElastiCache User Guide。雖然引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,但如果我們判定系統或快取軟體有任何資訊安全漏洞,會代表您修補叢集。

問:如何指定我的叢集應執行哪一個受支援的 Memcached 版本?
您可以在建立新叢集時指定目前支援的任何版本 (次要和/或主要版本)。如果您要啟動受支援引擎版本版次的升級,可以使用叢集的 "Modify" 選項執行此操作。只要透過 "Cache Engine Version" 欄位指定希望升級到的版本即可。然後,系統將立即 (如果已核取 "Applied Immediately" 選項) 或在叢集下一個計劃維護時段代表您套用升級。

問:是否可以在升級前針對新版本測試叢集?
是。可以使用新引擎版本建立新的叢集,以執行測試。您可以將開發/模擬應用程式指向此叢集,測試後再決定是否升級您的原始叢集。

問:Amazon ElastiCache 是否針對支援新的 Memcached 版本版次和/或淘汰目前支援的版本提供準則?
隨著時間經過,我們計劃為 Amazon ElastiCache 支援更多 Memcached 的主要和次要版本。特定年度支援的新版本版次數量因 Memcached 版本版次的頻率和內容而異,由工程團隊負責版本全面審查的最終結果。

問:Amazon ElastiCache 支援哪個版本的 Memcached 線路協定?
Amazon ElastiCache 支援 Memcached 1.6.17、1.6.12、1.6.6、1.5.16、1.5.10、1.4.34、1.4.33、1.4.24、1.4.14 和 1.4.5 版的 Memcached 文字和二進位協定。

問:如果要升級到最新的 Memcached 版本,我應該怎麼做?
使用 Modify 程序即可升級現有的 Memcached 叢集。從舊版 Memcached 升級到 Memcached 版本 1.4.33 或更新版本時,請確定現有的參數 max_chunk_size 值能夠滿足 slab_chunk_max 參數所需的條件。請在這裡查看升級先決條件。

進一步了解 Amazon ElastiCache for Redis 定價

瀏覽定價頁面
準備好開始建立?
開始使用適用於 Redis 的 Amazon ElastiCache
還有其他問題嗎?
聯絡我們