問:什麼是 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?

答:是。適用於 Redis 的 ElastiCache 可用來做為主要記憶體內鍵值資料存放區,它提供快速、 低於一毫秒 的資料效能、高可用性,以及可擴展至高達 15 個節點和高達 5 個僅供讀取複本,每個都有最多 6.1 TiB 的記憶體內資料。請參閱這裡以了解排行榜、速率限制、佇列和對談等使用案例。

問:是否可透過 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 支援哪些引擎?

適用於 Memcached 的 Amazon ElastiCache 目前支援 Memcached 1.4.5、1.4.14、1.4.24、1.4.33 和 1.4.34。

適用於 Redis 的 Amazon ElastiCache 目前支援 Redis 2.8.21、2.8.22、2.8.23、2.8.24、3.2.4、3.2.6 及 3.2.10。

問:如何開始使用 Amazon ElastiCache?

如果您還沒有註冊 Amazon ElastiCache,可以按一下 Amazon ElastiCache 詳細資訊頁面上的「立即註冊」按鈕,然後完成註冊程序。您必須擁有 Amazon Web Services 帳戶才能存取此服務;如果沒有帳戶,在您開始 Amazon ElastiCache 註冊程序時,系統會提示您建立一個帳戶。註冊 ElastiCache 後,請參閱 Amazon ElastiCache 文件,其中包含我們的入門指南

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

問:如何建立叢集?

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

問:我可以選擇哪些節點類型?

Amazon ElastiCache 支援下列節點類型:

最新一代節點:

  • cache.m3.medium:2.78 GB
  • cache.m3.large:6.05 GB
  • cache.m3.xlarge:13.3 GB
  • cache.m3.2xlarge:27.9 GB
  • cache.m4.large:6.42 GB
  • cache.m4.xlarge:14.28 GB
  • cache.m4.2xlarge:29.7 GB
  • cache.m4.4xlarge:60.78 GB
  • cache.m4.10xlarge:154.64 GB
  • cache.r3.large:13.5 GB
  • cache.r3.xlarge:28.4 GB
  • cache.r3.2xlarge:58.2 GB
  • cache.r3.4xlarge:118 GB
  • cache.r3.8xlarge:237 GB
  • cache.r4.large:12.3 GB
  • cache.r4.xlarge:25.05 GB
  • cache.r4.2xlarge:50.47 GB
  • cache.r4.4xlarge:101.38 GB
  • cache.r4.8xlarge:203.26 GB
  • cache.r4.16xlarge:407 GB
  • cache.t2.micro:555 MB
  • cache.t2.small:1.55 GB
  • cache.t2.medium:3.22 GB
 
上一代節點:
 
  • cache.m1.small:1.3 GB
  • cache.m1.medium:3.35 GB
  • cache.m1.large:7.1 GB
  • cache.m1.xlarge:14.6 GB
  • cache.m2.xlarge:16.7 GB
  • cache.m2.2xlarge:33.8 GB
  • cache.m2.4xlarge:68 GB
  • cache.t1.micro:213 MB
  • cache.c1.xlarge:6.6 GB

上述節點類型的 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 維護時段 視為 在請求或需要的情況下控制何時執行軟體修補的機會。如果在某星期排定了「維護」事件,則將在您指定的 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 預留節點?

您現在可以利用預留節點支付一次性預付款,保留一年或三年期特定區域的節點執行,並獲得後續每小時使用費的大幅折扣。現有三種預留節點類型 (低、中、高使用率預留節點),讓您根據實際的小時價格平衡預付款金額。

問:預留節點與隨需節點有何區別?

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

問:如何購買和建立預留節點?

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

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

問:是否一直有保留可供購買?

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

問:我可以購買多少個預留快取?

您最多可以購買 20 個預留節點。如果要執行 20 個以上節點,請填寫 Amazon ElastiCache 節點申請表

問:如果我想將現有的節點轉換為預留節點,應該怎麼做?

只要在您目前執行節點和希望預訂節點的相同區域內,購買相同節點類別的節點保留即可。如果您成功購買保留,Amazon ElastiCache 將自動在現有的節點套用新的每小時使用費。

問:如果我註冊了預留節點,期間從何時開始?該期間結束後,會怎麼處理我的節點?

收到您的請求及處理付款授權後,就會啟動與預留節點相關聯的定價變更。您可以在 AWS Account Activity 頁面或使用 DescribeReservedCacheNodes API 追蹤保留的狀態。如果在下一帳單週期前未成功授權一次性付款,折扣價格將不會生效。

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

問:我如何控制哪些節點按照預留節點費用計費?

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

問:是否可以將預留節點從一個區域或可用區域轉移到另一個區域或可用區域?

每個預留節點都與特定區域關聯,並且在保留生命週期內固定不變,也無法變更。不過,每個保留都可以用於關聯區域內的任何可用區域。

