

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

# 什麼是 MemoryDB
<a name="what-is-memorydb"></a>

Amazon MemoryDB 是一種耐用的記憶體內資料庫服務，可提供超快速的效能。它專為具有微服務架構的現代應用程式而打造。

Amazon MemoryDB 與熱門的開放原始碼資料存放區 Valkey 和 Redis OSS 相容，可讓您使用他們已使用的相同彈性且易記的資料結構、APIs 和命令，快速建置應用程式。使用 MemoryDB，所有資料都會儲存在記憶體中，這可讓您達到微秒讀取和單一位數毫秒寫入延遲，以及高輸送量。MemoryDB 也會使用多可用區域交易日誌，在多個可用區域 (AZs) 之間長期存放資料，以啟用快速容錯移轉、資料庫復原和節點重新啟動。

 MemoryDB 同時提供記憶體內效能和多可用區域耐久性，可用作微型服務應用程式的高效能主要資料庫，無需單獨管理快取和耐用資料庫。

**Topics**
+ [MemoryDB 的功能](servicename-feature-overview.md)
+ [MemoryDB 核心元件](components.md)
+ [相關服務](related-services-choose-between-memorydb-and-redis.md)
+ [選擇區域與可用區域](regionsandazs.md)
+ [存取 MemoryDB](nodes-connecting.md)
+ [MemoryDB 安全性](memorydb-security.md)

# MemoryDB 的功能
<a name="servicename-feature-overview"></a>

Amazon MemoryDB 是一種耐用的記憶體內資料庫服務，可提供超快速的效能。MemoryDB 的功能包括：
+ 主要節點的強式一致性和複本節點的保證最終一致性。如需詳細資訊，請參閱[一致性](consistency.md)。
+ 微秒讀取和單一位數毫秒寫入延遲，每個叢集最多可達 1.6 億 TPS。
+ 靈活且友善的 Valkey 和 Redis OSS 資料結構和 APIs。輕鬆建立新應用程式，或遷移現有的 Valkey 型和 Redis OSS 型應用程式，幾乎無需修改。
+ 使用多可用區域交易日誌的資料耐久性，可提供快速的資料庫復原和重新啟動。
+ 具有自動容錯移轉的異地同步備份可用性，以及節點故障的偵測和復原。
+ 透過新增和移除節點來輕鬆水平擴展，或移動到較大或較小的節點類型來垂直擴展。您可以新增碎片來擴展寫入輸送量，並透過新增複本來擴展讀取輸送量。
+ 主要節點的Read-after-write一致性和複本節點的保證最終一致性。
+ MemoryDB 支援傳輸中加密、靜態加密，以及透過 對使用者進行身分驗證[使用存取控制清單 (ACLs) 驗證使用者](clusters.acls.md)。
+ Amazon S3 中的自動快照，保留長達 35 天。
+ 支援每個叢集最多 500 個節點和超過 100 TB 的儲存空間 （每個碎片有 1 個複本）。
+ 使用 TLS 加密傳輸中，並使用 AWS KMS 金鑰加密靜態。
+ 使用 Valkey 和 Redis OSS 進行使用者身分驗證和授權[使用存取控制清單 (ACLs) 驗證使用者](clusters.acls.md)。
+ 支援 for AWS Graviton2 執行個體類型。
+ 與其他 AWS 服務整合，例如 CloudWatch、Amazon VPC、CloudTrail 和 Amazon SNS，用於監控、安全和通知。
+ 完全受管的軟體修補和升級。
+ AWS 管理 APIs 的 Identity and Access Management (IAM) 整合和標籤型存取控制。

# MemoryDB 核心元件
<a name="components"></a>

您可以在下面找到 MemoryDB 部署主要元件的概觀。

