

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 選擇 ElastiCache 的區域和可用區域
<a name="RegionsAndAZs"></a>

您可以使用對應的端點指定區域和可用區域，為您的 ElastiCache 叢集提供額外的可擴展性和可靠性。

AWS 雲端運算資源存放在高可用性的資料中心設施中。為了提供額外的可擴展性和可靠性，這些資料中心設施會位在不同的實體位置。這些地點是依*「區域」*及*「可用區域」*分類。

AWS 區域很大，廣泛分散到不同的地理位置。可用區域是 AWS 區域內的不同位置，旨在與其他可用區域中的故障隔離。它們提供相同 AWS 區域中其他可用區域的低成本、低延遲網路連線能力。

**重要**  
每個區域都是完全獨立的。您啟動的任何 ElastiCache 活動 (例如建立叢集) 都只會在您目前的預設區域中執行。

若要在特定區域中建立或使用叢集，請使用對應的區域服務端點。如需了解服務端點，請參閱[支援的區域和端點](#SupportedRegions)。

![\[圖片： 區域和可用區域\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-RegionsAndAZs.png)


*區域與可用區域*

**Topics**
+ [使用 Memcached 的可用區域考量事項](#CacheNode.Memcached.AvailabilityZones)
+ [安置您的節點](#RegionsAndAZs.AZMode)
+ [支援的區域和端點](#SupportedRegions)
+ [搭配 ElastiCache 使用本地區域](Local_zones.md)
+ [搭配 ElastiCache 使用 Outpost](ElastiCache-Outposts.md)

## 使用 Memcached 的可用區域考量事項
<a name="CacheNode.Memcached.AvailabilityZones"></a>

將 Memcached 節點散佈在一個區域內的多個可用區域，有助於保護您免受災難性故障的影響，例如可用區域內停電。

**無伺服器快取**

ElastiCache 無伺服器快取會建立跨多個可用區域的高度可用快取。您可以在建立無伺服器叢集時指定來自不同可用區域和相同 VPC 的子網路，否則 ElastiCache 會自動從預設 VPC 中選擇子網路。

**自行設計 ElastiCache for Memcached 叢集**

Memcached 叢集最多可以有 300 個節點。建立節點或將節點新增至 Memcached 叢集時，您可以為所有節點指定單一可用區域、允許 ElastiCache 為所有節點選擇單一可用區域、為每個節點指定可用區域，或允許 ElastiCache 為每個節點選擇可用區域。將新節點新增至現有的 Memcached 叢集時，您可以在不同的可用區域中建立新節點。快取節點一旦建立，就無法修改其可用區域。

如果您希望單一可用區域叢集中的叢集將其節點分佈於多個可用區域，ElastiCache 可以在不同可用區域中建立新節點。接著您可以刪除部分或所有原始快取節點。建議您使用此方法。

**將 Memcached 節點從單一可用區域遷移至多個可用區域**

1. 在需要的可用區域中建立新的快取節點，藉此修改叢集。在請求中執行下列操作：
   + 將 `AZMode` (CLI：`- -az-mode`) 設定為 `cross-az`。
   + 將 `NumCacheNodes` (CLI：`- -num-cache-nodes`) 設定為目前作用中快取節點的數目，以及您要建立的新快取節點數目。
   + 將 `NewAvailabilityZones` (CLI：`- -new-availability-zones`) 設定為您要在其中建立新快取節點的區域清單。若要讓 ElastiCache 決定每個新節點的可用區域，請勿指定清單。
   +  將 `ApplyImmediately` (CLI：`- -apply-immediately`) 設定為 true。
**注意**  
如果您沒有使用自動探索功能，請務必使用新的快取節點端點來更新用戶端應用程式。

   繼續進行下一個步驟之前，請確定 Memcached 節點已完全建立且可用。

1. 移除原始可用區域中不再需要的節點，藉此修改叢集。在請求中執行下列操作：
   + 將 `NumCacheNodes` (CLI：`- -num-cache-nodes`) 設定為套用此修改之後您想要的作用中快取節點數目。
   + 將 `CacheNodeIdsToRemove` (CLI：`- -nodes-to-remove`) 設定為您要從叢集中移除的快取節點清單。

     列出的快取節點 ID 數量必須等於目前作用中的節點數減去 `NumCacheNodes` 中的值。
   + (選用) 將 `ApplyImmediately` (CLI：`- -apply-immediately`) 設定為 true。

     如果您沒有將 `ApplyImmediately` (CLI：`- -apply-immediately`) 設定為 true，節點刪除作業將在下一個維護時段進行。

## 安置您的節點
<a name="RegionsAndAZs.AZMode"></a>

Amazon ElastiCache 支援將所有的叢集節點安置在單一或多個可用區域 (AZ) 中。如果您進一步選擇將節點安置在多個 AZ (建議做法)，ElastiCache 可讓您選擇每個節點的 AZ，或允許 ElastiCache 為您選擇。

將節點安置在不同 AZ 時，您可以避免某個 AZ 的故障 (例如停電) 就造成整個系統故障。測試已證實將所有節點安置在一個 AZ 或分散在多個 AZ 之間並不會有顯著的延遲差異。

您可以在建立叢集時指定每個節點的 AZ，或在修改現有叢集時新增節點。建立叢集時為每個節點指定 AZ 時，該子網路群組中必須有可用 AZ。如需詳細資訊，請參閱下列內容：
+ [為 Memcached 建立叢集](Clusters.Create-mc.md)
+ [為 Valkey 或 Redis OSS 建立叢集](Clusters.Create.md)
+ [修改 ElastiCache 叢集](Clusters.Modify.md)
+ [將節點新增至 ElastiCache 叢集](Clusters.AddNode.md)

## 支援的區域和端點
<a name="SupportedRegions"></a>

Amazon ElastiCache 可在多個 AWS 區域中使用。這表示您可以在符合您需求的位置啟動 ElastiCache 叢集。例如，您可以在最接近客戶的 AWS 區域中啟動 ，或在特定區域中啟動 AWS ，以符合特定法律要求。

每個 區域皆設計為與其他 區域完全隔離。各個區域包含多個可用區域 (AZ)。ElastiCache Serverless 快取會自動跨多個可用區域複寫資料 （除了 `us-west-1`，其中資料會在兩個可用區域中複寫），以獲得高可用性。自行設計 ElastiCache 叢集時，您可以選擇在不同的 AZ 中啟動節點，以實現容錯能力。如需區域和可用區域的詳細資訊，請參閱本主題最上方的 [選擇 ElastiCache 的區域和可用區域](#RegionsAndAZs)。


**支援 ElastiCache 的區域**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/RegionsAndAZs.html)

有些區域支援節點類型的子集。如需各 AWS 區域支援的節點類型資料表，請參閱 [支援的節點類型 (依AWS區域)](CacheNodes.SupportedTypes.md#CacheNodes.SupportedTypesByRegion)。

大多數區域支援透過建立介面 VPC 端點，在 VPC 和 ElastiCache API 端點之間建立私有連線 AWS PrivateLink。如需詳細資訊，請參閱[ElastiCache API 和界面 VPC 端點 (AWS PrivateLink)](elasticache-privatelink.md)。

如需依區域列出的 AWS 產品和服務資料表，請參閱[依區域列出的產品和服務](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。

# 搭配 ElastiCache 使用本地區域
<a name="Local_zones"></a>

*Local Zone* 是地理位置接近您使用者的 AWS 區域延伸。您可以透過建立新的子網路並將其指派給 Local Zone，將父 AWS 區域的任何虛擬私有雲端 (VPC) 延伸到 Local Zones。當您在本機區域中建立子網路時，VPC 也會擴展到該本機區域。本機區域中的子網路與 VPC 中的其他子網路的運作方式相同。

使用本地區域，您可將資源 (例如 ElastiCache 叢集) 放置在靠近使用者的多個位置。

建立 ElastiCache 叢集時，您可以選擇本地區域的子網路。Local Zones 有自己的網際網路連線，並支援 Direct Connect。因此，在本機區域中建立的資源可以為本機使用者提供非常低延遲的通訊服務。如需詳細資訊，請參閱 [AWS Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/localzones/)。

Local Zone 是以 AWS 區域代碼表示，後面接著表示位置的識別符，例如 `us-west-2-lax-1a`。

目前可用的本地區域有 `us-west-2-lax-1a` 和 `us-west-2-lax-1b`。

ElastiCache 適用下列本地區域限制：
+ 不支援全域資料存放區。
+ 不支援線上遷移。
+ 本地區域目前支援以下節點類型：
  + 最新一代：

    **M5 節點類型：**`cache.m5.large`、`cache.m5.xlarge`、`cache.m5.2xlarge`、`cache.m5.4xlarge`、`cache.m5.12xlarge`、`cache.m5.24xlarge`

    **R5 節點類型：**`cache.r5.large`、`cache.r5.xlarge`、`cache.r5.2xlarge`、`cache.r5.4xlarge`、`cache.r5.12xlarge`、`cache.r5.24xlarge`

    **T3 節點類型：**`cache.t3.micro`、`cache.t3.small`、`cache.t3.medium`

## 啟用本地區域
<a name="Local_zones-using"></a>

1. 在 Amazon EC2 主控台中啟用本機區域。

   如需詳細資訊，請參閱 *Amazon EC2 使用者指南*中的[啟用本地區域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#enable-zone-group)。

1. 在本機區域中建立子網路。

   如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[在您的 VPC 中建立子網路](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

1. 在本地區域中建立 ElastiCache 子網路群組。

   建立 ElastiCache 子網路群組時，請選擇本地區域的可用區域群組。

   如需詳細資訊，請參閱[建立子網路群組](SubnetGroups.Creating.md)。

1. 在本地區域中建立使用 ElastiCache 子網路的 ElastiCache for Memcached 叢集。

    如需詳細資訊，請參閱[建立 Memcached 叢集 (主控台)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached)。

1. 在本機區域中建立使用 ElastiCache 子網路的 ElastiCache for Redis OSS 叢集。如需詳細資訊，請參閱下列其中一個主題：
   +  [建立 Valkey （停用叢集模式） 叢集 （主控台）](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)
   +  [建立 Valkey 或 Redis OSS （啟用叢集模式） 叢集 （主控台）](Clusters.Create.md#Clusters.Create.CON.RedisCluster)

# 搭配 ElastiCache 使用 Outpost
<a name="ElastiCache-Outposts"></a>

您可以搭配 ElastiCache 使用AWS Outposts。Outposts 是一項全受管服務，可將AWS基礎設施、服務、APIs 和工具延伸到客戶內部部署。透過提供AWS受管基礎設施的本機存取權，AWS Outposts 可讓客戶使用與AWS區域相同的程式設計界面在內部部署中建置和執行應用程式，同時使用本機運算和儲存資源來降低延遲和本機資料處理需求。Outpost 是在客戶網站部署的AWS運算和儲存容量集區。 會AWS操作、監控和管理此容量，做為AWS區域的一部分。您可以在 Outpost 上建立子網路，並在建立 ElastiCache 叢集等AWS資源時指定子網路。

**注意**  
此版本具有下列限制：  
ElastiCache for Outposts 僅支援 M5 和 R5 節點系列。
多可用區域 (不支援跨 Outpost 複寫)。
不支援即時遷移。
不支援本機快照。
無法啟用引擎日誌和慢速日誌。
ElastiCache on Outposts 不支援 CoIP。
下列區域不支援 ElastiCache for Outposts：cn-north-1、cn-northwest-1 和 ap-northeast-3。

## 搭配 ElastiCache 主控台使用 Outpost
<a name="Outposts.Details"></a>

1. 登入AWS 管理主控台並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 在導覽窗格中，選擇 **Valkey 快取**、**Redis OSS 快取**或 **Memcached 快取**。

1.  如果您選擇 **Valkey 快取**，請選取**建立 Valkey 快取**。如果您選擇 **Redis OSS 快取**，請選取**建立 Redis OSS 快取**。如果您選擇 **Memcached 快取**，請選取**建立 Memcached 快取**。

1. 在**叢集設定**下，選取**設計您自己的快取**和**叢集快取**。將**叢集模式**設定為**已停用**。然後建立快取的名稱和選用描述。

1. 針對位置，選擇**內部部署**。

1. 在內部部署區段中，您會看到 **Outpost ID** 欄位。輸入叢集執行位置的 ID。

   **叢集設定下的所有進一步設定**都可以保留為預設值。

1. 在**連線**中，選取**建立新的子網路群組**，然後輸入 **VPC ID**。將其餘部分保留為預設值，然後選取**下一步**。

### 設定內部部署選項
<a name="Outposts.Creating.Console.RedisMultiAZ.Details"></a>

 您可以選取可用的 Outpost 來新增叢集，或者，如果沒有可用的 Outpost，請使用下列步驟建立新的 Outpost：

**在 **On-Premises options (內部部署選項)** 底下：**

1. 在 **Valkey 設定**、**Redis OSS 設定**或 **Memcached 設定**下，視您偏好的引擎而定：

   1. **名稱**：輸入叢集的名稱

   1. **描述**：輸入叢集的描述。

   1. **引擎版本相容性**：引擎版本以AWS Outpost 區域為基礎 

   1. **連接埠**：對於 Valkey 或 Redis OSS，接受預設連接埠 6379。對於 Memcached，接受預設連接埠 11211。如果您偏好使用不同的連接埠，請輸入連接埠號碼。

   1. **Parameter group (參數群組)**：使用下拉式選單選取預設或自訂參數群組。

   1. **Node Type (節點類型)**：可用的執行個體取決於 Outpost 可用性。如果使用 Valkey 或 Redis OSS，.NET for Outposts 的移植助理僅支援 M5 和 R5 節點系列。從下拉式清單中，選取 **Outposts**，然後選取您要用於此叢集的可用節點類型。然後選取 **Save (儲存)**。

   1. **Number of Replicas (複本數量)**：輸入您要讓此複寫群組建立的僅供讀取複本數目。您必須至少有一個僅供讀取複本，且不能超過五個。預設值為 2。

      僅供讀取複本的自動產生名稱會遵循與主叢集名稱相同的模式，結尾會加上破折號和連續的三位數字，開頭為 `-002`。例如，如果您的複寫群組名為 `MyGroup`，那麼次要複本的名稱就會是 `MyGroup-002`、`MyGroup-003`、`MyGroup-004`、`MyGroup-005`、`MyGroup-006`。

1. 在**連線**能力下：

   1. **Subnet Group (子網路群組)**：從清單中選取 **Create new (新建)**。
      + **Name (名稱)**：輸入子網路群組的名稱
      + **Description (描述)**：輸入子網路群組的描述
      + **VPC ID**：VPC ID 應與 Outpost VPC 一致。如果您選取的 VPC 沒有 Outpost 的子網路 ID，則清單會傳回空白。
      + **Availability Zone or Outpost (可用區域或 Outpost)**：選取您正在使用的 Outpost。
      + **Subnet ID (子網路 ID)**：選取可用於 Outpost 的子網路 ID。如果沒有可用的子網路 ID，您需要建立。如需詳細資訊，請參閱「[建立子網路](https://docs.aws.amazon.com/outposts/latest/userguide/launch-instance.html#create-subnet)」。

   1. 選取**建立**。

### 檢視 Outpost 叢集詳細資訊
<a name="Outposts.Creating.Console.Outpost-Details-Redis"></a>

在清單頁面上，選取屬於AWS Outpost 的叢集，並在檢視**叢集詳細資訊**時注意下列事項：
+ **可用區域**：這將使用 ARN (Amazon Resource Name) 和AWS資源編號來代表 Outpost。
+ **Outpost 名稱**：AWS Outpost 的名稱。

## 搭配 CLI AWS使用 Outpost
<a name="Outposts.Using.CLI"></a>

您可以使用AWS Command Line Interface(AWS CLI) 從命令列控制多個AWS服務，並透過指令碼將其自動化。您可以使用AWS CLI 進行臨機操作 （一次性）。

### 下載和設定AWS CLI
<a name="Redis-Global-Clusters-Downloading-CLI"></a>

AWS CLI會在 Windows、macOS 或 Linux 上執行。請使用下列程序來下載並進行設定。

**下載、安裝及設定 CLI**

1. 在[AWS命令列界面](https://aws.amazon.com/cli)網頁上下載AWS CLI。

1. 遵循*AWS Command Line Interface《 使用者指南*》中[安裝AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 和[設定AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 的指示。

### 將AWS CLI 與 Outposts 搭配使用
<a name="Outposts-Using-CLI"></a>

使用下列 CLI 操作來建立使用 Outposts 的叢集：
+  [create-cache-cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/CommandLineReference/CLIReference-cmd-CreateCacheCluster.html) – 使用此操作時， `outpost-mode` 參數會接受指定叢集中節點是在單一 Outpost 中還是跨多個 Outpost 建立的值。
**注意**  
目前只支援 `single-outpost` 模式。

  ```
  aws elasticache create-cache-cluster \
     --cache-cluster-id cluster id \
     --outpost-mode single-outpost \
  ```