問:是否可以取消保留?

預留節點的一次性付款不可退款。不過,您可以隨時選擇終止節點。如果您使用的是低使用率和中使用率預留節點,自該時間點起不會再產生任何小時使用費用。


問:如何控制對 Amazon ElastiCache 的存取?

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

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

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

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

問:我自己資料中心伺服器內執行的程式是否可存取 Amazon ElastiCache?

否。目前,ElastiCache 叢集的所有用戶端都必須位於 Amazon EC2 網路中,並按照這裡所述透過安全群組授權。

問: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 User Guide

問:如何在 VPC 內建立 Amazon ElastiCache 叢集?

有關在 VPC 中建立 Amazon ElastiCache 叢集的步驟說明,請參閱 Amazon ElastiCache User Guide

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

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

問:如何在現有的 VPC 內建立 Amazon ElastiCache 叢集?

在現有的 VPC 內建立 Amazon ElastiCache 叢集與在新建的 VPC 內建立叢集的方法相同。請參閱這裡了解更多詳細資訊。

問:如何連接到 VPC 內的 ElastiCache 節點?

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

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

我們強烈建議您使用 DNS 名稱來連接 ElastiCache 節點,因為基礎 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 都可以管理自動故障偵測、恢復、擴展、Auto Discovery 以及軟體修補等任務。

在 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 文件

問:是否可使用安全群組來設定 VPC 內的叢集?

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

問:是否可將常規的 EC2 安全群組與 VPC 內啟動的叢集相關聯?

否,您只能關聯與叢集處於同一 VPC 的 VPC 安全群組。

問:ElastiCache 叢集的節點是否可以跨越多個子網路?

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


問:什麼是參數群組?它們可提供什麼幫助?

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

問:如何為我的叢集選擇正確的組態參數?

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

問:如何查看指定參數群組中的目前參數設定?

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


問:Memcached 的 Amazon ElastiCache 可以用來快取什麼內容?

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

問:是否可將適用於 Memcached 的 Amazon ElastiCache 與 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 ElastiCache 僅允許從 Amazon EC2 網路進行存取,因此若要使用本服務,您的應用程式伺服器應當放置於 Amazon EC2 中。

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


問:如何為我的應用程式選擇適當的節點類型?

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

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

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

問:一個叢集是否可跨越多個可用區域?

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

問:我可以在 Amazon ElastiCache Memcached 的每一區域執行多少個節點?

您最多可以在每個區域執行 100 個節點。如果需要更多節點,請填寫提高 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 用戶端程式庫適合許多熱門的程式設計語言使用。如需 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 是可節省開發人員時間和精力,並降低應用程式複雜性的一種功能。在 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 主控台下載適用於 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 目前支援適用於 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 版本版次的頻率和內容而異,由工程團隊負責版本全面審查的最終結果。不過,一般而言,我們會在正式發行版次後 3 到 5 個月內支援新的 Memcached 版本。

問:Amazon ElastiCache 支援哪一個版本的 Memcached 線路協定?

Amazon ElastiCache 支援 Memcached 1.4.5、1.4.14、1.4.24、1.4.33 和 1.4.34 版的 Memcached 文字和二進位協定。

問:如果要升級到最新的 Memcached 版本,我應該怎麼做?

使用 Modify 程序即可升級現有的 Memcached 叢集。從舊版 Memcached 升級到 Memcached 版本 1.4.33 或更新版本時,請確定現有的參數 max_chunk_size 值能夠滿足 slab_chunk_max 參數所需的條件。請在這裡查看升級先決條件。


問:什麼是適用於 Redis 的 Amazon ElastiCache?

適用於 Redis 的 Amazon ElastiCache 是一種 Web 服務,讓使用者能夠在雲端輕鬆部署和執行與 Redis 協定相容的伺服器節點。此服務可進行 Redis 節點的管理、監控和操作;而且可透過 ElastiCache 主控台、命令列界面或 Web 服務 API 執行節點的建立、刪除和修改。適用於 Redis 的 Amazon ElastiCache 支援 Redis 主/從複寫。

問:適用於 Redis 的 Amazon ElastiCache 協定是否與開放原始碼 Redis 相容?

是,適用於 Redis 的 Amazon ElastiCache 協定與開放原始碼 Redis 相容。客戶目前與其現有的獨立 Redis 資料存放區搭配使用的程式碼、應用程式、驅動程式和工具仍然能與適用於 Redis 的 ElastiCache 搭配使用,將現有 Redis 部署遷移到適用於 Redis 的 ElastiCache 時也不需要變更程式碼,除非另有說明。我們目前支援 Redis 2.8.21、2.8.22、2.8.23、2.8.24 及 3.2.4。

問:什麼是適用於 Redis 的 Amazon ElastiCache 節點和碎片?