**Topics**
+ [叢集](#whatis.clusters)
+ [節點](#whatis.components.nodes)
+ [碎片](#whatis.components.Shards)
+ [參數群組](#whatis.components.parametergroups)
+ [子網路群組](#whatis.components.subnetgroups)
+ [存取控制清單](#whatis.components.acls)
+ [使用者](#whatis.components.user)

## 叢集
<a name="whatis.clusters"></a>

叢集是提供單一資料集的一或多個節點集合。MemoryDB 資料集會分割成碎片，每個碎片都有主節點和最多 5 個選用複本節點。主要節點提供讀取和寫入請求，而複本僅提供讀取請求。主節點可以容錯移轉到複本節點，將該複本提升到該碎片的新主節點。MemoryDB 會執行 Valkey 或 Redis OSS 做為其資料庫引擎，當您建立叢集時，您可以指定叢集的引擎版本。您可以使用 AWS CLI、MemoryDB API 或 建立和修改叢集 AWS 管理主控台。

每個 MemoryDB 叢集都會執行 Valkey 或 Redis OSS 引擎版本。每個引擎版本都有自己的支援功能。此外，每個引擎版本在參數群組中都有一組參數，可控制其管理之叢集的行為。

叢集的運算和記憶體容量取決於其節點類型。您可以選擇最符合您需求的節點類型。若您的需求隨時間而有所改變，可變更節點類型。如需相關資訊，請參閱[支援的節點類型](nodes.supportedtypes.md)。

**注意**  
如需 MemoryDB 節點類型的定價資訊，請參閱 [MemoryDB 定價](https://aws.amazon.com/memorydb/pricing/)。

您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 服務在虛擬私有雲端 (VPC) 上執行叢集。使用 VPC 時，您可以掌控您的虛擬聯網環境。您可以選擇自己的 IP 地址範圍、建立子網路，以及設定路由和存取控制清單。MemoryDB 管理快照、軟體修補、自動故障偵測和復原。在 VPC 中執行叢集無需額外成本。如需搭配 MemoryDB 使用 Amazon VPC 的詳細資訊，請參閱 [MemoryDB 和 Amazon VPC](vpcs.md)。

許多 MemoryDB 操作以叢集為目標：
+ 建立叢集
+ 修改叢集
+ 拍攝叢集的快照
+ 刪除叢集
+ 在叢集中檢視元素
+ 從叢集中新增或移除成本配置標籤

如需詳細資訊，請參閱下列相關主題：
+ [管理叢集](clusters.md) 和 [管理節點](nodes.md)

  叢集、節點和相關操作的詳細資訊。
+ [MemoryDB 中的彈性](disaster-recovery-resiliency.md)

  提升叢集容錯能力的相關資訊。

## 節點
<a name="whatis.components.nodes"></a>

*節點*是 MemoryDB 部署的最小建置區塊，並使用 Amazon EC2 執行個體執行。每個節點都會執行您建立叢集時所選擇的引擎版本。節點屬於屬於叢集的碎片。

每個節點都會以您建立叢集時所選擇的版本執行引擎執行個體。如有必要，您可以將叢集中的節點向上或向下擴展到不同的類型。如需詳細資訊，請參閱[擴展](scaling.md)。

叢集中的每個節點都是相同的節點類型。支援多種類型的節點，每個節點的記憶體量各不相同。如需支援的節點類型清單，請參閱「[支援的節點類型](nodes.supportedtypes.md)」。

如需節點的詳細資訊，請參閱[管理節點](nodes.md)。

## 碎片
<a name="whatis.components.Shards"></a>

碎片是 1 到 6 個節點的群組，其中一個做為主要寫入節點，另一個則做為僅供讀取複本。MemoryDB 叢集一律至少有一個碎片。

MemoryDB 叢集最多可有 500 個碎片，您的資料會分割到各個碎片。例如，您可以選擇設定具有 500 個節點的叢集，並容許碎片在 83 個（每個碎片一個主要版本和 5 個複本）到 500 個（單一主要版本並且沒有複本）之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小，或是子網路被共用並被其他叢集大量使用。

*多個節點碎片*實作複寫的方式，是使用一個讀/寫主節點及 1 至 5 個複本節點。如需詳細資訊，請參閱[了解 MemoryDB 複寫](replication.md)。

如需碎片的詳細資訊，請參閱[使用碎片](shards.md)。

## 參數群組
<a name="whatis.components.parametergroups"></a>

參數群組是管理叢集上引擎執行時間設定的簡單方法。參數用於控制記憶體用量、項目大小等。MemoryDB 參數群組是引擎特定參數的命名集合，您可以套用至叢集，而該叢集中的所有節點設定方式完全相同。

如需 MemoryDB 參數群組的詳細資訊，請參閱 [使用參數群組設定引擎參數](parametergroups.md)。

## 子網路群組
<a name="whatis.components.subnetgroups"></a>

*子網路群組*是子網路的集合 (一般是私有)，您可以為在 Amazon Virtual Private Cloud (VPC) 環境中執行的叢集指定這些子網路。

在 Amazon VPC 中建立叢集時，您可以指定子網路群組或使用提供的預設子網路群組。MemoryDB 使用該子網路群組來選擇該子網路內的子網路和 IP 地址，以與您的節點建立關聯。

如需 MemoryDB 子網路群組的詳細資訊，請參閱 [子網路和子網路群組](subnetgroups.md)。

## 存取控制清單
<a name="whatis.components.acls"></a>

存取控制清單是一或多個使用者的集合。存取字串遵循 [ACL 規則](https://valkey.io/topics/acl)來授權使用者存取 Valkey 或 Redis OSS 命令和資料。

如需 MemoryDB 存取控制清單的詳細資訊，請參閱 [使用存取控制清單 (ACLs) 驗證使用者](clusters.acls.md)。

## 使用者
<a name="whatis.components.user"></a>

使用者具有使用者名稱和密碼，並用於存取 MemoryDB 叢集上的資料和發出命令。使用者是存取控制清單 (ACL) 的成員，可用來判斷 MemoryDB 叢集上該使用者的許可。如需詳細資訊，請參閱[使用存取控制清單 (ACLs) 驗證使用者](clusters.acls.md)

# 相關服務
<a name="related-services-choose-between-memorydb-and-redis"></a>

[ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/whatis.html) 

決定是否使用 MemoryDB 或 ElastiCache 時，請考慮下列比較：
+ MemoryDB 是耐用的記憶體內資料庫，適用於需要超快速主要資料庫的工作負載。若您的工作負載需要可提供超快效能 (微秒讀取和 1 毫秒寫入延遲) 的耐用資料庫，您應該考慮使用 MemoryDB。如果您想要使用 Valkey 或 Redis OSS 資料結構和具有主要、耐用資料庫APIs 建置應用程式，MemoryDB 可能也非常適合您的使用案例。最後，您應考慮使用 MemoryDB 來簡化您的應用程式架構，並以快取取代使用資料庫，以提高耐久性和效能，進而降低成本。
+ ElastiCache 是一種服務，通常用於使用 Valkey 和 Redis OSS 從其他資料庫和資料存放區快取資料。您應該考慮將 ElastiCache 用於快取要透過現有主要資料庫或資料存放區加速資料存取的工作負載 （微秒讀取和寫入效能）。當您想要使用 Valkey 或 Redis OSS 資料結構和 APIs 存取存放在主要資料庫或資料存放區中的資料時，您也應考慮 ElastiCache 的使用案例。

# 選擇區域與可用區域
<a name="regionsandazs"></a>

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

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

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

若要在特定區域中建立或使用叢集，請使用對應的區域服務端點。如需了解服務端點，請參閱[MemoryDB 多區域](multi-region.md)。

透過 MemoryDB 多區域，您可以改善可用性和彈性，同時受益於多區域應用程式的低延遲本機讀取和寫入。如需使用 MemoryDB 多區域的詳細資訊，請參閱 [支援的區域和端點](#supportedregions)。

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

任何具有至少一個複本的叢集都必須分散在 AZs 中。在單一可用區中尋找所有項目的唯一方法是使用由單一節點碎片組成的叢集。

透過將節點放置在不同的可用AZs，MemoryDB 可避免在一個可用區域中發生故障的可能性，例如停電。
+ [建立 MemoryDB 叢集](getting-started.md#clusters.create)
+ [修改 MemoryDB 叢集](clusters.modify.md)

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

MemoryDB 可在多個 AWS 區域中使用。這表示您可以在符合您需求的位置啟動 MemoryDB 叢集。例如，您可以在最接近客戶的 AWS 區域中啟動 ，或在特定區域中啟動 AWS ，以符合特定法律要求。此外，隨著 MemoryDB 將可用性擴展到新 AWS 區域，MemoryDB `MAJOR.MINOR` 支援新區域的兩個最新版本。如需 MemoryDB 版本的詳細資訊，請參閱 [引擎版本](engine-versions.md)。

根據預設， AWS SDKs、 AWS CLI MemoryDB API 和 MemoryDB 主控台會參考美國東部 （維吉尼亞北部） 區域。隨著 MemoryDB 將可用性擴展到新區域，這些區域的新端點也可用於 HTTP 請求、 AWS SDKs和 主控台。 AWS CLI

每個 區域皆設計為與其他 區域完全隔離。各個區域包含多個可用區域 (AZ)。透過在不同AZs啟動節點，您可以實現最大的容錯能力。如需區域和可用區域的詳細資訊，請參閱本主題[選擇區域與可用區域](#regionsandazs)開頭的 。


**支援 MemoryDB 的區域**  

| 區域名稱/區域 | 端點 | 通訊協定 | 
| --- | --- | --- | 
| 美國東部 (俄亥俄) 區域 `us-east-2` | `memory-db.us-east-2.amazonaws.com` | HTTPS | 
| 美國東部 (維吉尼亞北部) 區域 `us-east-1` | `memory-db.us-east-1.amazonaws.com` | HTTPS | 
| 美國西部 (加利佛尼亞北部) 區域 `us-west-1` | `memory-db.us-west-1.amazonaws.com` | HTTPS | 
| 美國西部 (奧勒岡) 區域 `us-west-2` | `memory-db.us-west-2.amazonaws.com` | HTTPS | 
| 加拿大 (中部) 區域 `ca-central-1` | `memory-db.ca-central-1.amazonaws.com` | HTTPS | 
| 亞太區域 (香港) 區域 `ap-east-1` | `memory-db.ap-eastl-1.amazonaws.com` | HTTPS | 
| 亞太 (孟買) 區域 `ap-south-1` | `memory-db.ap-south-1.amazonaws.com` | HTTPS | 
| 亞太 (東京) 區域 `ap-northeast-1` | `memory-db.ap-northeast-1.amazonaws.com` | HTTPS | 
| 亞太 (首爾) 區域 `ap-northeast-2` | `memory-db.ap-northeast-2.amazonaws.com` | HTTPS | 
| 亞太 (新加坡) 區域 `ap-southeast-1` | `memory-db.ap-southeast-1.amazonaws.com` | HTTPS | 
| 亞太 (雪梨) 區域 `ap-southeast-2` | `memory-db.ap-southeast-2.amazonaws.com` | HTTPS | 
| 歐洲 (法蘭克福) 區域 `eu-central-1` | `memory-db.eu-central-1.amazonaws.com` | HTTPS | 
| 歐洲 (愛爾蘭) 區域 `eu-west-1` | `memory-db.eu-west-1.amazonaws.com` | HTTPS | 
| 歐洲 (倫敦) 區域 `eu-west-2` | `memory-db.eu-west-2.amazonaws.com` | HTTPS | 
| 歐洲 (巴黎) 區域 `eu-west-3` | `memory-db.eu-west-3.amazonaws.com` | HTTPS | 
| 歐洲 (斯德哥爾摩) 區域 `eu-north-1` | `memory-db.eu-north-1.amazonaws.com` | HTTPS | 
| Europe (Milan) Region `eu-south-1` | `memory-db.eu-south-1.amazonaws.com` | HTTPS | 
| 歐洲 (西班牙) 區域 `eu-south-2` | `memory-db.eu-south-2.amazonaws.com` | HTTPS | 
| 南美洲 (聖保羅) 區域 `sa-east-1` | `memory-db.sa-east-1.amazonaws.com` | HTTPS | 
| 中國 (北京) 區域 `cn-north-1` | `memory-db---cn-north-1.amazonaws.com.rproxy.goskope.com.cn` | HTTPS | 
| 中國 (寧夏) 區域 `cn-northwest-1` | `memory-db---cn-northwest-1.amazonaws.com.rproxy.goskope.com.cn` | HTTPS | 

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

如需 區域中支援的可用區域的資料表，請參閱 [子網路和子網路群組](subnetgroups.md)。

# 存取 MemoryDB
<a name="nodes-connecting"></a>

 每個 MemoryDB 叢集端點都包含一個地址和一個連接埠。此叢集端點支援 Valkey 和 Redis OSS 叢集通訊協定，可讓用戶端探索叢集中每個節點的特定角色、IP 地址和插槽。當主節點失敗且複本提升到其位置時，您可以使用 Valkey 或 Redis OSS 叢集通訊協定連線到叢集端點，以探索新的主節點。

 您需要連線至叢集端點，才能使用 **cluster nodes**或 **cluster slots**命令來探索節點端點。探索金鑰的正確節點後，您可以直接連線至節點以進行讀取/寫入請求。Valkey 或 Redis OSS 用戶端可以使用叢集端點自動連線至正確的節點。

若要對叢集中的特定節點進行故障診斷，您也可以使用節點特定的端點，但這些並非正常使用的必要項目。

 若要尋找叢集的端點，請參閱下列內容：
+ [尋找 MemoryDB 叢集的端點 (AWS CLI)](endpoints.md#endpoints.find.cli)
+ [尋找 MemoryDB 叢集的端點 (MemoryDB API)](endpoints.md#endpoints.find.api)

如需連線至節點或叢集的詳細資訊，請參閱 [使用 redis-cli 連線至 MemoryDB 節點](getting-started.md#connect-tls)。

# MemoryDB 安全性
<a name="memorydb-security"></a>

MemoryDB 的安全管理分為三個層級：
+ 若要控制誰可以在 MemoryDB 叢集和節點上執行管理動作，您可以使用 AWS Identity and Access Management (IAM)。當您 AWS 使用 IAM 登入資料連線至 時， AWS 您的帳戶必須具有授予執行操作所需許可的 IAM 政策。如需詳細資訊，請參閱[MemoryDB 中的身分和存取管理](iam.md)
+ 若要控制叢集的存取層級，您可以建立具有指定許可的使用者，並將其指派給存取控制清單 (ACL)。ACL 接著會與一或多個叢集建立關聯。如需詳細資訊，請參閱[使用存取控制清單 (ACLs) 驗證使用者](clusters.acls.md)。
+ MemoryDB 叢集必須在以 Amazon VPC 服務為基礎的虛擬私有雲端 (VPC) 中建立。若要控制哪些裝置和 Amazon EC2 執行個體可以開啟與 VPC 中 MemoryDB 叢集之節點端點和連接埠的連線，您可以使用 VPC 安全群組。您可以使用 Transport Layer Security (TLS)/Secure Sockets Layer (SSL) 進行這些端點和連接埠連線。此外，您公司的防火牆規則可以控制在您公司執行的裝置是否可以開啟與 MemoryDB 叢集的連線。如需 VPC 的詳細資訊，請參閱[MemoryDB 和 Amazon VPC](vpcs.md)。

如需設定安全性的相關資訊，請參閱[MemoryDB 的安全性](security.md)。