本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自動連接 Amazon EC2
主題
在 EC2 執行個體和新的 Amazon DocumentDB 資料庫之間設定連線之前,請確定您符合中所述的要求與 EC2 執行個體自動連線的概要。如果您在設定連線之後變更安全群組,變更可能會影響 EC2 執行個體和 Amazon DocumentDB 資料庫之間的連線。
注意
您只能使用 自動設定 EC2 執行個體與 Amazon DocumentDB 資料庫之間的連線 AWS Management Console。您無法使用 AWS CLI 或 Amazon DocumentDB API 自動設定連線。
自動將 EC2 執行個體連線至新的 Amazon DocumentDB 資料庫
下列程序假設您已完成 先決條件主題中的步驟。
步驟
步驟 1:建立 Amazon EC2 執行個體
在此步驟中,您將在稍後用來佈建 Amazon DocumentDB 叢集的相同區域和 Amazon VPC 中建立 Amazon EC2 執行個體。 Amazon DocumentDB
-
在 Amazon EC2 主控台上,選擇啟動執行個體。
-
在名稱和標籤區段的名稱欄位中輸入名稱或識別符。
-
在 Amazon Machine Image (AMI) 下拉式清單中,找到 Amazon Linux 2 AMI 並加以選擇。
-
在執行個體類型下拉式清單中尋找並選擇 t3.micro。
-
在金鑰對 (登入) 區段中,輸入現有金鑰對的識別符,或選擇建立新的金鑰對。
您必須提供 Amazon EC2 金鑰對。
如果您有 Amazon EC2 金鑰對:
-
選取金鑰對,從清單中選擇金鑰對。
-
您必須已有私有金鑰檔案 (.pem 或 .ppk 檔案) 可供登入您的 Amazon EC2 執行個體。
如果您沒有 Amazon EC2 金鑰對:
-
選擇建立新金鑰對,即會顯示建立金鑰對對話方塊。
-
在金鑰對名稱欄位中輸入名稱。
-
選擇金鑰對類型和私有金鑰檔案格式。
-
選擇 Create key pair (建立金鑰對)。
注意
基於安全考量,強烈建議使用金鑰對來連接您的 EC2 執行個體的 SSH 和網際網路。
-
-
選用:在網路設定區段的防火牆 (安全群組) 下,選擇建立安全群組或選取現有安全群組。
如果您選擇選取現有的安全群組,請從通用安全群組下拉式清單中選取一個。
如果您選擇建立新的安全群組,請檢查所有流量允許適用於 EC2 連線的規則。
-
在摘要區段中,檢閱您的 EC2 組態,如果正確,請選擇啟動執行個體。
步驟 2:建立 Amazon DocumentDB 叢集
佈建 Amazon EC2 執行個體時,您將建立 Amazon DocumentDB 叢集。
-
導覽至 Amazon DocumentDB 主控台,然後從導覽窗格中選擇叢集。
-
選擇 Create (建立)。
-
將叢集類型設定保留為執行個體型叢集的預設值。
-
針對執行個體數量,選擇 1。這將最大限度地降低成本。將其他設定保留為預設值。
-
針對連線,選擇連線至 EC2 運算資源。這是您在步驟 1 中建立的 EC2 執行個體。
注意
連線至 EC2 運算資源會自動為 EC2 運算資源連線至 Amazon DocumentDB 叢集建立安全群組。當您完成建立叢集,並想要查看新建立的安全群組時,請導覽至叢集清單,然後選擇叢集的識別符。在連線與安全索引標籤中,前往安全群組,並在安全群組名稱 (ID) 下尋找您的群組。它將包含您的叢集名稱,看起來類似:
docdb-ec2-docdb-2023-12-11-21-33-41:i-0e4bb09985d2bbc4c (sg-0238e0b0bf0f73877)
。 -
在身分驗證區段中,輸入主要使用者的使用者名稱,然後選擇自我管理。輸入密碼,然後確認。
如果您改為選擇 中的受管 AWS Secrets Manager,請參閱 使用 Amazon DocumentDB 和 進行密碼管理 AWS Secrets Manager 以取得詳細資訊。
-
選擇 建立叢集。
步驟 3:連線至您的 Amazon EC2 執行個體
若要安裝 mongo shell,您必須先連線到 Amazon EC2 執行個體。安裝 mongo shell 可讓您連線至 並查詢 Amazon DocumentDB 叢集。請完成下列步驟:
-
在 Amazon EC2 主控台上,導覽至您的執行個體,並查看您剛建立的執行個體是否正在執行。如果是,請按一下執行個體 ID 來選取執行個體。
-
選擇連線。
-
您的連線方法有四個標籤選項:Amazon EC2 Instance Connect、Session Manager、SSH 用戶端或 EC2 序列主控台。您必須選擇一個,並遵循其指示。完成後,請選擇連線。
注意
如果您的 IP 地址在您開始此演練後變更,或者您稍後又返回您的環境,您必須更新demoEC2
安全群組傳入規則,以啟用來自新 API 地址的傳入流量。
步驟 4:安裝 MongoDB Shell
您現在可以安裝 MongoDB shell,這是您用來連接和查詢 Amazon DocumentDB 叢集的命令列公用程式。MongoDB shell 目前有兩種版本:最新版本 mongosh 和舊版 mongo shell。
重要
Amazon DocumentDB 目前不支援的 NodeJS 使用 IAM 身分進行身分驗證 驅動程式有已知的限制。限制包括最新的 MongoDB shell,mongosh。若要透過 Amazon DocumentDB 支援 IAM 身分驗證,建議使用 MongoDB 5.0 shell。解決限制後,NodeJS 驅動程式支援將會更新。
請依照下列指示,為您的作業系統安裝 MongoDB shell。
步驟 5:管理 Amazon DocumentDB TLS
使用下列程式碼下載 Amazon DocumentDB 的 CA 憑證: wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
注意
任何新的 Amazon DocumentDB 叢集預設都會啟用 Transport Layer Security (TLS)。如需詳細資訊,請參閱管理 Amazon DocumentDB 叢集 TLS 設定。
步驟 6:連線至您的 Amazon DocumentDB 叢集
-
在 Amazon DocumentDB 主控台的叢集下,找到您的叢集。按一下該叢集的叢集識別符,選擇您建立的叢集。
-
在連線和安全性索引標籤中,找到連線方塊中具有 mongo shell 的連線至此叢集:
複製提供的連線字串,並將其貼到您的終端機。
對其進行下列變更:
請確定字串中有正確的使用者名稱。
省略,
<insertYourPassword>
以便在連線時 mongo shell 提示您輸入密碼。選用:如果您使用 IAM 身分驗證,或使用舊版 MongoDB shell,請修改您的連線字串,如下所示:
mongo --ssl --host mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1.docdb.amazonaws.com:27017 --sslCAFile global-bundle.pem --username SampleUser1 --password
mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1
將 取代為來自叢集的相同資訊。
-
在終端機中按 Enter。系統會提示您輸入密碼。輸入您的密碼。
-
當您輸入密碼並看到
rs0 [direct: primary] <env-name>>
提示時,您已成功連線到 Amazon DocumentDB 叢集。
連線時發生問題? 請參閱對 Amazon DocumentDB 進行故障診斷。
步驟 7:插入和查詢資料
現在您已連線至叢集,您可以執行一些查詢,以熟悉使用文件資料庫。
-
若要插入單一文件,請輸入下列項目:
db.collection.insertOne({"hello":"DocumentDB"})
您會收到下列輸出:
{ acknowledged: true, insertedId: ObjectId('673657216bdf6258466b128c') }
-
您可以使用
findOne()
命令讀取您撰寫的文件 (因為它只會傳回單一文件)。輸入下列項目:db.collection.findOne()
您會收到下列輸出:
{ "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
-
若要執行其他一些查詢,請考慮遊戲設定檔使用案例。首先,將幾個項目插入標題為 的集合
profiles
。輸入下列項目: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': 1, '1': 2, '2': 3, '3': 4 } }
-
使用
find()
命令來傳回設定檔集合中的所有文件。輸入下列項目:db.profiles.find()
您會收到符合您在步驟 3 中輸入之資料的輸出。
-
使用篩選條件對單一文件使用查詢。輸入下列項目:
db.profiles.find({name: "Katie"})
您會收到下列輸出:
{ "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
-
現在,讓我們嘗試尋找設定檔並使用
findAndModify
命令修改它。我們會為使用者 Matt 提供額外 10 點,並包含下列程式碼:db.profiles.findAndModify({ query: { name: "Matt", status: "active"}, update: { $inc: { score: 10 } } })
您會收到下列輸出 (請注意,他的分數尚未增加):
{ [{_id : 1, name : 'Matt', status: 'active', level: 12, score: 202}]
-
您可以使用下列查詢來驗證他的分數已變更:
db.profiles.find({name: "Matt"})
您會收到下列輸出:
{ "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }
步驟 8:探索
恭喜您!您已成功完成 Amazon DocumentDB 的 Quick Start 指南。
下一步是什麼? 了解如何充分利用此強大的資料庫及其一些熱門功能:
注意
若要節省成本,您可以停止 Amazon DocumentDB 叢集以降低成本或刪除叢集。根據預設,在閒置 30 分鐘後,您的 AWS Cloud9 環境將停止基礎 Amazon EC2 執行個體。
自動將 EC2 執行個體連線至現有的 Amazon DocumentDB 資料庫
下列程序假設您擁有現有的 Amazon DocumentDB 叢集和現有的 Amazon EC2 執行個體。
存取您的 Amazon DocumentDB 叢集並設定 Amazon EC2 連線
-
存取您的 Amazon DocumentDB 叢集。
登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb
:// 開啟 Amazon DocumentDB 主控台。 -
在導覽窗格中,選擇叢集。
提示
如果畫面左側沒有出現導覽窗格,請選擇頁面左上角的功能表圖示 (
)。
-
選擇叢集名稱左側的按鈕,指定您想要的叢集。
-
設定 Amazon EC2 連線。
-
選擇動作,然後選擇設定 EC2 連線。
隨即顯示設定 EC2 連線對話方塊。
-
在 EC2 執行個體欄位中,選擇您要連線至叢集的 EC2 執行個體。
-
選擇繼續。
檢閱和確認對話方塊隨即出現。
-
請確定變更正確無誤。然後選擇設定連線。
-
如果成功,則會顯示下列驗證:

與 EC2 執行個體自動連線的概要
當您設定 EC2 執行個體與 Amazon DocumentDB 資料庫之間的連線時,Amazon DocumentDB 會自動為您的 EC2 執行個體和 Amazon DocumentDB 資料庫設定 VPC 安全群組。
以下是將 EC2 執行個體與 Amazon DocumentDB 資料庫連線的要求:
EC2 執行個體必須與 Amazon DocumentDB 資料庫存在於相同的 VPC 中。
如果沒有 EC2 執行個體存在於相同的 VPC 中,則主控台會提供一個連結來建立該執行個體。
設定連線的使用者必須擁有執行下列 Amazon EC2 操作的許可:
ec2:AuthorizeSecurityGroupEgress
ec2:AuthorizeSecurityGroupIngress
ec2:CreateSecurityGroup
ec2:DescribeInstances
ec2:DescribeNetworkInterfaces
ec2:DescribeSecurityGroups
ec2:ModifyNetworkInterfaceAttribute
ec2:RevokeSecurityGroupEgress
如果資料庫執行個體和 EC2 執行個體位於不同的可用區域,您的帳戶可能會產生跨可用區域成本。
當您設定與 EC2 執行個體的連線時,Amazon DocumentDB 會根據與 Amazon DocumentDB 資料庫和 EC2 執行個體相關聯的安全群組的目前組態來運作,如下表所述:
目前的 Amazon DocumentDB 安全群組組態 | 目前 EC2 安全群組組態 | Amazon DocumentDB 動作 |
---|---|---|
有一或多個與 Amazon DocumentDB 資料庫相關聯的安全群組,其名稱符合模式 DocumentDB-ec2-n 。符合模式的安全群組尚未修改。此安全群組只包含一個傳入規則,其具有 EC2 執行個體的 VPC 安全群組做為來源。 |
有一或多個與 EC2 執行個體相關聯的安全群組,其名稱符合模式 DocumentDB-ec2-n (其中 n 為數字)。符合模式的安全群組尚未修改。此安全群組只有一個傳出規則,其中 Amazon DocumentDB 資料庫的 VPC 安全群組為來源。 |
Amazon DocumentDB 不採取任何動作。EC2 執行個體和 Amazon DocumentDB 資料庫之間已自動設定連線。由於 EC2 執行個體和 Amazon DocumentDB 資料庫之間已存在連線,因此不會修改安全群組。 |
以下任一種條件均適用:
|
以下任一種條件均適用:
|
Amazon DocumentDB 動作:建立新的安全群組 |
有一或多個與 Amazon DocumentDB 資料庫相關聯的安全群組,其名稱符合模式 DocumentDB-ec2-n 。符合模式的安全群組尚未修改。此安全群組只包含一個傳入規則,其具有 EC2 執行個體的 VPC 安全群組做為來源。 |
有一或多個與 EC2 執行個體相關聯的安全群組,其名稱符合模式 ec2-DocumentDB-n 。不過,Amazon DocumentDB 無法使用任何這些安全群組與 Amazon DocumentDB 資料庫的連線。Amazon DocumentDB 無法使用沒有一個傳出規則的安全群組,並將 Amazon DocumentDB 資料庫的 VPC 安全群組做為來源。Amazon DocumentDB 也無法使用已修改的安全群組。 |
Amazon DocumentDB 動作:建立新的安全群組 |
有一或多個與 Amazon DocumentDB 資料庫相關聯的安全群組,其名稱符合模式 DocumentDB-ec2-n 。符合模式的安全群組尚未修改。此安全群組只包含一個傳入規則,其具有 EC2 執行個體的 VPC 安全群組做為來源。 |
存在用於連線的有效 EC2 安全群組,但與 EC2 執行個體沒有相關聯。此安全群組具有符合模式 DocumentDB-ec2-n 的名稱。尚未將其修改。它只有一個傳出規則,並將 Amazon DocumentDB 資料庫的 VPC 安全群組做為來源。 |
Amazon DocumentDB 動作:關聯 EC2 安全群組 |
以下任一種條件均適用:
|
有一或多個與 EC2 執行個體相關聯的安全群組,其名稱符合模式 DocumentDB-ec2-n 。符合模式的安全群組尚未修改。此安全群組只有一個傳出規則,其中 Amazon DocumentDB 資料庫的 VPC 安全群組為來源。 |
Amazon DocumentDB 動作:建立新的安全群組 |
Amazon DocumentDB 動作:建立新的安全群組
Amazon DocumentDB 會採取下列動作:
建立符合模式
DocumentDB-ec2-n
的新安全群組。此安全群組具有一個傳入規則,其具有 EC2 執行個體的 VPC 安全群組做為來源。此安全群組與 Amazon DocumentDB 資料庫相關聯,並允許 EC2 執行個體存取 Amazon DocumentDB 資料庫。建立符合模式
ec2-DocumentDB-n
的新安全群組。此安全群組具有傳出規則,並將 Amazon DocumentDB 資料庫的 VPC 安全群組做為來源。此安全群組與 EC2 執行個體相關聯,並允許 EC2 執行個體將流量傳送至 Amazon DocumentDB 資料庫。
Amazon DocumentDB 動作:關聯 EC2 安全群組
Amazon DocumentDB 會將有效的現有 EC2 安全群組與 EC2 執行個體建立關聯。此安全群組允許 EC2 執行個體將流量傳送至 Amazon DocumentDB 資料庫。
檢視已連線的運算資源
您可以使用 AWS Management Console 檢視連線至 Amazon DocumentDB 資料庫的運算資源。顯示的資源包括已自動設定的運算資源連線。您可以使用下列方式自動設定與運算資源的連線:
您可以在建立資料庫時選取運算資源。如需詳細資訊,請參閱建立 Amazon DocumentDB 叢集和建立多可用區域資料庫叢集。
您可以設定現有資料庫與運算資源之間的連線。如需詳細資訊,請參閱自動連接 Amazon EC2 。
列出的運算資源不包括已手動連線至資料庫的運算資源。例如,您可以透過將規則新增至與資料庫關聯的 VPC 安全群組,來允許運算資源手動存取資料庫。
針對要列出的運算資源,必須滿足下列條件:
與運算資源相關聯的安全群組名稱符合模式
ec2-DocumentDB-n
(其中 n 是數字)。與運算資源相關聯的安全群組具有傳出規則,其中連接埠範圍設定為 Amazon DocumentDB 資料庫使用的連接埠。
與運算資源相關聯的安全群組具有傳出規則,其來源設定為與 Amazon DocumentDB 資料庫相關聯的安全群組。
與 Amazon DocumentDB 資料庫相關聯的安全群組名稱符合模式
DocumentDB-ec2-n
(其中 n 是數字)。與 Amazon DocumentDB 資料庫相關聯的安全群組具有傳入規則,其中連接埠範圍設定為 Amazon DocumentDB 資料庫使用的連接埠。
與 Amazon DocumentDB 資料庫相關聯的安全群組具有傳入規則,來源設定為與運算資源相關聯的安全群組。
檢視連線至 Amazon DocumentDB 資料庫的運算資源
登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb
:// 開啟 Amazon DocumentDB 主控台。 在導覽窗格中,選擇資料庫,然後選擇 Amazon DocumentDB 資料庫的名稱。
在連線與安全索引標籤上,檢視連線運算資源區段中的運算資源。