Amazon ElastiCache 節點是適用於 Redis 的 ElastiCache 叢集部署的最小建置區塊。每個節點都利用 Amazon 的增強功能支援 Redis 協定,且擁有自己的端點和連接埠。支援多種節點類型,每種類型都有不同的 CPU 功能和記憶體容量。

碎片是一或多個節點的集合,負責邏輯鍵值空間的某個分區。碎片內的節點可能獨立存在或與其他節點有主/複本關係。如果碎片內有多個節點,其中一個節點將扮演讀取/寫入的主要角色,而其他所有節點則扮演唯讀複本角色。

問:適用於 Redis 的 Amazon ElastiCache 是否支援 Redis 耐用性?

是。您可以使用備份與恢復功能為您的 Redis 資料拍攝快照,以實現耐用性。請查看這裡了解詳細資訊。

問:如何從適用於 Memcached 的 Amazon ElastiCache 遷移到適用於 Redis 的 Amazon ElastiCache,反之又如何操作?

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

問:適用於 Redis 的 Amazon ElastiCache 是否支援異地同步備份操作?

是,透過適用於 Redis 的 Amazon ElastiCache,您可以在另一個 AWS 可用區域中建立僅供讀取複本。主節點發生故障時,我們將佈建一個新的主節點。在無法佈建主節點的情況下,您可以決定將哪一個僅供讀取複本提升為新的主節點。如需如何處理節點故障的更多詳細資訊,請參閱這裡

問:適用於 Redis 的 Amazon ElastiCache 提供哪些節點故障的選項?

適用於 Redis 的 Amazon ElastiCache 會取得新的服務資源以修復節點,然後將節點的現有 DNS 名稱重新導向到新的服務資源。因此,Redis 節點的 DNS 名稱維持不變,但 Redis 節點的 IP 地址可能隨著時間變更。如果您擁有的複寫群組具有一或多個僅供讀取複本,且已啟用異地同步備份,那麼在主節點發生故障時,ElastiCache 將自動偵測故障、選擇複本並將其提升為新的主節點。它也會傳播 DNS 以便您能夠繼續使用主端點,並在提升後指向新提升的主節點。有關更多詳細資訊,請參閱此常見問答集的異地同步備份一節。當選取 Redis 複寫選項但停用異地同步備份時,如果主節點發生故障,您可以選擇啟動容錯移轉到僅供讀取複本節點。容錯移轉目標可以在相同區域或另一個區域中。若要容錯回復到原始區域,要將原始區域中的僅供讀取複本提升為主節點。您可以選擇將應用程式設計為使 Redis 用戶端程式庫重新連接到已修復的 Redis 伺服器節點。由於有些 Redis 程式庫會在遇到通訊錯誤或逾時的時候無限期停止使用伺服器,所有這一點很有用。

問:容錯移轉如何運作?

此常見問答集的異地同步備份部分對於已啟用異地同步備份的複寫群組的容錯移轉行為有所說明。

如果您選擇不啟用異地同步備份,那麼當 Amazon ElastiCache 監控主節點且該節點變成無法使用或無法回應,則適用於 Redis 的 Amazon ElastiCache 會取得新的服務資源以修復節點,然後將節點的現有 DNS 名稱重新導向到新的服務資源。因此,Redis 節點的 DNS 名稱維持不變,但 Redis 節點的 IP 地址可能隨著時間變更。但是,如果無法修復主節點 (且異地同步備份已停用),您可以選擇將其中一個僅供讀取複本提升為新的主節點。請參閱這裡了解如何選擇新的主節點。主節點的端點 DNS 記錄將會更新,以指向提升後的僅供讀取複本節點。然後,原始主節點的可用區中的僅供讀取複本節點會建立為碎片中的僅供讀取複本,接著成為新的主節點。

問:主節點故障期間,我的僅供讀取複本是否可用?

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

問:如何設定適用於 Redis 的 Amazon ElastiCache 節點的參數?

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

問:是否可透過 Amazon ElastiCache 主控台存取 Redis?

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

問:是否可以在 Amazon VPC 中建立適用於 Redis 的 Amazon ElastiCache 叢集?

是,就像可以在 VPC 中建立 Memcached 叢集一樣,您也可以在 VPC 中建立 Redis 叢集。如果您的帳戶為預設情況下的 VPC,則將在與您的帳戶相關的預設 VPC 內建立您的 Redis 叢集。您可以使用 ElastiCache 主控台,在建立叢集時指定不同的 VPC。

問:適用於 Redis 的 Amazon ElastiCache 是否支援 Redis AUTH 功能?

是,適用於 Redis 的 Amazon ElastiCache 提供 Redis AUTH 功能。透過主控台或命令列界面建立 Redis 叢集時,一旦啟用加密傳輸,就可以使用 Redis AUTH 命令來提供與 Redis 叢集進行通訊時所需的身份驗證字符。

