

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

# 開始使用 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)。