本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開始使用 Amazon DocumentDB 彈性叢集
此入門章節將逐步說明如何建立和查詢您的第一個彈性叢集。有許多方法可以連接並開始使用彈性叢集。本指南使用AWS Cloud9一個基於 Web 的終端機來連接和查詢您的彈性集群使用 mongo shell 直接 AWS Management Console從.
設定
如果您想要透過建立與 Amazon EC2 執行個體的 SSH 連線,從本機電腦連線到 Amazon DocumentDB,請參閱使用 Amazon EC2 連線。
必要條件
在建立第一個 Amazon DocumentDB 叢集之前,您必須執行下列動作:
- 創建一個 Amazon Web Services(AWS)帳戶
-
在您可以開始使用 Amazon DocumentDB 之前,您必須有一個 Amazon Web Services(AWS)帳戶。該 AWS 帳戶是免費的。您僅需按使用的服務和資源量付費。
如果您沒有 AWS 帳戶,請完成以下步驟來建立一個。
若要註冊成為 AWS 帳戶
請遵循線上指示進行。
部分註冊程序需接收來電,並在電話鍵盤輸入驗證碼。
當您註冊一個時 AWS 帳戶,將創建AWS 帳戶根使用者一個。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。安全性最佳做法是將管理存取權指派給使用者,並僅使用 root 使用者來執行需要 root 使用者存取權的工作。
- 設定所需的 AWS Identity and Access Management (IAM) 許可。
-
存取管理 Amazon DocumentDB 資源 (例如叢集、執行個體和叢集參數群組) 需要 AWS 可用來驗證請求的登入資料。如需詳細資訊,請參閱 Amazon DocumentDB 的 Identity and Access Management。
-
在的搜尋列中 AWS Management Console,輸入 IAM,然後在下拉式功能表中選取 IAM。
-
進入 IAM 主控台後,從導覽窗格中選取 [使用者]。
-
選擇您的用戶名。
-
點擊按鈕添加權限.
-
選取直接連接現有政策。
-
AmazonDocDBFullAccess
在搜索欄中鍵入並在搜索結果中出現時選擇它。 -
單擊底部顯示「下一步:查看」的藍色按鈕。
-
點擊底部顯示「添加權限」的藍色按鈕。
-
- 創建一個 Amazon Virtual Private Cloud(Amazon VPC)
-
只有在您還沒有預設的 Amazon VPC 時,才需要執行此步驟。如果不這樣做,請完成 Amazon VPC 使用者指南中的 Amazon VPC 入門步驟 1。這將需要不到五分鐘。
步驟 1:建立彈性叢集
在本節中,我們將說明如何使用 AWS Management Console 或 AWS CLI 與下列指示一起建立全新的彈性叢集。
步驟 2:建立 AWS Cloud9 環境
AWS Cloud9 提供一個基於 Web 的終端機,您可以使用蒙戈殼層連接和查詢您的 Amazon DocumentDB 彈性叢集。
注意
注意:您的 AWS Cloud9 環境必須與執行個體位於相同的安全性群組中。您可以在 Amazon EC2 主控台中變更安全群組。
-
使用您的 AWS 帳戶並存取 AWS Management Console.
-
導覽至主AWS Cloud9 控台。您可以在「搜尋」欄位中輸入「Cloud9」來尋找它。
-
在AWS Cloud9環境首頁上,選擇建立環境。
-
在名稱環境頁面的名稱欄位中,輸入您選擇的名稱。
選擇 下一個步驟。
-
在 [環境類型] 區段下的 [環境設定] 中,選取 [為環境建立新的 EC2 執行個體 (直接存取)]。
在「執行個體類型」區段下,為您的網路選取適當的執行個體類型。
在「平台」區段下,選取 Amazon Linux 2 (建議使用)。
-
請展開 Network settings (advanced) (網路設定 (進階))。
選擇 VPC 和您在建立彈性叢集時使用的其中一個子網路。
選擇 下一個步驟。
-
檢閱您的 AWS Cloud9 組態。
如果您的組態正確,請選擇 [建立環境]。
第 3 步:安裝蒙戈外殼
一旦您的 AWS Cloud9 環境準備就緒,您就可以連線到叢集了。接下來,在您在步驟 3 中創建的 AWS Cloud9 環境中安裝 mongo 外殼。mongo shell 是一個命令行實用程序,用於連接和查詢彈性集群。
如果您的 AWS Cloud9 環境仍然從步驟 3 開啟,請返回該環境並跳至指令 3。如果您導覽離開您的 AWS Cloud9 環境,請在 AWS Cloud9 主控台的您的環境下,尋找標有您在上一個步驟中設定之名稱的環境。選擇「開啟 IDE」。
-
在命令提示字元中,使用下列命令建立儲存庫檔案:
echo -e "[mongodb-org-4.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
-
完成後,請使用以下命令安裝 mongo 外殼:
sudo yum install -y mongodb-org-shell
步驟 4:Connect 到新的彈性叢集
使用您在步驟 4 中安裝的 mongo 外殼 Connect 到您的叢集。
-
在 Amazon DocumentDB 理主控台的叢集下,找到您的叢集。依角色排序,以顯示具有彈性叢集角色的所有叢集。
-
選取叢集識別碼以選擇您建立的叢集。從連線和安全性,複製您的端點並將其貼到您的 AWS Cloud9 環境中。
-
連接後,您應該會看到以下輸出:
第 5 步:分片您的收藏; 插入和查詢數據
彈性群集增加了對 Amazon DocumentDB 中的分片支持。現在您已連接到叢集,您可以分片叢集、插入資料並執行一些查詢。
-
若要分片集合,請輸入下列內容:
sh.shardCollection("db.Employee1" , { "Employeeid" : "hashed" })
-
若要插入單一文件,請輸入下列內容:
db.Employee1.insert({"Employeeid":1, "Name":"Joe", "LastName": "Bruin", "level": 1 })
將顯示以下輸出:
WriteResult({ "nInserted" : 1 })
-
若要讀取您撰寫的文件,請輸入
findOne()
指令 (它會傳回單一文件):db.Employee1.findOne()
將顯示以下輸出:
{ "_id" : ObjectId("61f344e0594fe1a1685a8151"), "EmployeeID" : 1, "Name" : "Joe", "LastName" : "Bruin", "level" : 1 }
-
若要執行更多查詢,請考慮使用遊戲設定檔使用案例。首先,將幾個條目插入到標題為「員工」的集合中。輸入下列資料:
db.Employee1.insertMany([ { "Employeeid" : 1, "name" : "Matt", "lastname": "Winkle", "level": 12}, { "Employeeid" : 2, "name" : "Frank", "lastname": "Chen", "level": 2}, { "Employeeid" : 3, "name" : "Karen", "lastname": "William", "level": 7}, { "Employeeid" : 4, "name" : "Katie", "lastname": "Schaper", "level": 3} ])
將顯示以下輸出:
{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }
-
若要傳回設定檔集合中的所有文件,請輸入
find
() 指令:db.Employee1.find()
顯示您在步驟 4 中輸入的資料。
-
要查詢單個文檔,請包括一個過濾器(例如:「Katie」)。輸入下列資料:
db.Employee1.find({name: "Katie"})
將顯示以下輸出:
{ "_id" : 4, "name" : "Katie", "lastname": "Schaper", "level": 3}
-
若要尋找輪廓並加以修改,請輸入
findAndModify
指令。在這個例子中,員工「馬特」被賦予的「14」更高的水平:db.Employee1.findAndModify({ query: { "Employeeid" : 1, "name" : "Matt"}, update: { "Employeeid" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 14 } })
會顯示以下輸出 (請注意,圖層尚未變更):
{ "_id" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 12, }
-
若要驗證層級提升,請輸入下列查詢:
db.Employee1.find({name: "Matt"})
將顯示以下輸出:
{ "_id" : 1, "name" : "Matt", "lastname" : "winkle", "level" : 14 }