問:如何升級到較新的引擎版本?

使用 ModifyCacheCluster 或 ModifyReplicationGroup API,並針對 EngineVersion 參數指定偏好的引擎版本,即可輕鬆升級到較新的引擎版本。您可以在 ElastiCache 主控台選取叢集,然後按一下 "Modify"。在 "Modify" 視窗的可用選項中,選取您偏好的引擎版本。引擎升級程序的設計是盡可能保留您現有的資料,且需要 Redis 複寫才能成功。如需關於此程序的更多詳細資訊,請參閱這裡

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

否。不支援降級到較早的引擎版本。

問:如何擴展到較大的節點類型?

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

問:可以縮減為較小的節點類型嗎?

目前不支援縮減為較小的節點類型。

問:用來測量 Redis CPU 使用率的正確指標為何?

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


問:以僅供讀取複本執行 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 管理主控台擷取僅供讀取複本的端點,以連接到僅供讀取複本。如果您有多個僅供讀取複本,各個複本之間的讀取流量分配方式取決於應用程式。

問:我可以為指定的主要節點建立多少個僅供讀取複本?

Amazon ElastiCache 目前允許您為指定的主要節點最多建立五 (5) 個僅供讀取複本。

問:如果發生容錯移轉,僅供讀取複本會出現什麼情況?

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

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

不支援為另一個僅供讀取複本建立僅供讀取複本。

問:是否可將僅供讀取複本提升成「獨立」主要節點?

否,不支援此操作。但是,您可以為適用於 Redis 的 ElastiCache 節點拍攝快照 (可以選擇主節點或任何僅供讀取複本)。然後,使用快照開拓適用於 Redis 的新 ElastiCache 主節點。

問:僅供讀取複本是否會與其主要節點一起保持在最新狀態?

主要節點的更新會自動複製到所有關聯的僅供讀取複本。不過,若利用 Redis 的異步複寫技術,僅供讀取複本可能因為各種原因落後於主快取節點。常見的原因包括:

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

僅供讀取複本會受到 Redis 複寫的優缺點影響。如果您正在使用僅供讀取複本,應該會注意到僅供讀取複本與其主快取節點之間可能的延遲或「不一致」。您可以透過「複寫延遲」CloudWatch 指標來監控可能發生的延遲,還可以從 ElastiCache 主控台與 API 進行存取以及取得其他 CloudWatch 服務。

問:如何查看作用中的僅供讀取複本?

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

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 API,即可輕鬆地刪除僅供讀取複本。如果您想要同時刪除主快取節點和僅供讀取複本,則必須使用 DeleteReplicationGroup API 或 AWS 管理主控台。

問:僅供讀取複本的費用為何?如何計算帳單週期?

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

問:容錯移轉時會出現什麼情況?這種情況會持續多久?

Amazon ElastiCache 支援啟動容錯移轉,這樣您可以儘快恢復操作。在容錯移轉時,Amazon ElastiCache 會翻轉節點的 DNS 記錄以指向僅供讀取複本,僅供讀取複本轉而提升成新的主節點。我們鼓勵您遵循最佳實務,在應用程式層實作快取節點連線重試機制。通常,容錯移轉從開始到結束會在三到六分鐘內完成。

問:是否可以在另一個區域建立僅供讀取複本做為我的主節點?

否。您只能在相同區域的同一可用區域或不同可用區域佈建您的僅供讀取複本做為主快取節點。

問:是否可以查看我的主節點目前位於哪個可用區域?

是。您可以使用 AWS 管理主控台或 DescribeCacheClusters API 查看目前主節點的位置。

容錯移轉後,現在我的主節點與其他 AWS 資源 (例如 EC2 執行個體) 位於不同的可用區域。

問:我是否需要擔心有延遲?

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


問:什麼是適用於 Redis 的 ElastiCache 異地同步備份?

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

問:使用異地同步備份有哪些優點?

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

問:異地同步備份如何運作?

如果您正在使用適用於 Redis 的 ElastiCache,而且碎片由一個主要節點和一或多個僅供讀取複本組成,則可以使用異地同步備份。如果主節點故障,ElastiCache 將自動偵測該故障,從可用的僅供讀取複本中選擇其一,並將其提升為新的主節點。停用 cluster_mode 參數時,ElastiCache 會傳播所提升複本的 DNS 變更,因此您的應用程式可繼續寫入主端點。如果啟用 cluster_mode,ElastiCache 會更新叢集的節點對應。ElastiCache 也會擴充一個新節點,以取代與故障主節點位於相同可用區域的已提升僅供讀取複本。如果主節點因可用區域暫時中斷而發生故障,一旦該可用區域恢復,新的複本即會啟動。

