

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

# 使用 Amazon DocumentDB 彈性叢集
<a name="docdb-using-elastic-clusters"></a>

Amazon DocumentDB 彈性叢集支援每秒數百萬個讀取/寫入和 PB 儲存容量的工作負載。彈性叢集也透過免除選擇、管理或升級執行個體的需求，簡化開發人員與 Amazon DocumentDB 的互動方式。

**注意**  
彈性叢集使用 MongoDB 5.0 相容線路通訊協定。Amazon DocumentDB 引擎 8.0 版不支援它們，且不適用於中國區域或 AWS GovCloud。

Amazon DocumentDB 彈性叢集的建立目的是：
+ 為尋找資料庫的客戶提供解決方案，該資料庫提供幾乎無限的擴展，具有豐富的查詢功能和 MongoDB API 相容性。
+ 為客戶提供更高的連線限制，並減少修補的停機時間。
+ 繼續投資雲端原生、彈性和類別領導的 JSON 工作負載架構。

 

**Topics**
+ [彈性叢集使用案例](#elastic-use-cases)
+ [彈性叢集的優點](#elastic-advantages)
+ [彈性叢集區域和版本可用性](#elastic-region-version)
+ [限制](#elastic-limitations)
+ [Amazon DocumentDB 彈性叢集：運作方式](elastic-how-it-works.md)
+ [開始使用 Amazon DocumentDB 彈性叢集](elastic-get-started.md)
+ [Amazon DocumentDB 彈性叢集最佳實務](elastic-best-practices.md)
+ [管理 Amazon DocumentDB 彈性叢集](elastic-managing.md)
+ [Amazon DocumentDB 彈性叢集的靜態資料加密](elastic-encryption.md)
+ [彈性叢集中的服務連結角色](elastic-service-linked-roles.md)

## 彈性叢集使用案例
<a name="elastic-use-cases"></a>

文件資料庫對於需要靈活結構描述以便快速進行重複性開發的工作負載來說非常適合。如需 Amazon DocumentDB 使用案例的範例，請參閱 [文件資料庫使用案例](document-database-use-cases.md)。

以下是彈性叢集可提供顯著優勢的一些使用案例範例：

### 使用者設定檔
<a name="elastic-use-case-user-profiles"></a>

由於文件資料庫具有彈性的結構描述，因此可以大規模存放具有不同屬性和資料值的文件。彈性叢集是線上設定檔的實用解決方案，其中不同的使用者提供不同類型的資訊。假設您的應用程式支援數億使用者設定檔。您可以使用彈性叢集來支援此類應用程式，因為它們可以縱向擴展和向外擴展，以支援數百萬筆寫入和讀取這些使用者設定檔。您也可以縮減離峰時數以降低成本。

### 內容管理和歷史記錄
<a name="elastic-use-case-content-mgmt-records"></a>

為了有效管理內容，您必須能夠收集和彙總各種不同來源的內容，然後將內容傳遞給客戶。文件資料庫採用靈活的結構描述，是收集和存放任何類型資料最理想的選擇。您可以使用它們來建立和整合新的內容類型，包括使用者產生的內容，例如影像、評論和影片。隨著時間的推移，您的資料庫可能需要更多儲存空間。透過彈性叢集，您可以將資料分散到更多儲存磁碟區，讓您可以將 PB 的資料存放在單一叢集中。

## 彈性叢集的優點
<a name="elastic-advantages"></a>



### AWS 服務整合
<a name="elastic-service-integration"></a>

Amazon DocumentDB 彈性叢集與其他 AWS 服務整合的方式與 Amazon DocumentDB 相同：
+ **遷移** — 您可以使用 AWS Database Migration Service (DMS) 從 MongoDB 和其他關聯式資料庫遷移至 Amazon DocumentDB 彈性叢集。
+ **監控** — 您可以使用 Amazon CloudWatch 監控彈性叢集的運作狀態和效能。
+ **安全性**：您可以透過 AWS Identity and Access Management (IAM) 設定身分驗證和授權，以管理彈性叢集資源，例如建立和更新彈性叢集，並使用 Amazon VPC 進行僅限 VPC 的安全連線。不支援彈性叢集的 IAM 身分驗證登入。
+ **資料管理** — 您可以使用 從 Amazon S3、Amazon Redshift 和 Amazon OpenSearch Service 等 AWS 其他服務 AWS Glue 匯入和匯出資料。

## 彈性叢集區域和版本可用性
<a name="elastic-region-version"></a>

### 彈性叢集的區域可用性
<a name="elastic-region-availability"></a>

下表顯示 Amazon DocumentDB 彈性叢集目前可用的 AWS 區域，以及每個區域的端點。


| 區域名稱 | 區域 | 可用區域 | 
| --- | --- | --- | 
|  美國東部 (維吉尼亞北部)  |  `us-east-1`  |  5  | 
|  美國東部 (俄亥俄)  |  `us-east-2`  |  3  | 
|  美國西部 (奧勒岡)  |  `us-west-2`  |  3  | 
|  亞太地區 (香港)  |  `ap-east-1`  |  3  | 
|  亞太地區 (孟買)  |  `ap-south-1`  |  3  | 
|  亞太地區 (首爾)  |  `ap-northeast-2`  |  3  | 
|  亞太地區 (新加坡)  |  `ap-southeast-1`  |  3  | 
|  亞太地區 (悉尼)  |  `ap-southeast-2`  |  3  | 
|  亞太地區 (東京)  |  `ap-northeast-1`  |  3  | 
|  加拿大 (中部)  |  `ca-central-1`  |  3  | 
|  南美洲 (聖保羅)  |  `sa-east-1`  |  3  | 
|  歐洲 (法蘭克福)  |  `eu-central-1`  |  3  | 
|  歐洲 (愛爾蘭)  |  `eu-west-1`  |  3  | 
|  歐洲 (倫敦)  |  `eu-west-2`  |  3  | 
|  歐洲 (米蘭)  |  `eu-south-1`  |  3  | 
|  Europe (Paris)  |  `eu-west-3`  |  3  | 

### 版本可用性
<a name="elastic-version-availability"></a>

彈性叢集支援 MongoDB 5.0 相容線路通訊協定。如需 Amazon DocumentDB 4.0 執行個體型叢集和彈性叢集之間的差異，請參閱 [Amazon DocumentDB 4.0 和彈性叢集之間的功能差異](elastic-how-it-works.md#elastic-functional-differences)。注意：Amazon DocumentDB 8.0 不支援彈性叢集 

## 限制
<a name="elastic-limitations"></a>



### 彈性叢集管理
<a name="elastic-management-limitations"></a>

此版本*不支援*下列叢集管理功能：
+ 自訂連接埠 （僅支援 27017)
+ 能夠使用 IAM 使用者和角色對資料庫進行身分驗證
+ 能夠建立全域叢集
+ 現有的 Amazon DocumentDB 事件和訂閱事件
+ 範圍碎片
+ 碎片現有集合
+ 多欄位碎片索引鍵
+ 變更碎片索引鍵
+ Point-in-time還原
+ 複製
+ Performance Insights

**注意**  
如需彈性叢集限制的相關資訊，請參閱 [Amazon DocumentDB 配額和限制](limits.md)。

### 查詢和寫入操作
<a name="elastic-query-limitations"></a>

此版本*不支援*下列查詢和寫入操作命令和功能：
+ 擴展操作期間的 DDL 命令
+ Profiler
+ 參數群組
+ AWS Config
+ AWS Backup

### 集合和索引管理
<a name="elastic-index-limits"></a>

此版本*不支援*下列集合和索引管理功能：
+ 唯一索引
+ 部分索引
+ 文字索引
+ 向量索引
+ 文件壓縮

### 管理和診斷
<a name="elastic-admin-diagnostics-limitations"></a>

此版本*不支援*下列管理和診斷命令和功能：
+ AWS Secrets Manager
+ Role-based-access-control(RBAC) 自訂角色。
+ 連線時，不支援寫入問題 0。
+ 變更屬於目前未指派給現有彈性叢集之 VPC 的子網路。

### 選擇加入功能
<a name="elastic-opt-in-feature-limitations"></a>

此版本*不支援*下列 Amazon DocumentDB 選擇加入功能：
+ ACID 交易
+ DDL/DML 稽核
+ Change streams
+ 工作階段命令

# Amazon DocumentDB 彈性叢集：運作方式
<a name="elastic-how-it-works"></a>

本節中的主題提供有關為 Amazon DocumentDB 彈性叢集提供支援的機制和功能的資訊。

**Topics**
+ [Amazon DocumentDB 彈性叢集碎片](#elastic-how-it-works.sharding)
+ [彈性叢集遷移](#elastic-how-it-works-migration)
+ [彈性叢集擴展](#elastic-how-it-works-scaling)
+ [彈性叢集可靠性](#elastic-reliability)
+ [彈性叢集儲存和可用性](#how-it-works-storage)
+ [Amazon DocumentDB 4.0 和彈性叢集之間的功能差異](#elastic-functional-differences)

## Amazon DocumentDB 彈性叢集碎片
<a name="elastic-how-it-works.sharding"></a>

Amazon DocumentDB 彈性叢集使用雜湊式碎片，跨分散式儲存系統分割資料。碎片也稱為分割，可將大型資料集分割為跨多個節點的小型資料集，讓您將資料庫擴展到超過垂直擴展限制的範圍。彈性叢集使用 Amazon DocumentDB 中運算和儲存的分離或解耦，可讓您獨立擴展。彈性叢集不會透過在運算節點之間移動少量資料來重新分割集合，而是在分散式儲存系統中有效率地複製資料。

![\[Amazon DocumentDB 彈性叢集包含多個碎片，可將大型資料集分割成較小的資料集，進而改善資料庫擴展。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/shard-architecture.png)


### 碎片定義
<a name="w2aac35c23b7b7"></a>

碎片命名法的定義：
+ **碎片** — 碎片提供彈性叢集的運算。它將有一個寫入器執行個體和 0–15 個僅供讀取複本。根據預設，碎片會有兩個執行個體：寫入器和單一僅供讀取複本。您最多可以設定 32 個碎片，每個碎片執行個體最多可以有 64 vCPUs。
+ **碎片索引鍵** — 碎片索引鍵是 JSON 文件中碎片集合中的必要欄位，彈性叢集會用來將讀取和寫入流量分散至相符的碎片。
+ **碎片集合** — 碎片集合是資料分散到資料分割區中彈性叢集的集合。
+ **分割區** — 分割區是碎片資料的邏輯部分。當您建立碎片集合時，資料會根據碎片金鑰自動組織成每個碎片內的分割區。每個碎片都有多個分割區。

### 在設定的碎片之間分配資料
<a name="w2aac35c23b7b9"></a>

建立具有許多唯一值的碎片金鑰。良好的碎片金鑰會將您的資料平均分割到基礎碎片，為您的工作負載提供最佳輸送量和效能。下列範例是使用名為 "user\$1id" 碎片金鑰的員工名稱資料：

![\[來自資料集的資料會平均分散到多個碎片。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/sharding-detail-1.png)


DocumentDB 使用雜湊碎片將資料分割到基礎碎片。插入和分發額外資料的方式相同：

![\[來自新資料集的資料會透過雜湊碎片分散到碎片。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/sharding-detail-2.png)


當您透過新增其他碎片來擴展資料庫時，Amazon DocumentDB 會自動重新分配資料：

![\[將其他碎片新增至資料庫時，會重新分配來自資料集的資料。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/sharding-detail-3.png)


## 彈性叢集遷移
<a name="elastic-how-it-works-migration"></a>

Amazon DocumentDB 支援將 MongoDB 碎片資料遷移至彈性叢集。支援離線、線上和混合遷移方法。如需詳細資訊，請參閱[遷移至 Amazon DocumentDB](docdb-migration.md)。

## 彈性叢集擴展
<a name="elastic-how-it-works-scaling"></a>

Amazon DocumentDB 彈性叢集可讓您增加彈性叢集中的碎片數量 （向外擴展），以及套用至每個碎片的 vCPUs 數量 （向上擴展）。您也可以視需要減少碎片和運算容量 (vCPUs的數量。

如需擴展最佳實務，請參閱 [擴展彈性叢集](elastic-best-practices.md#scaling)。

**注意**  
也可使用叢集層級擴展。如需詳細資訊，請參閱[擴展 Amazon DocumentDB 叢集](db-cluster-manage-performance.md)。

## 彈性叢集可靠性
<a name="elastic-reliability"></a>

Amazon DocumentDB 的設計可靠、耐用且容錯。為了改善可用性，彈性叢集會在不同可用區域的每個碎片部署兩個節點。Amazon DocumentDB 包含數個自動功能，使其成為可靠的資料庫解決方案。如需詳細資訊，請參閱[Amazon DocumentDB 可靠性](how-it-works.md#how-it-works.reliability)。

## 彈性叢集儲存和可用性
<a name="how-it-works-storage"></a>

Amazon DocumentDB 資料存放在叢集磁碟區中，這是使用固態硬碟 (SSDs的單一虛擬磁碟區。叢集磁碟區包含六個資料複本，這些複本會自動複寫到單一 AWS 區域中的多個可用區域。此複寫有助於確保您的資料具有高耐用性，同時降低資料遺失的機率。它也有助於確保您的叢集在容錯移轉時提供更高的可用性，因為資料副本已存在於其他可用區域。如需儲存、高可用性和複寫的詳細資訊，請參閱 [Amazon DocumentDB：運作方式](how-it-works.md)。

## Amazon DocumentDB 4.0 和彈性叢集之間的功能差異
<a name="elastic-functional-differences"></a>

Amazon DocumentDB 4.0 和彈性叢集之間存在下列功能差異。
+ 來自 `top`和 的結果`collStats`會依碎片分割。對於碎片集合，資料會分散在多個分割區中`collScans`，並從分割區彙總`collStats`的報告。
+ 叢集`collStats`碎片計數變更時，會重設碎片集合的 `top`和 集合統計資料。
+ 備份內建角色現在支援 `serverStatus`。動作 - 具有備份角色的開發人員和應用程式可以收集有關 Amazon DocumentDB 叢集狀態的統計資料。
+ `SecondaryDelaySecs` 欄位會在`replSetGetConfig`輸出`slaveDelay`中取代 。
+ `hello` 命令會取代 `isMaster` - `hello`傳回描述彈性叢集角色的文件。
+ 彈性叢集中的`$elemMatch`運算子僅符合陣列的第一個巢狀層級中的文件。在 Amazon DocumentDB 4.0 中，運算子會先周遊所有層級，再傳回相符的文件。例如：

```
db.foo.insert(
[
    {a: {b: 5}},
    {a: {b: [5]}},
    {a: {b: [3, 7]}},
    {a: [{b: 5}]},
    {a: [{b: 3}, {b: 7}]},
    {a: [{b: [5]}]},
    {a: [{b: [3, 7]}]},
    {a: [[{b: 5}]]},
    {a: [[{b: 3}, {b: 7}]]},
    {a: [[{b: [5]}]]},
    {a: [[{b: [3, 7]}]]}
]);
// Elastic clusters
> db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0})
{ "a" : [ { "b" : [ 5 ] } ] }

// Docdb 4.0: traverse more than one level deep
> db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0})
{ "a" : [ { "b" : [ 5 ] } ] }
{ "a" : [ [ { "b" : [ 5 ] } ] ] }
```
+ Amazon DocumentDB 4.0 中的「\$1」投影會傳回包含所有欄位的所有文件。使用彈性叢集時，具有 "\$1" 投影的 `find` 命令會傳回符合查詢參數的文件，只包含符合 "\$1" 投影的欄位。
+ 在彈性叢集中，具有 `$regex`和 `$options`查詢參數的`find`命令會傳回錯誤：「無法在 \$1regex 和 \$1options 中設定選項」。
+ 使用彈性叢集時， `$indexOfCP` 現在會在下列情況下傳回 "-1"：
  + 在 中找不到 子字串`string expression`，或
  + `start` 是大於 的數字`end`，或
  + `start` 是大於字串位元組長度的數字。

  在 Amazon DocumentDB 4.0 中，當`start`位置的數字大於 `end`或字串的位元組長度時， 會`$indexOfCP`傳回 "0"。
+ 使用彈性叢集時， 中的投影操作，`_id fields`例如 `{"_id.nestedField" : 1}`，會傳回僅包含投影欄位的文件。同時，在 Amazon DocumentDB 4.0 中，巢狀欄位投影命令不會篩選掉任何文件。

# 開始使用 Amazon DocumentDB 彈性叢集
<a name="elastic-get-started"></a>

此入門區段會逐步解說如何建立和查詢您的第一個彈性叢集。

連線和開始使用 Amazon DocumentDB 的方法有很多。下列程序是使用者開始使用我們強大文件資料庫最快速、最簡單且最簡單的方法。本指南使用 直接從 [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)連接和查詢 Amazon DocumentDB 叢集 AWS 管理主控台。符合 AWS 免費方案資格的新客戶可免費使用 Amazon DocumentDB 和 CloudShell。如果您的 AWS CloudShell 環境或 Amazon DocumentDB 彈性叢集使用超出免費方案的資源，則會向您收取這些資源的正常 AWS 費率。本指南將協助您在不到 5 分鐘內開始使用 Amazon DocumentDB。

**Topics**
+ [先決條件](#elastic-clusters-prerequisites)
+ [步驟 1：建立彈性叢集](#elastic-get-started-clusters)
+ [步驟 2：連接至您的彈性叢集](#ec-gs-connect)
+ [步驟 3：碎片化您的集合、插入和查詢資料](#elastic-get-started-shard)
+ [步驟 4：探索](#ec-gs-congrats)

## 先決條件
<a name="elastic-clusters-prerequisites"></a>

建立第一個 Amazon DocumentDB 叢集之前，您必須執行下列動作：

**建立 Amazon Web Services (AWS) 帳戶**  
您必須先擁有 Amazon Web Services () 帳戶，才能開始使用 Amazon DocumentDB。AWS AWS 該帳戶是免費的。您僅需按使用的服務和資源量付費。  
如果您沒有 AWS 帳戶，請完成下列步驟來建立一個。  

**註冊 AWS 帳戶**

1. 開啟 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 請遵循線上指示進行。

   部分註冊程序需接收來電或簡訊，並在電話鍵盤輸入驗證碼。

   當您註冊 時 AWS 帳戶，*AWS 帳戶根使用者*會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務，請將管理存取權指派給使用者，並且僅使用根使用者來執行[需要根使用者存取權的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

**設定 needed AWS Identity and Access Management (IAM) 許可。**  
管理叢集、執行個體和叢集參數群組等 Amazon DocumentDB 資源的存取權，需要 AWS 可用於驗證請求的登入資料。如需詳細資訊，請參閱[Amazon DocumentDB 的 Identity and Access Management](security-iam.md)。  

1. 在 的搜尋列中 AWS 管理主控台，輸入 IAM，然後在下拉式選單中選取 **IAM**。

1. 進入 IAM 主控台後，請從導覽窗格中選取**使用者**。

1. 選取您的使用者名稱。

1. 按一下 **Add Permission** (新增許可)。

1. 選取**直接連接政策**。

1. 在搜尋列`AmazonDocDBElasticFullAccess`中輸入 ，並在搜尋結果中出現時選取它。

1. 按一下 **Next (下一步)**。

1. 按一下 **Add Permission** (新增許可)。

****  
 AWS 您的帳戶在每個區域中包含預設 VPC。如果您選擇使用 Amazon VPC，請完成《[Amazon VPC 使用者指南》中建立](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) *Amazon VPC* 主題的步驟。

## 步驟 1：建立彈性叢集
<a name="elastic-get-started-clusters"></a>

在本節中，我們會說明如何使用 AWS 管理主控台 或 AWS CLI 搭配下列指示來建立新的彈性叢集。

------
#### [ Using the AWS 管理主控台 ]

若要使用 建立彈性叢集組態 AWS 管理主控台：

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在 **Amazon DocumentDB 管理主控台****的叢集**下，選擇**建立**。  
![\[彈性叢集資料表顯示沒有叢集做為起點。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-start.png)

1. 在**建立 Amazon DocumentDB 叢集**頁面上的**叢集類型**區段中，選擇**彈性叢集**。  
![\[彈性叢集叢集類型對話方塊，顯示執行個體型叢集和彈性叢集的選擇。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-type.png)

1. 在**組態**區段中，設定下列項目：

   1. 在**叢集名稱**欄位中，輸入唯一的叢集識別符 （遵循 欄位下方的命名要求）。

   1. 在**碎片計數**欄位中，輸入叢集中您想要的碎片數量。每個叢集的碎片數目上限為 32。
**注意**  
每個碎片將部署兩個節點。兩個節點都有相同的碎片容量。

   1. 在**碎片執行個體計數**欄位中，選擇您希望與每個碎片相關聯的複本執行個體數量。碎片執行個體的數量上限為 16，增量為 1。所有複本執行個體具有與下列欄位中定義的相同碎片容量。基於測試目的，預設值 2 應該已足夠。
**注意**  
複本執行個體的數量會套用至彈性叢集中的所有碎片。碎片執行個體計數值 1 表示有一個寫入器執行個體，而任何其他執行個體都是可用於讀取和改善可用性的複本。基於測試目的，預設值 2 應該已足夠。

   1. 在**碎片容量**欄位中，選擇您希望與每個碎片執行個體相關聯的虛擬 CPUs (vCPUs) 數量。每個碎片執行個體vCPUs 數目上限為 64。允許的值為 2、4、8、16、32、64。基於測試目的，預設值 2 應該已足夠。

   1. 在**虛擬私有雲端 (VPC)** 欄位中，從下拉式清單中選擇 VPC。

   1. 對於**子網路**和 **VPC 安全群組**，您可以使用預設值或選取您選擇的三個子網路，以及最多三個 **VPC 安全群組** （至少一個）。  
![\[顯示可設定欄位的彈性叢集組態對話方塊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-configuration.png)

1. 在**身分驗證**區段中，在使用者名稱欄位中輸入可識別主要使用者的登入**名稱**的字串。

   在**密碼**欄位中，輸入符合指示的唯一密碼，然後確認。  
![\[身分驗證區段，其中包含使用者名稱和密碼的輸入欄位。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-authentication.png)

1. 在**加密**區段中，保留預設設定 **（預設金鑰**)。

   或者，您可以輸入您建立的 AWS KMS key ARN。如需詳細資訊，請參閱[Amazon DocumentDB 彈性叢集的靜態資料加密](elastic-encryption.md)。
**重要**  
必須為彈性叢集啟用加密。

1. 在**備份**區段中，根據您的備份需求編輯欄位。基於測試目的，您可以保留預設設定。  
![\[備份對話方塊的螢幕擷取畫面，顯示設定叢集備份時段的步驟。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-backup.png)

   1. **備份保留期** - 在清單中，選擇在刪除叢集之前保留此叢集自動備份的天數。

   1. **備份時段** - 設定 Amazon DocumentDB 要備份此叢集的每日時間和持續時間。

      1. 如果您想要設定建立備份的時間和持續時間，請選擇**選取視窗**。

         **開始時間** - 在第一個清單中，選擇啟動自動備份的開始時間小時 (UTC)。在第二個清單中，選擇您要自動備份開始進行的時間 (分)。

         **持續時間** - 在清單中，選擇要配置給建立自動備份的時數。

      1. 如果您希望 Amazon DocumentDB 選擇建立備份的時間和持續時間，請選擇**無偏好設定**。

1. 在**維護**區段中，選擇修改或修補程式套用至叢集的日期、時間和持續時間。基於測試目的，您可以保留預設設定。  
![\[維護區段顯示維護時段選項。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-maintenance.png)

1. 選擇 **Create Cluster** (建立叢集)。

彈性叢集現在正在佈建。這可能需要幾分鐘的時間才能完成。當彈性叢集狀態在叢集清單中顯示為**可用**時，您可以連線至**您的叢集**。

------
#### [ Using the AWS CLI ]

若要使用 建立彈性叢集 AWS CLI，請使用 `create-cluster`操作搭配下列參數：
+ **--cluster-name** - 必要項目。在建立或上次修改期間輸入的彈性擴展叢集的目前名稱。
+ **--shard-capacity** - 必要項目。指派給每個碎片vCPUs 數量。上限為 64。允許的值為 2、4、8、16、32、64。
+ **--shard-count** - 必要項目。指派給叢集的碎片數量。上限為 32。
+ **--shard-instance-count**- 選用。套用至此叢集中所有碎片的複本執行個體數目。上限為 16。
+ **--admin-user-name** - 必要項目。與管理員使用者相關聯的使用者名稱。
+ **--admin-user-password** - 必要項目。與管理員使用者相關聯的密碼。
+ **--auth-type** - 必要項目。用來決定在何處擷取用於存取彈性叢集之密碼的身分驗證類型。有效類型為 `PLAIN_TEXT`或 `SECRET_ARN`。
+ **--vpc-security-group-ids**- 選用。設定 EC2 VPC 安全群組清單，以與此叢集建立關聯。
+ **--preferred-maintenance-window**- 選用。設定每週執行系統維護的時間範圍，以國際標準時間 (UTC) 為單位。

  格式為：`ddd:hh24:mi-ddd:hh24:mi`。有效天數 (ddd)：週一、週二、週三、週四、週五、週六、週日

  預設值是從每個 Amazon Web Services 區域的 8 小時時段中隨機選取的 30 分鐘時段，該時段隨機發生在一週中的某一天。

  最短 30 分鐘時段。
+ **--kms-key-id**- 選用。設定加密叢集的 KMS 金鑰識別符。

  KMS 金鑰識別符是 AWS KMS 加密金鑰的 Amazon Resource Name (ARN)。如果您使用擁有用來加密新叢集之 KMS 加密金鑰的相同 Amazon Web Services 帳戶來建立叢集，您可以使用 KMS 金鑰別名，而不是 KMS 加密金鑰的 ARN。

  如果未在 KmsKeyId 中指定加密金鑰，且 `StorageEncrypted` 參數為 true，Amazon DocumentDB 會使用預設加密金鑰。
+ **--preferred-backup-window**- 選用。建立自動備份的每日偏好時間範圍。預設值是從 8 小時時段中隨機選取的 30 分鐘時段 AWS 區域。
+ **--backup-retention-period**- 選用。自動備份保留的天數。預設值為 1.
+ **--storage-encrypted**- 選用。設定叢集是否已加密。

  `--no-storage-encrypted` 指定叢集未加密。
+ **--subnet-ids**- 選用。設定網路子網路 ID。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

**注意**  
下列範例包括建立特定的 KMS 金鑰。若要使用預設 KMS 金鑰，請勿包含 `--kms-key-id` 參數。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic create-cluster \
     --cluster-name sample-cluster-123 \
     --shard-capacity 8 \
     --shard-count 4 \
     --shard-instance-count 3 \
     --auth-type PLAIN_TEXT \
     --admin-user-name testadmin \
     --admin-user-password testPassword \
     --vpc-security-group-ids ec-65f40350 \
     --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 \
     --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \
     --preferred-backup-window 18:00-18:30 \ 
     --backup-retention-period 7
```

針對 Windows：

```
aws docdb-elastic create-cluster ^
     --cluster-name sample-cluster-123 ^
     --shard-capacity 8 ^
     --shard-count 4 ^
     --shard-instance-count 3 ^
     --auth-type PLAIN_TEXT ^
     --admin-user-name testadmin ^
     --admin-user-password testPassword ^
     --vpc-security-group-ids ec-65f40350 ^
     --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 ^
     --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \
     --preferred-backup-window 18:00-18:30 \ 
     --backup-retention-period 7
```

------

## 步驟 2：連接至您的彈性叢集
<a name="ec-gs-connect"></a>

使用 連線至 Amazon DocumentDB 彈性叢集 AWS CloudShell。

1. 在 Amazon DocumentDB 管理主控台的**叢集**下，找到您建立的彈性叢集。按一下叢集旁的核取方塊，選擇對應叢集。  
![\[顯示彈性叢集的 Amazon DocumentDB 叢集管理介面\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-cluster-new.png)

1. 按一下**連線至叢集** （位於**動作**下拉式功能表旁。只有在您按一下叢集旁的核取方塊，且叢集的狀態顯示為**可用**之後，才會啟用此按鈕。CloudShell **執行命令**畫面隨即顯示。

1. 在**新增環境名稱**欄位中，輸入唯一名稱，例如「測試」，然後按一下**建立並執行**。VPC 環境詳細資訊會自動為您的 Amazon DocumentDB 資料庫設定。  
![\[請求新環境名稱的彈性叢集 CloudShell Run 命令畫面\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-run-command.png)

1. 出現提示時，輸入您在步驟 1：建立 Amazon DocumentDB 彈性叢集中建立的密碼 （子步驟 5)。  
![\[請求使用者密碼的彈性叢集 CloudShell 畫面\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-gs-cs-password.png)

   輸入密碼且提示變成 後`direct: mongos] <env-name>>`，您已成功連線到 Amazon DocumentDB 叢集

**注意**  
如需故障診斷的資訊，請參閱[故障診斷 Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/troubleshooting.html)。

## 步驟 3：碎片化您的集合、插入和查詢資料
<a name="elastic-get-started-shard"></a>

彈性叢集新增對 Amazon DocumentDB 中碎片的支援。現在您已連線至叢集，您可以碎片化叢集、插入資料並執行一些查詢。

1. 若要分割集合，請輸入下列內容：

   ```
   sh.shardCollection("db.Employee1" , { "Employeeid" : "hashed" })
   ```

1. 若要插入單一文件，請輸入下列項目：

   ```
   db.Employee1.insertOne({"Employeeid":1, "Name":"Joe", "LastName": "Bruin", "level": 1 })
   ```

   隨即顯示下列輸出：

   ```
   WriteResult({ "nInserted" : 1 })
   ```

1. 若要讀取您撰寫的文件，請輸入 `findOne()`命令 （它會傳回單一文件）：

   ```
   db.Employee1.findOne()
   ```

   隨即顯示下列輸出：

   ```
   {
   "_id" : ObjectId("61f344e0594fe1a1685a8151"),
   "EmployeeID" : 1,
   "Name" : "Joe",
   "LastName" : "Bruin",
   "level" : 1
   }
   ```

1. 若要執行更多查詢，請考慮遊戲設定檔使用案例。首先，將幾個項目插入名為 "Employee" 的集合。輸入下列資料：

   ```
   db.profiles.insertMany([ { "_id": 1, "name": "Matt", "status": "active", "level": 12, "score": 202 }, 
        { "_id": 2, "name": "Frank", "status": "inactive", "level": 2, "score": 9 }, 
        { "_id": 3, "name": "Karen", "status": "active", "level": 7, "score": 87 }, 
        { "_id": 4, "name": "Katie", "status": "active", "level": 3, "score": 27 }
   ])
   ```

   隨即顯示下列輸出：

   ```
   { acknowledged: true, 
        insertedIds: { 
           '0': ObjectId('679d02cd6b5a0581be78bcbd'),
           '1': ObjectId('679d02cd6b5a0581be78bcbe'),
           '2': ObjectId('679d02cd6b5a0581be78bcbf'),
           '3': ObjectId('679d02cd6b5a0581be78bcc0')
       }
   }
   ```

1. 若要傳回設定檔集合中的所有文件，請輸入 `find`() 命令：

   ```
   db.Employee.find()
   ```

   您在步驟 4 中輸入的資料隨即顯示。

1. 若要查詢單一文件，請包含篩選條件 （例如："Katie")。輸入下列資料：

   ```
   db.Employee.find({name: "Katie"})
   ```

    隨即顯示下列輸出：

   ```
   [ 
      { 
        _id: ObjectId('679d02cd6b5a0581be78bcc0'), 
        Employeeid: 4, 
        name: 'Katie', 
        lastname: 'Schaper', 
        level: 3 
      } 
   ]
   ```

1. 若要尋找設定檔並進行修改，請輸入 `findAndModify`命令。在此範例中，員工 "Matt" 獲得更高層級的 "14"：

   ```
   db.Employee.findAndModify({     
       query: { "Employeeid" : 1, "name" : "Matt"},     
       update: { "Employeeid" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 14 } 
   })
   ```

   隨即顯示下列輸出 （請注意，關卡尚未變更）：

   ```
   { 
      _id: ObjectId('679d02cd6b5a0581be78bcbd'), 
      Employeeid: 1, 
      name: 'Matt', 
      lastname: 'Winkle', 
      level: 12 
   }
   ```

1. 若要驗證關卡增加，請輸入下列查詢：

   ```
   db.Employee.find({name: "Matt"})
   ```

   隨即顯示下列輸出：

   ```
   [
      { 
      _id: ObjectId('679d02cd6b5a0581be78bcbd'), 
      Employeeid: 1, 
      name: 'Matt', 
      lastname: 'Winkle', 
      level: 14 
      }
   ]
   ```

## 步驟 4：探索
<a name="ec-gs-congrats"></a>

恭喜您！您已成功完成 Amazon DocumentDB 彈性叢集的入門程序。

下一步是什麼？ 了解如何充分利用此資料庫及其一些熱門功能：
+  [Amazon DocumentDB 彈性叢集最佳實務](elastic-best-practices.md) 
+  [管理 Amazon DocumentDB 彈性叢集](elastic-managing.md) 

**注意**  
除非您刪除彈性叢集，否則您從此入門程序建立的彈性叢集將繼續產生成本。如需說明，請參閱 [刪除彈性叢集](elastic-managing.md#elastic-delete)。

# Amazon DocumentDB 彈性叢集最佳實務
<a name="elastic-best-practices"></a>

了解使用 Amazon DocumentDB 彈性叢集的最佳實務。[執行個體型 Amazon DocumentDB 叢集的所有最佳實務](https://docs.aws.amazon.com/documentdb/latest/developerguide/best_practices.html)也適用於彈性叢集。在新最佳實務確定時，會不斷更新此小節。

**Topics**
+ [選擇碎片索引鍵](#choosing-shard-keys)
+ [連線管理](#connection-management)
+ [未碎片集合](#unsharded-collections)
+ [擴展彈性叢集](#scaling)
+ [監控彈性叢集](#monitoring-elastic-clusters)

## 選擇碎片索引鍵
<a name="choosing-shard-keys"></a>

下列清單說明建立碎片金鑰的指導方針。
+ 使用平均分佈的雜湊金鑰，將資料分散到叢集中的所有碎片 （避免使用熱鍵）。
+ 在所有read/update/delete請求中使用您的碎片金鑰，以避免散射收集查詢。
+ 執行read/update/delete操作時，請避免巢狀碎片金鑰。
+ 進行批次操作時，請將 `ordered`設定為 false，以便所有碎片可以平行執行並提高延遲。

## 連線管理
<a name="connection-management"></a>

下列清單說明管理資料庫連線的指導方針。
+ 監控您的連線計數，以及新連線開啟的頻率。
+ 將連線分散到應用程式組態中的所有子網路。如果您的叢集是在多個子網路中設定，但您只利用一部分子網路，則您的最大連線可能會遇到瓶頸。

## 未碎片集合
<a name="unsharded-collections"></a>

以下說明未碎片集合的指導方針。
+ 使用未碎片集合時，若要分配負載，請嘗試在不同資料庫上保留高度使用的未碎片集合。Amazon DocumentDB 彈性叢集會將資料庫放在不同的碎片上，並共同將相同資料庫的未碎片集合放置在相同的碎片上。

## 擴展彈性叢集
<a name="scaling"></a>

下列清單說明擴展彈性叢集的指導方針。
+ 擴展操作可能會導致短暫的間歇性資料庫和網路錯誤。可能的話，請避免在尖峰時段進行擴展。嘗試在維護時段期間擴展。
+ 增加和減少碎片容量 （變更每個碎片的 vCPU 計數） 以增加運算比增加或減少碎片計數更為優先，因為它速度更快，並且具有較短的間歇性資料庫和網路錯誤持續時間。
+ 預測增長時，最好增加碎片計數，而不是擴展碎片容量。這可讓您透過增加需要快速擴展的案例的碎片容量來擴展叢集。
+ 監控您的用戶端重試政策，並使用指數退避和抖動重試，以避免在擴展時發生錯誤時使資料庫超載。

## 監控彈性叢集
<a name="monitoring-elastic-clusters"></a>

下列清單說明監控彈性叢集的指導方針。
+ 追蹤每個碎片指標的peak-to-average比率，以判斷您是否正在驅動不均勻的流量 （具有熱鍵/熱點）。追蹤peak-to-average比率的關鍵指標為：
  + `PrimaryInstanceCPUUtilization`
    + 這可以在每個碎片層級進行監控。
    + 在叢集層級，您可以監控 p99 偏移的平均數。
  + `PrimaryInstanceFreeableMemory`
    + 這可以在每個碎片層級進行監控。
    + 在叢集層級，您可以監控 p99 偏移的平均數。
  + `DatabaseCursorsMax`
    + 這應該在每個碎片層級進行監控，以判斷扭曲。
  + `Documents-Inserted/Updated/Returned/Deleted`
    + 這應該在每個碎片層級進行監控，以判斷扭曲。

# 管理 Amazon DocumentDB 彈性叢集
<a name="elastic-managing"></a>

若要管理 Amazon DocumentDB 彈性叢集，您必須擁有具有適當 Amazon DocumentDB 控制平面許可的 IAM 政策。這些許可可讓您建立、修改和刪除叢集。Amazon DocumentDBFullAccess 政策提供管理 Amazon DocumentDB 彈性叢集的所有必要許可。

下列主題說明如何在使用 Amazon DocumentDB 彈性叢集時執行各種任務。

**Topics**
+ [修改彈性叢集組態](#elastic-modify)
+ [監控彈性叢集](#elastic-monitor)
+ [刪除彈性叢集](#elastic-delete)
+ [管理彈性叢集快照](elastic-manage-snapshots.md)
+ [停止和啟動 Amazon DocumentDB 彈性叢集](elastic-cluster-stop-start.md)
+ [維護 Amazon DocumentDB 彈性叢集](elastic-cluster-maintenance.md)

## 修改彈性叢集組態
<a name="elastic-modify"></a>

在本節中，我們會說明如何使用 AWS 管理主控台 或 AWS CLI 搭配下列指示來修改彈性叢集。

修改叢集的主要用途是透過增加或減少碎片計數和/或碎片運算容量來擴展碎片。

------
#### [ Using the AWS 管理主控台 ]

若要使用 修改彈性叢集組態 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在叢集**識別符欄中選擇您要修改的叢集**名稱。

1. 選擇 **Modify** (修改)。

1. 編輯您要變更的欄位，然後選取**修改叢集**。  
![\[表格顯示可修改的組態、維護、身分驗證和網路設定選項，修改叢集按鈕位於右下角。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/cluster-shard-modify-3.png)

**注意**  
或者，您可以前往**叢集**頁面，勾選**叢集**旁的方塊，選擇**動作**，然後選擇修改，以存取**修改**叢集對話方塊。

------
#### [ Using the AWS CLI ]

若要使用 修改彈性叢集組態 AWS CLI，請使用 `update-cluster`操作搭配下列參數：
+ **--cluster-arn** - 必要項目。您要修改之叢集的 ARN 識別符。
+ **--shard-capacity**- 選用。指派給每個碎片vCPUs 數量。上限為 64。允許的值為 2、4、8、16、32、64。
+ **--shard-count**- 選用。指派給叢集的碎片數量。上限為 32。
+ **--shard-instance**-count - 選用。套用至此叢集中所有碎片的複本執行個體數目。上限為 16。
+ **--auth-type**- 選用。用來決定在何處擷取用於存取彈性叢集之密碼的身分驗證類型。有效類型為 `PLAIN_TEXT`或 `SECRET_ARN`。
+ **--admin-user-password**- 選用。與管理員使用者相關聯的密碼。
+ **--vpc-security-group-ids**- 選用。設定要與此叢集建立關聯的 Amazon EC2 和 Amazon Virtual Private Cloud (VPC) 安全群組清單。
+ **--preferred-maintenance-window**- 選用。設定每週可以進行系統維護的時間範圍，以國際標準時間 (UTC) 為單位

  格式為：`ddd:hh24:mi-ddd:hh24:mi`。有效天數 (ddd)：週一、週二、週三、週四、週五、週六、週日

  預設值是從每個 Amazon Web Services 區域的 8 小時時段中隨機選取的 30 分鐘時段，該時段隨機發生在一週中的某一天。

  最短 30 分鐘時段。
+ **--subnet-ids**- 選用。設定網路子網路 ID。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic update-cluster \
    --cluster-arn arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 \
    --shard-capacity 8 \
    --shard-count 4 \
    --shard-instance-count 3 \
    --admin-user-password testPassword \
    --vpc-security-group-ids ec-65f40350 \
    --subnet-ids subnet-9253c6a3, subnet-9f1b5af9
```

針對 Windows：

```
aws docdb-elastic update-cluster ^
    --cluster-arn arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 ^
    --shard-capacity 8 ^
    --shard-count 4 ^
    --shard-instance-count 3 ^
    --admin-user-password testPassword ^
    --vpc-security-group-ids ec-65f40350 ^
    --subnet-ids subnet-9253c6a3, subnet-9f1b5af9
```

------

若要在修改後監控彈性叢集的狀態，請參閱監控彈性叢集。

## 監控彈性叢集
<a name="elastic-monitor"></a>

在本節中，我們會說明如何使用 AWS 管理主控台 或 AWS CLI 搭配下列指示來監控您的彈性叢集。

------
#### [ Using the AWS 管理主控台 ]

若要使用 監控彈性叢集組態 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在叢集**識別符欄中選擇您要監控的叢集**名稱。

1. 選擇 **Monitoring** (監控) 索引標籤。  
![\[彈性叢集摘要資訊會顯示在監控索引標籤中。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/cluster-shard-monitor-2.png)

下列監控類別會顯示來自 Amazon CloudWatch 的數個圖表：
+ 資源使用率
+ 輸送量
+ 作業
+ 系統

您也可以透過 存取 Amazon CloudWatch AWS 管理主控台 ，為您的彈性叢集設定自己的監控環境。

------
#### [ Using the AWS CLI ]

若要使用 監控特定彈性叢集組態 AWS CLI，請使用 `get-cluster`操作搭配下列參數：
+ **--cluster-arn** - 必要項目。您想要其資訊的叢集 ARN 識別符。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic get-cluster \
    --cluster-arn arn:aws:docdb-elastic:us-west-2:123456789012:cluster:/68ffcdf8-e3af-40a3-91e4-24736f2dacc9
```

針對 Windows：

```
aws docdb-elastic get-cluster ^
    --cluster-arn arn:aws:docdb:-elastic:us-west-2:123456789012:cluster:/68ffcdf8-e3af-40a3-91e4-24736f2dacc9
```

此操作的輸出如下所示：

```
"cluster": {
        ...
        "clusterArn": "arn:aws:docdb-elastic:us-west-2:123456789012:cluster:/68ffcdf8-e3af-40a3-91e4-24736f2dacc9",
        "clusterEndpoint": "stretch-11-477568257630.us-east-1.docdb-elastic.amazonaws.com",
        "readerEndpoint": "stretch-11-477568257630-ro.us-east-1.docdb-elastic.amazonaws.com",
        "clusterName": "stretch-11",     
        "shardCapacity": 2,
        "shardCount": 3,
        "shardInstanceCount: 5,
        "status": "ACTIVE",
        ...
 }
```

如需詳細資訊，請參閱《Amazon DocumentDB Resource Management API 參考`DescribeClusterSnapshot`》中的 。

若要使用 檢視所有彈性叢集的詳細資訊 AWS CLI，請使用 `list-clusters`操作搭配下列參數：
+ **--next-token**- 選用。如果項目輸出數量 (`--max-results`) 少於基礎 API 呼叫傳回的項目總數，則輸出會包含一個 `NextToken`，提供您在後續命令中傳送以擷取下一組項目。
+ **--max-results**- 選用。要在命令輸出中傳回的總項目數。如果存在的結果超過指定的`max-results`值，則會在回應中包含分頁字符 (`next-token`)，以便擷取剩餘的結果。
  + 預設：100
  + 最小值為 20，最大值為 100

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic list-clusters \
    --next-token eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ== \
    --max-results 2
```

針對 Windows：

```
aws docdb-elastic list-clusters ^
    --next-token eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ== ^
    --max-results 2
```

此操作的輸出如下所示：

```
{
   "Clusters": [
      {
         "ClusterIdentifier":"mycluster-1",
         "ClusterArn":"arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster"
         "Status":"available",
         "ClusterEndpoint":"sample-cluster.sharded-cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com"
       }
       {
         "ClusterIdentifier":"mycluster-2",
         "ClusterArn":"arn:aws:docdb:us-west-2:987654321098:sharded-cluster:sample-cluster"
         "Status":"available",
         "ClusterEndpoint":"sample-cluster2.sharded-cluster-corcjozrlsfc.us-west-2.docdb.amazonaws.com"
       }
   ] 
}
```

------

## 刪除彈性叢集
<a name="elastic-delete"></a>

在本節中，我們會說明如何使用 AWS 管理主控台 或 AWS CLI 搭配下列指示來刪除彈性叢集。

------
#### [ Using the AWS 管理主控台 ]

若要使用 刪除彈性叢集組態 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在叢集清單表格中，選取您要刪除之叢集名稱左側的核取方塊，然後選擇**動作**。從下拉式選單中選擇 **Detete (刪除)**。

1. 在**刪除「叢集名稱」彈性叢集？**對話方塊中，選擇**刪除**。  
![\[刪除對話方塊，使用右下角的刪除按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/cluster-delete-dialog.png)

刪除叢集需要幾分鐘的時間。若要監控叢集的狀態，請參閱[監控 Amazon DocumentDB 叢集的狀態](https://docs.aws.amazon.com//documentdb/latest/developerguide/monitoring_docdb-cluster_status.html)。

------
#### [ Using the AWS CLI ]

若要使用 刪除彈性叢集 AWS CLI，請使用 `delete-cluster`操作搭配下列參數：
+ **--cluster-arn** - 必要項目。您要刪除之叢集的 ARN 識別符。
+ **--no-skip-final-backup**- 選用。如果您想要最終備份，您必須將此參數包含最終備份的名稱。您必須包含 `--final-backup-identifier` 或 `--skip-final-backup`。
+ **--skip-final-backup**- 選用。只有在您不想在刪除叢集之前進行最終備份時，才使用此參數。預設設定是建立最後的快照。

下列 AWS CLI 程式碼範例使用最終備份刪除 ARN 為 arn：aws：docdb：us-west-2：123456789012：sharded-cluster：sample-cluster 的叢集。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic delete-cluster \
    --cluster-arn arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster \
    --no-skip-final-backup \
    --final-backup-identifier finalArnBU-arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster
```

針對 Windows：

```
aws docdb-elastic delete-cluster ^
    --cluster-arn arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster ^
    --no-skip-final-backup ^
    --final-backup-identifier finalArnBU-arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster
```

下列 AWS CLI 程式碼範例會刪除 ARN 為 arn：aws：docdb：us-west-2：123456789012：sharded-cluster：sample-cluster 的叢集，無需進行最終備份。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic delete-cluster \
    --cluster-arn arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster \
    --skip-final-backup \
```

針對 Windows：

```
aws docdb-elastic delete-cluster ^
    --cluster-arn arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster ^
    --skip-final-backup ^
```

`delete-cluster` 操作的輸出是您要刪除之叢集的顯示。

刪除叢集需要幾分鐘的時間。若要監控叢集的狀態，請參閱[監控 Amazon DocumentDB 叢集的狀態](https://docs.aws.amazon.com/documentdb/latest/developerguide/monitoring_docdb-cluster_status.html)。

------

# 管理彈性叢集快照
<a name="elastic-manage-snapshots"></a>

建立彈性叢集後，即可取得手動快照。自動備份會在建立彈性叢集快照時建立。

**注意**  
您的彈性叢集必須處於 `Available` 狀態，才能取得手動快照。

本節說明如何建立、檢視、還原和刪除彈性叢集快照。

下列主題說明如何在使用 Amazon DocumentDB 彈性叢集快照時執行各種任務。

**Topics**
+ [建立手動彈性叢集快照](#elastic-create-snapshot)
+ [檢視彈性叢集快照](#elastic-view-snapshot)
+ [從快照還原彈性叢集](#elastic-restore-snapshot)
+ [複製彈性叢集快照](#elastic-copy-snapshot)
+ [刪除彈性叢集快照](#elastic-delete-snapshot)
+ [管理彈性叢集快照自動備份](#elastic-auto-snapshot)

## 建立手動彈性叢集快照
<a name="elastic-create-snapshot"></a>

在本節中，我們將說明如何使用 AWS 管理主控台 或 AWS CLI 搭配下列指示來建立手動彈性叢集快照。

------
#### [ Using the AWS 管理主控台 ]

若要使用 建立手動彈性叢集快照 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇 **Snapshots** (快照)。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在 **Snapshots (快照)** 頁面選擇 **Create (建立)**。

1. 在**建立叢集快照**頁面上的**叢集識別符**欄位中，從下拉式清單中選擇您的彈性叢集。

   在**快照識別符**欄位中，輸入彈性叢集的唯一識別符。

   選擇**建立**。  
![\[圖表：彈性叢集建立快照\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/elastic-create-snapshot.png)

**注意**  
或者，您可以前往**叢集**頁面，勾選叢集旁的方塊，然後選擇**動作**，然後**拍攝快照**，以存取**建立**叢集快照對話方塊。

您的彈性叢集快照現在正在佈建。這可能需要幾分鐘的時間才能完成。當狀態`Available`在快照清單中顯示為 時，您可以從**快照**檢視和還原。

------
#### [ Using the AWS CLI ]

若要使用 建立手動彈性叢集快照 AWS CLI，請使用 `create-cluster-snapshot`操作搭配下列參數：
+ **--snapshot-name** - 必要項目。您要建立的叢集快照名稱。
+ **--cluster-arn** - 必要項目。您要建立快照之叢集的 ARN 識別符。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic create-cluster-snapshot \
    --snapshot-name sample-snapshot-1 \
    --cluster-arn arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster
```

針對 Windows：

```
aws docdb-elastic create-cluster-snapshot ^
    --snapshot-name sample-snapshot-1 ^
    --cluster-arn arn:aws:docdb:us-west-2:123456789012:sharded-cluster:sample-cluster
```

------

## 檢視彈性叢集快照
<a name="elastic-view-snapshot"></a>

在本節中，我們會說明如何使用 AWS 管理主控台 或 AWS CLI 搭配下列指示來檢視彈性叢集快照資訊。

------
#### [ Using the AWS 管理主控台 ]

若要使用 檢視特定彈性叢集快照的相關資訊 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇 **Snapshots** (快照)。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在**快照**頁面上，按一下**快照識別符**欄中的名稱，從清單中選擇快照。

1. 在**詳細資訊**中檢視快照的資訊。  
![\[圖表：彈性叢集檢視快照\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/elastic-snapshot-view.png)

------
#### [ Using the AWS CLI ]

若要使用 檢視特定彈性叢集快照的相關資訊 AWS CLI，請使用 `get-cluster-snapshot`操作搭配下列參數：
+ **--snapshot-arn** - 必要項目。您想要其資訊的快照 ARN 識別符。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic get-cluster-snapshot \
    --snapshot-arn sampleResourceName
```

針對 Windows：

```
aws docdb-elastic get-cluster-snapshot ^
    --snapshot-arn sampleResourceName
```

若要使用 檢視特定彈性叢集快照的相關資訊 AWS CLI，請使用 `get-cluster-snapshot`操作搭配下列參數：
+ **--snapshot-arn** - 必要項目。您想要其資訊的快照 ARN 識別符。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic get-cluster-snapshot \
    --snapshot-arn sampleResourceName
```

針對 Windows：

```
aws docdb-elastic get-cluster-snapshot ^
    --snapshot-arn sampleResourceName
```

若要使用 檢視所有彈性叢集快照的相關資訊 AWS CLI，請使用 `list-cluster-snapshots`操作搭配下列參數：
+ **--snapshot-type**- 選用。要傳回的叢集快照類型。您可以指定下列其中一個值：
  + `automated` - 傳回 Amazon DocumentDB 為 AWS 您的帳戶自動建立的所有叢集快照。
  + `manual` - 傳回您為 AWS 帳戶手動建立的所有叢集快照。
  + `shared` - 傳回已與 AWS 您的帳戶共用的所有手動叢集快照。
  + `public` - 傳回已標記為公有的所有叢集快照。
+ **--next-token**- 選用。前一個請求提供的選用分頁字符。如果指定此參數，回應只會包含超過此字符的記錄，直到 指定的值為止`max-results`。
+ **--max-results**- 選用。要在回應中包含的結果數目上限。如果存在的結果超過指定的`max-results`值，回應中會包含分頁字符 (`next-token`)，以便擷取剩餘的結果。
  + 預設：100
  + 最小值為 20，最大值為 100

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic list-cluster-snapshots \
    --snapshot-type  value \
    --next-token  value \
    --max-results 50
```

針對 Windows：

```
aws docdb-elastic list-cluster-snapshots ^
    --snapshot-type  value ^
    --next-token  value ^
    --max-results 50
```

------

## 從快照還原彈性叢集
<a name="elastic-restore-snapshot"></a>

在本節中，我們會說明如何使用 AWS 管理主控台 或 AWS CLI 搭配下列指示，從快照還原彈性叢集。

------
#### [ Using the AWS 管理主控台 ]

若要使用 從快照還原彈性叢集 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇 **Snapshots** (快照)。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在快照**識別符**欄中，選擇您要用來還原叢集的快照左側按鈕。

1. 選擇**動作**，再選擇**還原**。  
![\[圖表：從快照彈性叢集還原\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/elastic-restore-snapshot.png)

1. 在**還原快照**頁面上，在叢集**識別符**欄位中輸入新叢集的名稱。
**注意**  
對於任何手動快照還原，您必須建立新的叢集。

1. 在**虛擬私有雲端 (VPC)** 欄位中，從下拉式清單中選擇 VPC。

1. 對於**子網路**和 **VPC 安全群組**，您可以使用預設值或選取您選擇的三個子網路，以及最多三個 VPC 安全群組 （至少一個）。

1. 如果您滿意此叢集組態，請選擇 **Restore cluster (還原叢集)**，等待叢集還原。

------
#### [ Using the AWS CLI ]

若要使用 從快照還原彈性叢集 AWS CLI，請使用 `restore-cluster-from-snapshot`操作搭配下列參數：
+ **--cluster-name** - 必要項目。在建立或上次修改期間輸入的彈性叢集的目前名稱。
+ **--snapshot-arn** - 必要項目。用於還原叢集之快照的 ARN 識別符。
+ **--vpc-security-group-ids**- 選用。要與叢集建立關聯的一或多個 Amazon EC2 和 Amazon Virtual Private Cloud (VPC) 安全群組。
+ **--kms-key-id**- 選用。設定加密叢集的 KMS 金鑰識別符。

  KMS 金鑰識別符是 AWS KMS 加密金鑰的 Amazon Resource Name (ARN)。如果您使用擁有用來加密新叢集之 KMS 加密金鑰的相同 Amazon Web Services 帳戶來建立叢集，您可以使用 KMS 金鑰別名，而不是 KMS 加密金鑰的 ARN。

  如果未在 KmsKeyId 中指定加密金鑰，且 `StorageEncrypted` 參數為 true，Amazon DocumentDB 會使用預設加密金鑰。
+ **--subnet-ids**- 選用。網路子網路 ID。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic restore-cluster-from-snapshot \
     --cluster-name elastic-sample-cluster \
     --snapshot-arn sampleResourceName \
     --vpc-security-group-ids value ec-65f40350 \
     --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 \
     --subnet-ids subnet-9253c6a3, subnet-9f1b5af9
```

針對 Windows：

```
aws docdb-elastic restore-cluster-from-snapshot ^
     --cluster-name elastic-sample-cluster ^
     --snapshot-arn sampleResourceName ^
     --vpc-security-group-ids value ec-65f40350 ^
     --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 ^
     --subnet-ids subnet-9253c6a3, subnet-9f1b5af9
```

------

## 複製彈性叢集快照
<a name="elastic-copy-snapshot"></a>

在 Amazon DocumentDB 中，您可以在相同區域和相同帳戶中複製手動和自動彈性叢集快照。在本節中，我們會說明如何使用 AWS 管理主控台 或 複製彈性叢集快照 AWS CLI。

------
#### [ Using the AWS 管理主控台 ]

若要使用 複製彈性叢集快照 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇 **Snapshots** (快照)。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在快照**識別符**欄中，選擇您要複製的快照左側按鈕。

1. 選擇**動作**，然後選擇**複製**。  
![\[圖表：彈性叢集複製快照\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-copy-snapshot.png)

1. 針對**新快照識別符**，輸入新快照的名稱。

1. 對於**複製標籤**，如果您想要將所有標籤從來源彈性叢集快照複製到目標彈性叢集快照，請勾選此方塊。

1. 針對**加密**，選擇預設 AWS KMS 金鑰或您選擇的 KMS 金鑰。第二個選項可讓您選取已建立的現有 KMS 金鑰，或允許您建立新的 KMS 金鑰。

1. 完成後，請選擇**複製快照**。

------
#### [ Using the AWS CLI ]

若要使用 複製彈性叢集快照 AWS CLI，請使用 `copy-cluster-snapshot`操作搭配下列參數：
+ **‐‐source-db-cluster-snapshot-identifier** - 必要項目。要複製之現有彈性叢集快照的識別符。彈性叢集快照必須存在且處於可用狀態。此參數不區分大小寫。
+ **‐‐target-db-cluster-snapshot-identifier** - 必要項目。要從現有叢集快照建立之新彈性叢集快照的識別符。此參數不區分大小寫。

  目標快照名稱限制條件：
  + 不能是現有快照的名稱。
  + 長度為 【1-63】 個字母、數字或連字號。
  + 第一個字元必須是字母。
  + 不能以連字號結尾，或包含兩個連續連字號。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic copy-cluster-snapshot \
     ‐‐source-cluster-snapshot-arn <sample ARN> \
     ‐‐target-cluster-snapshot-name my-target-copied-snapshot
```

針對 Windows：

```
aws docdb-elastic copy-cluster-snapshot ^
     ‐‐source-cluster-snapshot-arn <sample ARN> ^
     ‐‐target-cluster-snapshot-name my-target-copied-snapshot
```

------

## 刪除彈性叢集快照
<a name="elastic-delete-snapshot"></a>

在本節中，我們會說明如何使用 AWS 管理主控台 或 刪除彈性叢集快照 AWS CLI。

------
#### [ Using the AWS 管理主控台 ]

若要使用 從快照還原彈性叢集 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇 **Snapshots** (快照)。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在快照**識別符**欄中，選擇您要用來還原叢集的快照左側按鈕。

1. 依序選擇**動作**和**刪除**。  
![\[圖表：彈性叢集刪除快照\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/elastic-delete-snapshot.png)

1. 在**刪除「snapshot-name」快照**對話方塊中，選擇**刪除**。

------
#### [ Using the AWS CLI ]

若要使用 刪除彈性叢集快照 AWS CLI，請使用 `delete-cluster-snapshot`操作搭配下列參數：
+ **--snapshot-arn** - 必要項目。用於還原叢集之快照的 ARN 識別符。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic delete-cluster-snapshot \
     --snapshot-arn sampleResourceName
```

針對 Windows：

```
aws docdb-elastic delete-cluster-snapshot ^
     --snapshot-arn sampleResourceName
```

------

## 管理彈性叢集快照自動備份
<a name="elastic-auto-snapshot"></a>

Amazon DocumentDB 會為您的彈性叢集拍攝每日快照。您可以在新的或現有的彈性叢集快照組態中指定偏好的備份時段和備份保留期間。在本節中，我們會說明如何使用 AWS 管理主控台 或 ，在彈性叢集快照中設定自動備份參數 AWS CLI。

------
#### [ Using the AWS 管理主控台 ]

若要使用 設定新彈性叢集快照的自動備份 AWS 管理主控台：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果您在螢幕左側沒有看到導覽窗格，請選擇導覽窗格左上角的選單圖示。

1. 在叢集**識別符**欄中，選擇您要變更其備份設定的叢集左側按鈕。

1. 選擇**動作**，然後選擇**修改**。

1. 在**備份**區段中，根據您的備份需求編輯欄位。  
![\[備份窗格的螢幕擷取畫面，顯示設定叢集備份時段的步驟。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-backup.png)

   1. **備份保留期** - 在清單中，選擇在刪除叢集之前保留此叢集自動備份的天數。

   1. **備份時段** - 設定 Amazon DocumentDB 要備份此叢集的每日時間和持續時間。

      1. 如果您想要設定建立備份的時間和持續時間，請選擇**選取視窗**。

         **開始時間** - 在第一個清單中，選擇啟動自動備份的開始時間小時 (UTC)。在第二個清單中，選擇您要自動備份開始進行的時間 (分)。

         **持續時間** - 在清單中，選擇要配置給建立自動備份的時數。

      1. 如果您希望 Amazon DocumentDB 選擇建立備份的時間和持續時間，請選擇**無偏好設定**。

1. 完成時選擇**修改叢集**。

------
#### [ Using the AWS CLI ]

若要使用 設定新彈性叢集快照的自動備份 AWS CLI，請使用 `create-cluster-snapshot`操作搭配下列參數：
+ **--preferred-backup-window**- 選用。建立自動備份的每日偏好時間範圍。預設值是從 8 小時時段中隨機選取的 30 分鐘時段 AWS 區域。

  限制條件：
  + 格式必須為 `hh24:mi-hh24:mi`。
  + 必須以國際標準時間 (UTC) 表示。
  + 不得和慣用的維護時段衝突。
  + 必須至少 30 分鐘。
+ **--backup-retention-period**- 選用。自動備份保留的天數。預設值為 1.

  限制條件：
  + 必須指定最小值 1。
  + 範圍從 1 到 35。

**注意**  
只有在叢集處於「作用中」狀態時，才會進行自動備份。

**注意**  
您也可以使用 `aws docdb-elastic update-cluster`命令修改現有彈性叢集的 `preferred-backup-window`和 `backup-retention-period` 參數。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

下列`create-cluster`範例會建立 Amazon DocumentDB 彈性叢集 *sample-cluster*，其自動備份的保留期間為 *7* 天，而偏好的備份時段為 *18：00-18：30 UTC*。

針對 Linux、macOS 或 Unix：

```
aws docdb-elastic create-cluster \
     --cluster-name sample-cluster \
     --shard-capacity 2 \
     --shard-count 2 \
     --admin-user-name SampleAdmin \
     --auth-type PLAIN_TEXT \
     --admin-user-password SamplePass123! \
     --preferred-backup-window 18:00-18:30 \ 
     --backup-retention-period 7
```

針對 Windows：

```
aws docdb-elastic create-cluster ^
     --cluster-name sample-cluster ^
     --shard-capacity 2 ^
     --shard-count 2 ^
     --admin-user-name SampleAdmin ^
     --auth-type PLAIN_TEXT ^
     --admin-user-password SamplePass123! ^
     --preferred-backup-window 18:00-18:30 ^ 
     --backup-retention-period 7
```

------

# 停止和啟動 Amazon DocumentDB 彈性叢集
<a name="elastic-cluster-stop-start"></a>

停止和啟動 Amazon DocumentDB 彈性叢集可協助您管理開發和測試環境的成本。您不需要在每次使用 Amazon DocumentDB 時建立和刪除彈性叢集，而是可以在不需要時暫時停止叢集。然後，您可以在繼續測試時再次啟動它。

**Topics**
+ [停止和啟動彈性叢集的概觀](#elastic-cluster-stop-start-overview)
+ [您可以在已停止的彈性叢集上執行的操作](#elastic-cluster-stopped-operations)

## 停止和啟動彈性叢集的概觀
<a name="elastic-cluster-stop-start-overview"></a>

在您不需要 Amazon DocumentDB 彈性叢集的期間，您可以停止叢集。一旦您需要叢集，即可隨時重新啟動它。啟動和停止可簡化彈性叢集的設定和縮減程序，這些彈性叢集用於不需要持續可用性的開發、測試或類似活動。您可以使用 AWS 管理主控台 或 AWS CLI 單一動作來停止和啟動彈性叢集。

當您的彈性叢集停止時，叢集儲存磁碟區會保持不變。您只需支付指定的保留時段內儲存、手動快照和自動備份儲存的費用。Amazon DocumentDB 會在七天後自動啟動您的彈性叢集，使其不會落後於任何必要的維護更新。當您的叢集在七天後啟動時，將會再次開始向您收取使用彈性叢集的費用。當叢集停止時，您無法查詢儲存磁碟區，因為查詢需要叢集處於可用狀態。

當 Amazon DocumentDB 彈性叢集停止時，無法以任何方式修改叢集。這包括刪除叢集。

------
#### [ Using the AWS 管理主控台 ]

下列程序說明如何在可用狀態下停止彈性叢集，或啟動已停止的彈性叢集。

**停止或啟動 Amazon DocumentDB 彈性叢集**

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)：// 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在叢集清單中，選擇您要停止或啟動之叢集名稱左側的按鈕。  
![\[叢集清單中的叢集，並選取叢集名稱左側的核取方塊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/cluster-list-ec.png)

1. 選擇 **Actions (動作)**，然後選擇您想要在叢集上執行的動作。
   + 如果您想要停止可用的叢集：

     1. 選擇**停止**。  
![\[選取停止選項的動作下拉式清單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-stop.png)

     1. 在確認對話方塊中，選擇停止叢集來確認您想要**停止彈性叢集**，或選擇**取消**以保持叢集執行。  
![\[停止叢集的確認對話方塊，底部有取消和停止叢集按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-stop-confirm.png)
   + 如果您想要啟動叢集，而叢集已停止，請選擇 **Start (啟動)**。  
![\[選取開始選項的動作下拉式清單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-start.png)

1. 監控彈性叢集的狀態。如果您啟動叢集，您可以在叢集*可用*時繼續使用叢集。如需詳細資訊，請參閱[判斷叢集的狀態](db-cluster-status.md)。  
![\[叢集資料表中顯示可用和啟動狀態的狀態欄。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/ec-starting-status.png)

------
#### [ Using the AWS CLI ]

下列程式碼範例示範如何在作用中或可用狀態下停止彈性叢集，或啟動已停止的彈性叢集。

若要使用 停止彈性叢集 AWS CLI，請使用 `stop-cluster`操作。若要啟動已停止的叢集，請使用 `start-cluster` 操作。這兩個操作均使用 `--cluster-arn` 參數。

**參數：**
+ **--cluster-arn** - 必要項目。您要停止或啟動之彈性叢集的 ARN 識別符。

**Example — 使用 停止彈性叢集 AWS CLI**  
在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。  
下列程式碼會停止 ARN 為 的彈性叢集`arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2`。  
彈性叢集必須處於作用中或可用狀態。
針對 Linux、macOS 或 Unix：  

```
aws docdb-elastic stop-cluster \
   --cluster-arn arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2
```
針對 Windows：  

```
aws docdb-elastic stop-cluster ^
   --cluster-arn arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2
```

**Example — 使用 啟動彈性叢集 AWS CLI**  
在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。  
下列程式碼會以 的 ARN 啟動彈性叢集`arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2`。  
彈性叢集目前必須停止。
針對 Linux、macOS 或 Unix：  

```
aws docdb-elastic start-cluster \
   --cluster-arn arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2
```
針對 Windows：  

```
aws docdb-elastic start-cluster ^
   --cluster-arn arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2
```

------

## 您可以在已停止的彈性叢集上執行的操作
<a name="elastic-cluster-stopped-operations"></a>

當叢集停止時，您無法修改 Amazon DocumentDB 彈性叢集的組態。您必須先啟動叢集，然後才能執行任何這類管理動作。

Amazon DocumentDB 只有在再次啟動後，才會將任何排定的維護套用至已停止的彈性叢集。七天後，Amazon DocumentDB 會自動啟動已停止的彈性叢集，使其不會落後維護狀態太久。當彈性叢集重新啟動時，您將再次開始支付叢集中的碎片費用。

當彈性叢集停止時，Amazon DocumentDB 不會執行任何自動備份，也不會延長備份保留期。

# 維護 Amazon DocumentDB 彈性叢集
<a name="elastic-cluster-maintenance"></a>

**Topics**
+ [檢視待定的彈性叢集維護動作](#view-elastic-cluster-maintenance)
+ [彈性叢集引擎更新](#elastic-cluster-engine-updates)
+ [彈性叢集作業系統更新](#elastic-cluster-os-updates)

Amazon DocumentDB 會定期對 Amazon DocumentDB 彈性叢集資源執行維護。維護通常涉及資料庫引擎的更新 （彈性叢集維護） 或彈性叢集的基礎作業系統 (OS 更新）。資料庫引擎更新是必要的修補程式，包括資料庫引擎的安全性修正、錯誤修正和增強功能。雖然大多數作業系統修補程式都是選用的，但如果您有一段時間未套用，則可能需要修補程式並自動套用，以維護您的安全狀態。因此，我們建議您在 Amazon DocumentDB 彈性叢集可用時立即套用作業系統更新。

資料庫引擎修補程式需要您讓 Amazon DocumentDB 彈性叢集短暫離線。一旦可用，這些修補程式會自動排程在 Amazon DocumentDB 彈性叢集的近期排程維護時段套用。

彈性叢集有自己的個別維護時段。您已選擇不立即套用的彈性叢集修改會在維護時段期間套用。根據預設，當您建立彈性叢集時，Amazon DocumentDB 會為您的彈性叢集指派維護時段。您可以在建立彈性叢集時選擇維護時段。您也可以隨時修改維護時段，使符合您的業務排程或實務。我們通常會建議您選擇對應用程式影響最低的維護時段 (例如，在晚上或週末)。

## 檢視待定的彈性叢集維護動作
<a name="view-elastic-cluster-maintenance"></a>

您可以使用 檢視您的彈性叢集是否可使用維護更新 AWS CLI。

如有更新可用，您可執行下列操作之一：
+ 延遲目前排程用於下一個維護時段的維護動作 （僅適用於作業系統修補程式）。
+ 立即套用維護動作。
+ 排程在下次的維護時段啟動維護動作。
+ 排程要在所選套用時段內啟動的維護動作。

維護時段會判斷待定的操作何時開始，但不限制這些操作的總執行時間。

使用下列 AWS CLI 操作來判斷待定的維護動作。列出所有待定的維護動作：

```
aws docdb-elastic list-pending-maintenance-actions
```

此操作的輸出如下所示 (JSON 格式）：

```
{
'ResourcePendingMaintenanceActions': [
    {
        'ResourceArn': 'string-arn',
        'PendingMaintenanceActionDetails': [
            {
                'Action': 'ENGINE_UPDATE',
                'AutoAppliedAfterDate': 'string',  
                'ForcedApplyDate': 'string', 
                'OptInStatus': 'string', 
                'CurrentApplyDate': 'string', 
                'Description': 'string'
            },
        ]
    },
],
'NextToken': 'string'
}
```

取得指定 上的待定維護動作 （如果有的話）`resourceArn`：

```
aws docdb-elastic get-pending-maintenance-action --resource-arn string-arn
```

此操作的輸出將會如下所示 (JSON 格式)。

```
{
    'ResourcePendingMaintenanceAction': {
        'ResourceArn': 'string-arn',
        'PendingMaintenanceActionDetails': [
            {
                'Action': 'ENGINE_UPDATE',
                'AutoAppliedAfterDate': 'string', 
                'ForcedApplyDate': 'string', 
                'OptInStatus': 'string', 
                'CurrentApplyDate': 'string',
                'Description': 'string'
            }
        ]
    }
}
```

參數：
+ `ResourceArn`- 套用待定維護動作之資源的 Amazon DocumentDB Amazon Resource Name (ARN)。
+ `Action`- 套用至資源的待定維護動作。

  有效值：
  + `ENGINE_UPDATE`
  + `ENGINE_UPGRADE`
  + `SECURITY_UPDATE`
  + `OS_UPDATE`
  + `MASTER_USER_PASSWORD_UPDATE`
+ `AutoAppliedAfterDate`- 此日期之後的第一個維護時段。在此情況下`NEXT_MAINTENANCE OPT_IN`會忽略 。
+ `ForcedApplyDate`- 無論維護時段為何都會套用。在此情況下`IMMEDIATE OPT_IN`， 會被忽略。
+ `OptInStatus`- 指定選擇加入請求類型的值，或復原選擇加入請求。無法復原 `IMMEDIATE` 類型的選擇使用請求。

  有效值：
  + `IMMEDIATE`- 立即套用維護動作。
  + `NEXT_MAINTENANCE`- 在資源的下一個維護時段套用維護動作。
  + `APPLY_ON`- 在指定的套用日期套用維護動作，無論資源的下一個維護時段為何。
  + `UNDO_OPT_IN`- 取消任何現有的請求`NEXT_MAINTENANCE`或`APPLY_ON`選擇加入請求。
+ `CurrentApplyDate`- 如果opt-in-type為 則會顯示`APPLY_ON`。
+ `Description`- 維護動作的選項描述。

## 彈性叢集引擎更新
<a name="elastic-cluster-engine-updates"></a>

使用 Amazon DocumentDB，您可以選擇何時套用維護操作。您可以使用 來決定 Amazon DocumentDB 何時套用更新 AWS CLI。

套用待定的維護動作：

```
aws docdb-elastic apply-pending-maintenance-action 
--resource-arn string-arn
--apply-action string-enum
--opt-in-type string-enum 
[--apply-on string-date-range]
```

參數：
+ **--resource-arn**- 套用待定維護動作之資源的 Amazon DocumentDB Amazon Resource Name (ARN)。
+ **--apply-action**- 要套用至此資源的待定維護動作。

  有效值：
  + `ENGINE_UPDATE`
  + `ENGINE_UPGRADE`
  + `SECURITY_UPDATE`
  + `OS_UPDATE`
  + `MASTER_USER_PASSWORD_UPDATE`
+ **--opt-in-type**- 指定選擇加入請求類型的值，或復原選擇加入請求。無法復原 `IMMEDIATE` 類型的選擇使用請求。

  有效值：
  + `IMMEDIATE`- 立即套用維護動作。
  + `NEXT_MAINTENANCE`- 在資源的下一個維護時段套用維護動作。
  + `APPLY_ON`- 在指定的套用日期套用維護動作，無論資源的下一個維護時段為何。
  + `UNDO_OPT_IN`- 取消任何現有的請求`NEXT_MAINTENANCE`或`APPLY_ON`選擇加入請求。
+ **[--apply-on]**- 如果opt-in-type為 則為必要`APPLY_ON`。格式：`yyyy/MM/dd HH:mm-yyyy/MM/dd HH:mm`（此選項使用 UTC 時間。 開始時間可以是未來任何時間，從最少 30 分鐘到最多 14 天，或對待定動作強制/套用日期，以較早者為準。 從開始到結束的時間範圍最短可達 30 分鐘，最長可達 8 小時。)

此操作的輸出如下所示 (JSON 格式）：

```
{
 'ResourcePendingMaintenanceAction': {
        'ResourceArn': 'string-arn',
        'PendingMaintenanceActionDetails': [
            {
                'Action': 'SECURITY_UPDATE',
                'AutoAppliedAfterDate': 'string',
                'ForcedApplyDate': 'string', 
                'OptInStatus': 'IMMEDIATE', 
                'CurrentApplyDate': 'string', 
                'Description': 'string'
            },
        ]
 }
}
```

參數：
+ `ResourceArn`- 套用待定維護動作之資源的 Amazon DocumentDB Amazon Resource Name (ARN)。
+ `Action`- 套用至資源的待定維護動作。

  有效值：
  + `ENGINE_UPDATE`
  + `ENGINE_UPGRADE`
  + `SECURITY_UPDATE`
  + `OS_UPDATE`
  + `MASTER_USER_PASSWORD_UPDATE`
+ `AutoAppliedAfterDate`- 此日期之後的第一個維護時段。在此情況下`NEXT_MAINTENANCE OPT_IN`會忽略 。
+ `ForcedApplyDate`- 無論維護時段為何都會套用。在此情況下`IMMEDIATE OPT_IN`， 會被忽略。
+ `OptInStatus`- 指定選擇加入請求類型的值，或復原選擇加入請求。無法復原 `IMMEDIATE` 類型的選擇使用請求。

  有效值：
  + `IMMEDIATE`- 立即套用維護動作。
  + `NEXT_MAINTENANCE`- 在資源的下一個維護時段套用維護動作。
  + `APPLY_ON`- 在指定的套用日期套用維護動作，無論資源的下一個維護時段為何。
  + `UNDO_OPT_IN`- 取消任何現有的請求`NEXT_MAINTENANCE`或`APPLY_ON`選擇加入請求。
+ `CurrentApplyDate`- 如果opt-in-type為 則會顯示`APPLY_ON`。
+ `Description`- 維護動作的選項描述。

### 套用日期
<a name="w2aac35c29c19c13c21"></a>

每個維護動作都有各自的套用日期，您可以在描述待定維護動作時找到。當您從 讀取待定維護動作的輸出時 AWS CLI，會列出三個日期：
+ `CurrentApplyDate`- 將立即或在下一個維護時段套用維護動作的日期。如果維護是選用的，則此值可以是 null。
+ `ForcedApplyDate`- 自動套用維護的日期，與您的維護時段無關。
+ `AutoAppliedAfterDate`- 在叢集的維護時段期間套用維護的日期。

### 使用者建立的維護動作
<a name="w2aac35c29c19c13c23"></a>

身為 Amazon DocumentDBelastic 叢集使用者，您可以啟動叢集組態的更新。

**更新叢集主要密碼**

```
aws docdb-elastic update-cluster 
--cluster-arn string-arn
[--admin-user-password string]
[--auth-type string-enum]
[--apply-method string-enum]
[--apply-on string-date-range] 
#... other parameters of the API that follow here are not relevant for this configuration
```

參數：
+ **--cluster-arn**- 要套用維護動作之資源的 Amazon DocumentDB Amazon Resource Name (ARN)。
+ **[--admin-user-password]**- 與管理員使用者相關聯的密碼。
+ **[--auth-type]**- 用來決定在何處擷取用於存取彈性叢集之密碼的身分驗證類型。有效類型為 `PLAIN_TEXT`或 `SECRET_ARN`。
+ **[--apply-method]**- 指定所套用方法類型的值。允許的值為 `IMMEDIATE` 和 `APPLY_ON`。預設值為 `IMMEDIATE`。
+ **[--apply-on]**- 如果 `apply-method`是 則為必要`APPLY_ON`。格式：`yyyy/MM/dd HH:mm-yyyy/MM/dd HH:mm`（此選項使用 UTC 時間。 開始時間可以是未來任何時間，從最少 30 分鐘到最多 14 天。 從開始到結束的時間範圍最短可達 30 分鐘，最長可達 8 小時。)

此操作的輸出如下所示 (JSON 格式）：

```
{
 'ResourcePendingMaintenanceAction': {
        'ResourceArn': 'string-arn',
        'PendingMaintenanceActionDetails': [
            {
                'Action': 'MASTER_USER_PASSWORD_UPDATE',
                'OptInStatus': 'APPLY_ON', 
                'CurrentApplyDate': 'string', 
                'Description': 'string'
            },
        ]
 }
}
```

### 變更 Amazon DocumentDB 維護時段
<a name="w2aac35c29c19c13c25"></a>

維護時段應落在使用量最低的時段，因此可能需要不時進行變更。只有在套用系統變更 （例如擴展儲存操作變更） 且需要中斷時，您的彈性叢集才會在此期間無法使用。它只能在進行必要變更所需的最短時間內無法使用。

預設值是從每個 Amazon Web Services 區域的 8 小時時段中隨機選取的 30 分鐘時段，該時段隨機發生在一週中的某一天。

若要變更維護時段，請參閱 [修改彈性叢集組態](elastic-managing.md#elastic-modify)。

## 彈性叢集作業系統更新
<a name="elastic-cluster-os-updates"></a>

Amazon DocumentDB 彈性叢集偶爾需要作業系統更新。Amazon DocumentDB 會將作業系統升級至較新的版本，以改善資料庫效能和客戶的整體安全狀態。作業系統更新不會變更 Amazon DocumentDB 彈性叢集的叢集引擎版本。

Amazon DocumentDB 彈性叢集的大多數作業系統更新都是選用的，而且沒有要套用它們的設定日期。不過，如果您有一段時間沒有套用這些更新，它們最終可能會變成必要，並在叢集維護時段期間自動套用。這是為了協助維護資料庫的安全狀態。為了避免任何意外停機，建議您在 Amazon DocumentDB 彈性叢集可用時立即套用作業系統更新，並根據您的業務需求在方便的時間設定叢集維護時段。

# Amazon DocumentDB 彈性叢集的靜態資料加密
<a name="elastic-encryption"></a>

下列主題可協助您了解、建立和監控 Amazon DocumentDB 彈性叢集的 AWS Key Management Service 加密金鑰：

**Topics**
+ [Amazon DocumentDB 彈性叢集如何在 中使用授予 AWS KMS](#ec-encrypt-grants)
+ [建立客戶自管金鑰](#ec-encrypt-create)
+ [監控 Amazon DocumentDB 彈性叢集的加密金鑰](#ec-encrypt-monitor)
+ [進一步了解](#ec-encrypt-learn)

Amazon DocumentDB 彈性叢集會自動與 AWS Key Management Service (AWS KMS) 整合以進行金鑰管理，並使用稱為信封加密的方法來保護您的資料。如需封套加密的詳細資訊，請參閱 *AWS Key Management Service 開發人員指南*中的[封套加密](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)。

 AWS KMS key 是金鑰的邏輯表示法。KMS 金鑰包含金鑰 ID、建立日期、說明和金鑰狀態等中繼資料。KMS 金鑰也包含可用來加密和解密資料的金鑰材料。如需 KMS 金鑰的詳細資訊，請參閱《*AWS Key Management Service 開發人員指南*》中的 [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)。

Amazon DocumentDB 彈性叢集支援使用兩種類型的金鑰加密：
+ **AWS 擁有的金鑰 —** Amazon DocumentDB 彈性叢集預設使用這些金鑰自動加密個人身分識別資料。您無法檢視、管理或使用擁有 AWS的金鑰，或稽核其使用方式。不過，您不需要採取任何動作或變更任何程式，即可保護加密您資料的金鑰。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的 [AWS 擁有的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。
+ **客戶受管金鑰 —** 您建立、擁有和管理 AWS KMS keys 的對稱。您可以完全控制此層加密，因此能執行以下任務：
  + 建立和維護金鑰政策
  + 建立和維護 IAM 政策和授予操作
  + 啟用和停用金鑰政策
  + 輪換金鑰密碼編譯資料
  + 新增 標籤
  + 建立金鑰別名
  + 安排金鑰供刪除

  如需更多資訊，請參閱 *AWS Key Management Service 開發人員指南*中的[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**重要**  
您必須使用對稱加密 KMS 金鑰來加密叢集，因為 Amazon DocumentDB 僅支援對稱加密 KMS 金鑰。請勿使用非對稱 KMS 金鑰來嘗試加密 Amazon DocumentDB 彈性叢集中的資料。如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的 中的[非對稱金鑰 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)。  
如果 Amazon DocumentDB 無法再存取叢集的加密金鑰，例如，當金鑰的存取遭到撤銷時，加密的叢集會進入結束狀態。在此情況下，您只能從備份中還原叢集。對於 Amazon DocumentDB，備份一律啟用 1 天。此外，如果您停用加密 Amazon DocumentDB 叢集的 金鑰，最終將會失去該叢集的讀取和寫入存取權。當 Amazon DocumentDB 遇到由無法存取的金鑰加密的叢集時，它會讓叢集進入終端狀態。在此情況下，該叢集再也無法使用，而且無法復原資料庫的目前狀態。若要還原叢集，您必須重新啟用對 Amazon DocumentDB 加密金鑰的存取，然後從備份還原叢集。

**重要**  
建立加密叢集之後，就無法變更該叢集的 KMS 金鑰。建立加密的彈性叢集之前，請務必判斷您的加密金鑰需求。

## Amazon DocumentDB 彈性叢集如何在 中使用授予 AWS KMS
<a name="ec-encrypt-grants"></a>

Amazon DocumentDB 彈性叢集需要[授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)才能使用客戶受管金鑰。

當您建立使用客戶受管金鑰加密的叢集時，Amazon DocumentDB 彈性叢集會透過傳送`CreateGrant`請求至 來代表您建立授予 AWS KMS。中的授予 AWS KMS 用於授予 Amazon DocumentDB 彈性叢集存取客戶帳戶中 KMS 金鑰的權限。

Amazon DocumentDB 彈性叢集需要授予 ，才能將客戶受管金鑰用於下列內部操作：
+ 傳送`DescribeKey`請求至 ， AWS KMS 以驗證在建立追蹤器或地理圍欄集合時輸入的對稱客戶受管 KMS 金鑰 ID 是否有效。
+ 傳送`GenerateDataKey`請求至 AWS KMS ，以產生由客戶受管金鑰加密的資料金鑰。
+ 將`Decrypt`請求傳送至 AWS KMS 以解密加密的資料金鑰，以便用來加密您的資料。
+ 您可以隨時撤銷授予的存取權，或移除服務對客戶受管金鑰的存取權。如果您這麼做，Amazon DocumentDB 彈性叢集將無法存取客戶受管金鑰加密的任何資料，這會影響相依於該資料的操作。

## 建立客戶自管金鑰
<a name="ec-encrypt-create"></a>

您可以使用 AWS 管理主控台 或 AWS KMS API 來建立對稱客戶受管金鑰。

**建立對稱客戶受管金鑰**

請依照《AWS Key Management Service 開發人員指南》**中[建立對稱客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)的步驟進行。

**金鑰政策**

金鑰政策會控制客戶受管金鑰的存取權限。每個客戶受管金鑰都必須只有一個金鑰政策，其中包含決定誰可以使用金鑰及其使用方式的陳述式。在建立客戶受管金鑰時，可以指定金鑰政策。如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》[AWS Key Management Service 概觀](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)中的 KMS 金鑰存取資訊。

若要將客戶受管金鑰與 Amazon DocumentDB 彈性叢集資源搭配使用，必須在金鑰政策中允許下列 API 操作：
+ [https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)：新增客戶受管金鑰的授權。授予控制對指定 KMS 金鑰的存取權，以允許存取 Amazon Location Service 所需的授予操作。如需使用授與的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的 [中的授與 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。
+ [https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) – 提供客戶受管金鑰詳細資訊，以允許 Docdb Elastic 驗證金鑰。
+ [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) – 允許 Docdb Elastic 使用存放的加密資料金鑰來存取加密的資料。
+ [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) – 允許 Docdb Elastic 產生加密的資料金鑰並將其儲存，因為資料金鑰不會立即用於加密。

如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*[》中的金鑰政策中的 AWS 服務許可](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-services.html)和[金鑰存取疑難排解](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html)。

**透過 IAM 政策限制客戶受管金鑰存取**

除了 KMS 金鑰政策之外，您也可以在 IAM 政策中限制 KMS 金鑰許可。

您可以透過各種方式使 IAM 政策更加嚴格。例如，若要允許客戶受管金鑰僅用於源自 Amazon DocumentDB 彈性叢集的請求，您可以使用 [`kms:ViaService`條件金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service)搭配 `docdb-elastic.<region-name>.amazonaws.com`值。

如需詳細資訊，請參閱 *AWS Key Management Service 開發人員指南*中的[允許其他帳戶中的使用者使用 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。

## 監控 Amazon DocumentDB 彈性叢集的加密金鑰
<a name="ec-encrypt-monitor"></a>

當您使用 AWS KMS key 客戶受管金鑰搭配 Docdb Elastic 資源時，您可以使用 AWS CloudTrail 或 Amazon CloudWatch Logs 來追蹤 Docdb Elastic 傳送的請求 AWS KMS。

下列範例是 `CreateGrant`、`Decrypt`、 `GenerateDataKeyWithoutPlainText`和 AWS CloudTrail 的事件`DescribeKey`，用於監控 Amazon DocumentDB 彈性叢集呼叫 AWS KMS key 的操作，以存取客戶受管金鑰加密的資料：

------
#### [ CreateGrant ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE3",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01",
                "accountId": "111122223333",
                "userName": "Sampleuser01"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-05-09T23:04:20Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "docdb-elastic.amazonaws.com"
    },
    "eventTime": "2023-05-09T23:55:48Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "docdb-elastic.amazonaws.com",
    "userAgent": "docdb-elastic.amazonaws.com",
    "requestParameters": {
        "retiringPrincipal": "docdb-elastic.us-east-1.amazonaws.com",
        "granteePrincipal": "docdb-elastic.us-east-1.amazonaws.com",
        "operations": [
            "Decrypt",
            "Encrypt",
            "GenerateDataKey",
            "GenerateDataKeyWithoutPlaintext",
            "ReEncryptFrom",
            "ReEncryptTo",
            "CreateGrant",
            "RetireGrant",
            "DescribeKey"
        ],
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "responseElements": {
        "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ GenerateDataKey ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE3",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01",
                "accountId": "111122223333",
                "userName": "Sampleuser01"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-05-10T18:02:59Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "docdb-elastic.amazonaws.com"
    },
    "eventTime": "2023-05-10T18:03:25Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "docdb-elastic.amazonaws.com",
    "userAgent": "docdb-elastic.amazonaws.com",
    "requestParameters": {
        "keySpec": "AES_256",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ Decrypt ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE3",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01",
                "accountId": "111122223333",
                "userName": "Sampleuser01"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-05-10T18:05:49Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "docdb-elastic.amazonaws.com"
    },
    "eventTime": "2023-05-10T18:06:19Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "docdb-elastic.amazonaws.com",
    "userAgent": "docdb-elastic.amazonaws.com",
    "requestParameters": {
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ DescribeKey ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE3",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01",
                "accountId": "111122223333",
                "userName": "Sampleuser01"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-05-09T23:04:20Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "docdb-elastic.amazonaws.com"
    },
    "eventTime": "2023-05-09T23:55:48Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "DescribeKey",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "docdb-elastic.amazonaws.com",
    "userAgent": "docdb-elastic.amazonaws.com",
    "requestParameters": {
        "keyId": "alias/SampleKmsKey"
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------

## 進一步了解
<a name="ec-encrypt-learn"></a>

下列資源提供靜態資料加密的詳細資訊：
+ 如需 AWS KMS 概念的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[AWS Key Management Service 基本概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。
+ 如需 AWS KMS 安全性的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的 [的安全最佳實務 AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html)。

# 彈性叢集中的服務連結角色
<a name="elastic-service-linked-roles"></a>

Amazon DocumentDB 彈性叢集使用 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Amazon DocumentDB 彈性叢集的唯一 IAM 角色類型。服務連結角色是由 Amazon DocumentDB 彈性叢集預先定義，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓您更輕鬆地使用 Amazon DocumentDB 彈性叢集，因為您不必手動新增必要的許可。Amazon DocumentDB 彈性叢集會定義其服務連結角色的許可，除非另有定義，否則只有 Amazon DocumentDB 彈性叢集可以擔任其角色。定義的許可包括信任政策和許可政策，並且該許可政策不能附加到任何其他 IAM 實體。您必須先刪除角色的相關資源，才能刪除角色。這可保護您的 Amazon DocumentDB 彈性叢集資源，因為您不會不小心移除存取資源的許可。

如需有關支援服務連結角色的其他 服務的資訊，請參閱[AWS 使用 IAM 的服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並在服務**連結角色**欄中尋找標記為**是**的服務。選擇具有連結的是，以檢視該服務的服務連結角色文件。

## 彈性叢集的服務連結角色許可
<a name="permissions"></a>

Amazon DocumentDB 彈性叢集使用名為 的服務連結角色`AWS ServiceRoleForDocDB-Elastic`，以允許 Amazon DocumentDB 彈性叢集代表您的叢集呼叫 AWS 服務。

此服務連結角色具有名為 `AmazonDocDB-ElasticServiceRolePolicy` 的許可政策，該政策會授予此角色在帳戶中操作的許可。角色許可政策允許 Amazon DocumentDB 彈性叢集對指定的資源完成下列動作：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": [
                        "AWS/DocDB-Elastic"
                    ]
                }
            }
        }
    ]
}
```

------

**注意**  
您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如果您遇到以下錯誤訊息：**「無法建立資源。請確認您擁有建立服務連結角色的許可。否則，請等待稍後再試一次。」**，請確定您已啟用下列許可：

```
{
"Action": "iam:CreateServiceLinkedRole",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::*:role/aws-service-role/docdb-elastic.amazonaws.com/AWSServiceRoleForDocDB-Elastic",
    "Condition": {
"StringLike": {
"iam:AWSServiceName":"docdb-elastic.amazonaws.com"
        }
    }
}
```

如需詳細資訊，請參閱《 *AWS Identity and Access Management 使用者指南*》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

### 為 Amazon DocumentDB 彈性叢集建立服務連結角色
<a name="w2aac35c33c11c19"></a>

您不需要手動建立服務連結角色，當您建立資料庫執行個體時，Amazon DocumentDB 彈性叢集會為您建立服務連結角色。

### 編輯 Amazon DocumentDB 彈性叢集的服務連結角色
<a name="w2aac35c33c11c21"></a>

Amazon DocumentDB 彈性叢集不允許您編輯`AWS ServiceRoleForDocDB-Elastic`服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《 *AWS Identity and Access Management 使用者指南*》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

#### 刪除 Amazon DocumentDB 彈性叢集的服務連結角色
<a name="w2aac35c33c11c21b5b1"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。不過您必須先刪除您的所有 叢集，才能刪除服務連結角色。

##### 清除服務連結角色
<a name="w2aac35c33c11c21b5b1b5"></a>

您必須先確認服務連結角色沒有作用中的工作階段，並移除該角色使用的資源，之後才能使用 IAM 將其刪除。

若要在 IAM 主控台中檢查服務連結角色是否具有作用中工作階段：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/iam/)並開啟 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**角色**。然後選擇 `AWS ServiceRoleForDocDB-Elastic` 角色的名稱 (而非核取方塊)。

1. 在所選角色的 **Summary** (摘要) 頁面中，選擇 **Access Advisor (存取 Advisor)** 分頁。

**注意**  
如果您不確定 Amazon DocumentDB 彈性叢集是否正在使用`AWS ServiceRoleForDocDB-Elastic`角色，您可以嘗試刪除角色。如果服務使用 角色，則刪除會失敗，而且您可以檢視使用該角色 AWS 區域 的 。如果服務正在使用該角色，您必須先等到工作階段結束，才能刪除該角色。您無法撤銷服務連結角色的工作階段。  
如果您想要移除`AWS ServiceRoleForDocDB-Elastic`角色，您必須先刪除所有叢集。

##### 刪除您的所有叢集
<a name="w2aac35c33c11c21b5b1b7"></a>

若要在 Amazon DocumentDB 主控台中刪除叢集：

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。

1. 選擇您要刪除的叢集。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

1. 如果系統提示您**建立最終快照？**，請選擇**是**或**否**。

1. 如果您在前一個步驟中選擇 **Yes (是)**，則對於 **Final snapshot name (最終快照名稱)**，輸入您的最終快照名稱。

1. 選擇 **刪除**。

**注意**  
您可以使用 IAM 主控台、IAM CLI 或 IAM API 刪除 `AWS ServiceRoleForDocDB-Elastic` 服務連結角色。如需詳細資訊，請參閱《 *AWS Identity and Access Management 使用者指南*》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。