問:是否可將相同可用區域中的複本設為主節點?

是。請注意,將主節點和複本放在相同可用區域中並不能使適用於 Redis 的 ElastiCache 複寫群組在可用區域發生故障時靈活反應。

問:什麼情況下會使 Amazon ElastiCache 容錯移轉到僅供讀取複本?

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

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

問:何時應使用異地同步備份?

Redis 複寫搭配異地同步備份使用可提高可用性和容錯能力。這種部署非常適合在生產環境中使用。執行適用於 Redis 的 ElastiCache 時啟用叢集模式,如果您的碎片有一或多個僅供讀取複本,則會自動啟用異地同步備份。

問:如何在已啟用異地同步備份的情況下建立適用於 Redis 的 ElastiCache 複寫群組?

按一下 ElastiCache 管理主控台上的 "Create",即可建立適用於 Redis 的 ElastiCache 主節點和僅供讀取複本。另一個方式是呼叫 CreateReplicationGroup API。對於現有的叢集 (Redis 2.8.6、2.8.19、2.8.21、2.8.22、2.8.23、2.8.24 及 3.2.4,且 cluster_mode=disabled),您可以選擇叢集並按一下 ElastiCache 管理主控台上的 Modify 或使用 ModifyReplicationGroup API,以啟用異地同步備份。將複寫群組切換為異地同步備份不會中斷您的 Redis 資料,也不會干擾您的節點為請求提供服務的能力。

問:當主節點發生故障時,將提升哪個僅供讀取複本?

如果有多個僅供讀取複本,將提升對主節點非同步複寫延遲最小的僅供讀取複本。

問:使用異地同步備份成本為何?

異地同步備份功能是免費的。您只需為所使用的 ElastiCache 節點付費。

問:異地同步備份有什麼效能影響?

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

問:哪些節點類型支援異地同步備份?

ElastiCache 中的所有可用節點類型都支援異地同步備份,只有一個例外狀況。使用 Redis 2.8.x 或 Redis 3.x 且 cluster_mode=disabled 時,T2 系列不支援異地同步備份。

問:執行自動容錯移轉時,我是否會收到警示?

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

問:容錯移轉後,現在我的主節點與其他 AWS 資源 (例如 EC2 執行個體) 位於不同的可用區域。我是否需要擔心有延遲?

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

問:可以在哪裡獲得關於異地同步備份的更多資訊?

如需異地同步備份的詳細資訊,請參閱 ElastiCache 文件

問:是否可測試異地同步備份功能?

是。如果您已在叢集或有一或多個僅供讀取複本的複寫群組上啟用「異地同步備份」功能,即可觸發容錯移轉。ElastiCache 會使用與實際故障案例一樣的方法回應,也就是偵測故障、將最新的僅供讀取複本提升成為新的主節點,然後替換故障的主節點,而故障的主節點將以新僅供讀取複本的形式連接並取代提升的僅供讀取複本。如需測試容錯移轉的詳細資訊,請參閱文件


問:什麼是備份與恢復?

備份與恢復是一項功能,可讓客戶為適用於 Redis 的 ElastiCache 叢集建立快照。ElastiCache 會儲存這些快照,以便使用者之後用來恢復 Redis 叢集。

問:什麼是快照?

快照是您的整個 Redis 叢集在特定時間點的副本。

問:為什麼需要快照?

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

問:快照有什麼作用?

您可以使用快照,以預先載入的資料來暖開機適用於 Redis 的 ElastiCache 叢集。

問:備份與恢復如何運作?

啟動備份時,ElastiCache 將拍攝特定 Redis 叢集的快照,之後可將其用於恢復或存檔。您隨時可以選擇啟動備份,也可以設定一個保留期長達 35 天每天重複進行的備份。

當您選擇快照進行恢復時,將會建立一個適用於 Redis 的新 ElastiCache 叢集並填入快照的資料。利用這種方式,您可以從特定的快照建立多個適用於 Redis 的 ElastiCache 叢集。

目前,ElastiCache 使用 Redis 的原生機制建立 RDB 檔案並將其存放為快照。

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

快照存放在 S3 中。

問:如何開始使用備份與恢復?

您可以選擇透過 AWS 管理主控台、ElastiCache API (CreateCacheCluster、ModifyCacheCluster 和 ModifyReplicationGroup API) 以及 CLI 使用備份與恢復功能。您可以選擇隨時停用和重新啟動此功能。

問:如何指定要備份的 Redis 叢集和節點?

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

問:適用於 Memcached 的 ElastiCache 是否支援備份與恢復?

否,僅適用於 Redis 的 ElastiCache 可使用快照。

問:如何指定何時備份?

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

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

問:什麼是備份時段?為什麼我需要它?

偏好備份時段是使用者定義的時段,您的適用於 Redis 的 ElastiCache 叢集會在此時段開始備份。如果您需要在每日特定時間備份或避免在特別高使用率期間內備份,偏好備份時段將非常有用。

問:拍攝快照對效能有什麼影響?

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

問:是否可以從適用於 Redis 的 ElastiCache 僅供讀取複本建立快照?

是。從僅供讀取複本建立快照是備份資料同時將效能影響降至最低的最佳方式。

問:可在哪些區域使用備份與恢復功能?

可以使用 ElastiCache 服務的所有區域都可以使用備份與恢復功能。

問:是否可以將適用於 Redis 的 ElastiCache 快照匯出到我擁有的 S3 儲存貯體?

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

問:是否可以從一個區域將快照複製到另一個區域?

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

問:我有多個使用適用於 Redis 的 ElastiCache 的 AWS 帳戶。是否可以使用一個帳戶的 ElastiCache 快照來暖開機其他帳戶中適用於 Redis 的 ElastiCache 叢集?

是。您必須先將快照複製到相同區域中所選的授權 S3 儲存貯體,然後將跨帳戶儲存貯體許可授予其他帳戶。有關 S3 跨帳戶許可的詳細資訊,請參閱這裡。最後,在叢集建立期間,透過主控台的 Launch Cache Cluster 精靈或透過 CreateCacheCluster API 指定 RDB 檔案在 S3 中的位置。

問:使用備份與恢復的成本為何?

Amazon ElastiCache 為每個作用中的 Redis ElastiCache 叢集免費提供一個快照的儲存空間。額外儲存將根據快照佔用的空間收取費用,每月 0.085 USD/GB (所有區域的價格相同)。使用快照功能進行的資料傳輸是免費的。

問:什麼是保留期?

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

問:如何管理自動快照的保留?

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

問:如果刪除適用於 Redis 的 ElastiCache 叢集,我的快照會出現什麼情況?

當您刪除適用於 Redis 的 ElastiCache 叢集時,會保留您的手動快照。您還可以選擇在刪除叢集之前建立最終快照。自動快照則不會保留。

問:哪些節點類型支援備份與恢復功能?

除 t1.micro 和 t2 系列外,所有適用於 Redis 的 ElastiCache 執行個體節點類型都支援備份與恢復:

最新一代節點:

  • cache.m3.medium
  • cache.m3.large
  • cache.m3.xlarge
  • cache.m3.2xlarge
  • cache.m4.large
  • cache.m4.xlarge
  • cache.m4.2xlarge
  • cache.m4.4xlarge
  • cache.m4.10xlarge
  • cache.r3.large
  • cache.r3.xlarge
  • cache.r3.2xlarge
  • cache.r3.4xlarge
  • cache.r3.8xlarge
  • cache.r4.large
  • cache.r4.xlarge
  • cache.r4.2xlarge
  • cache.r4.4xlarge
  • cache.r4.8xlarge
  • cache.r4.16xlarge

上一代節點:

  • cache.m1.small
  • cache.m1.medium
  • cache.m1.large
  • cache.m1.xlarge
  • cache.m2.xlarge
  • cache.m2.2xlarge
  • cache.m2.4xlarge
  • cache.c1.xlarge

問:是否可使用自己存放在 S3 中的 RDB 快照來暖開機適用於 Redis 的 ElastiCache 叢集?

是。在叢集建立期間,您可以透過主控台的 "Create Cluster" 精靈或 CreateCacheCluster API 指定 RDB 檔案在 S3 中的位置。

問:如果我在 VPC 中執行 ElastiCache,是否可使用備份與恢復功能?

是。


問:什麼是適用於 Redis 的 ElastiCache 叢集?

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

問:為何我需要擴展的 Redis 環境?

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

問:為什麼要在 Amazon ElastiCache 上執行 Redis 叢集工作負載?

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

問:適用於 Redis 的 ElastiCache 叢集是否與開放原始碼 Redis 相容?

是,適用於 Redis 的 Amazon ElastiCache 叢集與開放原始碼 Redis 3.2 相容。您可以使用開放原始碼 Redis 叢集用戶端存取適用於 Redis 的 ElastiCache 上的擴展叢集。

問:建立叢集之後,是否可以修改碎片的數量?

目前無法在建立叢集之後修改叢集中的碎片數量。

問:從目前適用於 Redis 的 ElastiCache 2.8 x 升級到適用於 Redis 的 ElastiCache 叢集 (版本 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 叢集用戶端。

問:叢集化組態與非叢集化組態的定價是否不同?

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

問:什麼是適用於 Redis 的 ElastiCache 叢集異地同步備份?

適用於 Redis 的 ElastiCache 叢集中的每個碎片都是由一個主節點和最多五個僅供讀取複本組成。Redis 將資料從主節點以非同步方式複製到僅供讀取複本。在特定類型的計劃維護期間,或在少見的 ElastiCache 節點故障或可用區域故障情況下,Amazon ElastiCache 將自動偵測主要節點的故障、選擇一個僅供讀取複本並將其提升為新的主要節點。

適用於 Redis 的 ElastiCache 叢集為 Redis 3.x 環境提供增強功能和管理。執行未受管的 Redis 環境時,在主要節點故障的情況下,叢集倚賴多數主節點來判斷和執行容錯移轉。如果沒有這類多數主節點存在,叢集將會進入故障狀態,並拒絕任何進一步的讀取和寫入。這可能會對應用程式的可用性帶來重大的影響,且需要人為介入以手動的方式搶救叢集。建置適用於 Redis 的 ElastiCache 異地同步備份功能是為了以穩健且有效率的方式處理任何 Redis 叢集容錯移轉案例。

問:適用於 Redis 的 ElastiCache 叢集中的異地同步備份與適用於 Redis 的 ElastiCache 版本 2.8.x 中的異地同步備份有何不同?

Redis 3.x 與智慧型用戶端搭配運作,可存放節點對應和所有叢集節點的端點。容錯移轉期間,用戶端會使用新主要節點的 IP 端點更新節點對應。這比適用於 Redis 的 ElastiCache 2.8.x 的容錯移轉速度快了高達 4 倍。

問:Redis 叢集的異地同步備份如何運作?

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

問:什麼是適用於 Redis 的 ElastiCache 叢集備份?

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

問:適用於 Redis 的 ElastiCache 叢集備份與適用於 Redis 的 ElastiCache 快照有何不同?

由於非叢集化適用於 Redis 的 ElastiCache 環境只有一個主要節點,因此備份就是包含 Redis 資料副本的單一檔案。適用於 Redis 的 ElastiCache 叢集可以有一或多個碎片,所以備份可能包含多個檔案。

問:如何指定要在每個碎片中備份哪些適用於 Redis 的 ElastiCache 節點?

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

問:適用於 Redis 的 ElastiCache 叢集備份與恢復如何運作?

啟動備份時,ElastiCache 會建立指定叢集的備份;該備份之後可用於恢復或存檔。備份包含每個叢集碎片的副本,因此完整的備份會包含一系列檔案。您隨時可以選擇啟動備份,也可以設定一個保留期長達 35 天每天重複進行的備份。

當您選擇備份進行恢復時,將會建立一個全新適用於 Redis 的 ElastiCache 叢集,並填入備份的資料。您還可以使用這個功能建立連到 ElastiCache 受管 Redis 叢集體驗的簡易遷移路徑。如果您在 EC2 執行自我管理的 Redis,可以將拍攝的 RDB 快照或現有工作負載 (Redis 叢集和單一碎片 Redis) 存放到 S3。然後,只要在 ElastiCache 建立碎片 Redis 叢集時以輸入的形式提供它們,並提供所需的碎片數即可。ElastiCache 將會完成剩餘的工作。

目前,ElastiCache 使用 Redis 的原生機制為每個碎片建立 RDB 檔案並將其存放為備份。

問:適用於 Redis 的 ElastiCache 叢集備份是否是時間點快照?

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

問:如何指定何時備份?

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

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

問:是否可使用自己存放在 S3 中的 RDB 快照,預先植入適用於 Redis 的 ElastiCache 叢集擴展環境?

是。在叢集建立期間,您可以透過主控台的 Create Cluster 精靈或 CreateReplicationGroup API 指定 RDB 檔案在 S3 中的位置。ElastiCache 會自動剖析 RDB 快照的 Redis 鍵值空間,並在新叢集的碎片間轉散佈。


問:適用於 Redis 的 ElastiCache 內的引擎與開放原始碼 Redis 有何不同?

適用於 Redis 的 ElastiCache 內的引擎與開放原始碼 Redis 完全相容,但隨附可提升穩健性和穩定性的增強功能。這些增強功能包含:

  • 更多可用記憶體:您現在可以放心為應用程式分配更多記憶體,無須擔心同步和快照期間會增加交換使用量。
  • 改善同步功能:針對高負載及從網路中斷恢復時,提供更穩固的同步功能。此外,由於主要節點和複本在此操作中不再需要使用磁碟,因此同步的速度更快。
  • 更順暢的容錯移轉:在容錯移轉的情況下,由於複本不再需要排清資料,就能與主要節點進行完整的重新同步,因此現在可以更快恢復碎片。

問:如何使用增強型引擎?

要從 Amazon ElastiCache 管理主控台使用增強型引擎,只要在建立叢集時,選取與 Redis 引擎版本 2.8.22 或更新版本相容的引擎。選取之後,您使用的就是增強型引擎。您也可以在執行 CreateCacheCluster API 時指定引擎版本,以透過 ElastiCache API 或 AWS CLI 使用增強型引擎。

問:是否要變更應用程式的程式碼,才能使用 ElastiCache 上的增強型引擎?

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

問:使用增強型引擎的費用為何?

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



問:什麼是線上叢集大小調整?

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

問:使用線上叢集大小調整有哪些好處?

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

問:如何使用線上叢集大小調整?

線上叢集大小調整適用於 Redis 引擎版本 3.2.10。若要重新碎片叢集,請選取叢集,然後指定要新增或移除碎片。重新調整叢集大小以進行擴展時,ElastiCache 會新增碎片,然後依計數將槽平均分發到各個碎片,以此方式將槽從現有的碎片遷移到新的碎片。同樣地,重新調整叢集大小以進行縮減時,ElastiCache 會將槽遷移到剩餘的碎片以平均分發槽,然後刪除指定的碎片。

問:執行線上叢集大小調整需花費多久時間?

調整叢集大小所需的時間取決於多個因素,像是叢集需要遷移到各個碎片的槽數量、資料大小和傳入的請求率。不過,工作流程已經過優化可平行處理槽遷移,因此可減少新增更多碎片以擴展叢集所花費的時間。

問:調整叢集大小期間是否可使用叢集?

是,重新碎片進行期間,叢集會持續保持線上狀態並服務傳入請求。但是,不支援在重新碎片期間拍攝叢集快照,以避免增加叢集的負載。

問:這項操作對叢集的效能是否會有影響?

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

問:如何追蹤線上重新碎片操作的進度?

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

問:什麼是適用於 Redis 的 ElastiCache 叢集重新平衡操作?

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

問:標記在叢集擴展時如何運作?

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

問:使用線上叢集大小調整是否需要變更用戶端或應用程式?

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

問:使用增強型 Redis 引擎的費用為何?

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


問:適用於 Redis 的 ElastiCache 動態加密提供哪些功能?

動態加密功能可讓您加密用戶端和 Redis 伺服器間、以及 Redis 伺服器之間 (主要和僅供讀取複本節點) 的所有通訊。

問:適用於 Redis 的 ElastiCache 靜態加密提供哪些功能?

靜態加密可加密備份和恢復期間的資料 – 在磁碟上和透過 Amazon S3 備份和恢復的資料都會加密。

問:如何使用動態加密、靜態加密和 Redis AUTH?

動態加密、靜態加密和 Redis AUTH 都是選用功能。透過主控台或命令列界面建立 Redis 叢集時,您可以指定是否要啟用加密和 Redis AUTH,並繼續為與 Redis 叢集的通訊提供身份驗證字符。叢集設定為啟用加密之後,ElastiCache 就可以順暢地管理憑證過期和更新,應用程式無須執行任何其他動作。此外,Redis 用戶端必須支援 TLS,才能利用加密的動態流量。

問:使用動態加密或靜態加密時,是否有必須使用的適用於 Redis 的 Amazon ElastiCache 用戶端?

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

問:是否可在現有適用於 Redis 的 ElastiCache 叢集上啟用動態加密和靜態加密?

否。動態加密和靜態加密只能在新叢集上使用,現有適用於 Redis 的 ElastiCache 叢集不支援此功能。適用於 Redis 的 ElastiCache 版本 3.2.6 是支援這些功能的最初版本。

問:更新憑證是否需要執行任何動作?

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

問:是否可將我的憑證用於加密?

否。ElastiCache 目前並未提供您使用憑證的能力。ElastiCache 會以透明的方式為您管理憑證。

問:動態加密和靜態加密支援哪些執行個體類型?

動態加密和靜態加密可支援所有最新一代執行個體。

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

使用加密無須額外付費。


問:適用於 Redis 的 Amazon ElastiCache 是否為 HIPAA 合格服務?

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

問:要使用 HIPAA 合格服務適用於 Redis 的 ElastiCache,該怎麼做?

如果您擁有與 AWS 共同履行的商業夥伴協議 (BAA),現在可以使用適用於 Redis 的 ElastiCache 建立 HIPAA 合規應用程式。如果沒有 BAA 或對在 HIPAA 合規應用程式使用 AWS 有任何問題,請聯絡我們以取得詳細資訊。有關如何設定 Amazon HIPAA 合格服務以存放、處理和傳輸 PHI 的詳細資訊,請參閱 Architecting for HIPAA Security and Compliance on Amazon Web Services

問:適用於 Redis 的 ElastiCache 支援哪些合規計劃?

適用於 Redis 的 ElastiCache 支援 SOC 1、SOC 2、SOC 3、ISO、MTCS、C5 和 HIPAA 等合規計劃。請參閱合規計劃的 AWS 服務範圍以取得支援的合規計劃最新清單。

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

否,使用合規功能不需額外付費。