Glue Mongo connection 無法與 EC2上自建的 MongoDB 連線

0

Hi community,

近期我正在測試使用Glue Mongo connection與我EC2上自建的MongoDB連線, 我參考了[1],首先建立JOB,我先將MongoDB的登入資訊儲存在secrets manger, 接著將與mongo連線資訊在JOB呈現,示意圖(Image1)如下: Image1

接著建立 Connection type 為 MongoDB 的 glue connection, 除了命名以及提供我ec2上mongo的連線資訊外, 我也注意到在network options部分,將VPC、Subnet、SG皆使用與EC2相同的配置。

根據[2]的內容,我透過glue crawler來驗證我的連線是否成功, 很不幸的是無法連線 "ERROR : Test connection failed for connection '我的glue connection'" 示意圖(Image2)如下: Image2

我也在想說是不我EC2上自建mongo本身就會有連線問題,
因此我開啟新的EC2並安裝mongo client來測試連線,
連線結果是可以成功連線的,示意圖如下(Image3): Image3

這樣的測試讓我很納悶,
為什麼我設定的 glue connection 無法順利作用呢 ?
是不是我有哪些設定或是沒有思考周全的部分。

為此跟大家集思廣益了,
謝謝。

references: [1] Building AWS Glue Spark ETL jobs using Amazon DocumentDB (with MongoDB compatibility) and MongoDB https://aws.amazon.com/tw/blogs/big-data/building-aws-glue-spark-etl-jobs-using-amazon-documentdb-with-mongodb-compatibility-and-mongodb/ [2] https://docs.aws.amazon.com/glue/latest/dg/integrate-with-mongo-db.html

Cole
已提問 10 個月前檢視次數 384 次
2 個答案
0

客戶您好:

感謝您貢獻 AWS re:Post 平台。

由於您提到登入資訊儲存在secrets manger,您在配置 Glue connection 時可能也是直接使用該 secrets。如同在 AWS 文件中提到的,此時您將可能需要在您的 VPC 中建立 SecretsManager VPC 端點,以在 VPC 與 Secrets Manager 之間建立私有連線。如需詳細資訊,請參閱使用 AWS Secrets Manager VPC 端點

希望這個說明對您有幫助,再次感謝您在 AWS re:Post 社群的貢獻。

Ciel_W
已回答 10 個月前
  • Hi Ciel_W

    謝謝你的提醒,不好意思遺漏這部分資訊沒有提供出來, 事實上我已經有建立VPC與Secrets Manager之間的私有連線, 您提及的 "AWS文件" 以及我上述參考文件的[1], 皆提到需要與VPC的私有連線, 目前我有的VPC私有連線如下: VPCEndpointForGlue VPCEndpointForS3 VPCEndpointSecretsManager

    此三個私有連線的policy分別如下: Full access; Full access; { "Statement": [ { "Sid": "AccessSpecificAccount", "Principal": {"AWS": "My account ID"}, "Action": "secretsmanager:", "Effect": "Allow", "Resource": "" } ] }

    這三個是我能想到全部與VPC的私有連線, 當然在我有建立私有連線的情況下, 我仍然無法順利連線, 目前尚未解決這個問題,

    謝謝您的建議。

  • Hi Ciel_W,

    我想額外補充一點, 我當初測試的時候也有將Secrets Manager拔掉, 直接將登入的資訊輸入在glue connection的Connection access Credential type部分,

    那個時候我測試結果仍然是失敗的。

    所以我自己是猜想, 我目前遇到的問題可能不是Secrets Manager導致的。

0

Hi Cole, 謝謝您的回應。的確拔掉Secret、使用手動輸入帳密的方式的話,就不需要配置SecretsManager endpoint 我了解您懷疑是和自建 EC2 MongoDB 有關,為了驗證這點,我建議您建一個小型的 Amazon DocumentDB (t3 實例類型) 來測試您的網路連線配置,您可以參考這個文件 [1]。Amazon DocumentDB 可讓雲端執行 MongoDB Compatibility 資料庫的資料庫。透過 Amazon DocumentDB [2],您可以執行相同的應用程式程式碼,並使用與 MongoDB 搭配使用的相同驅動程式和工具。(測試完之後請記得終止 DocumentDB 以避免不需要的花費) 如果在相同網路配置下,DocumentDB 連得上而自建 EC2 MongoDB 連不上,那麼就可以證實和 MongoDB 的配置較為相關 希望這個說明對您有幫助,再次感謝您在 AWS re:Post 社群的貢獻。

[1] Amazon DocumentDB 入門 - https://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/get-started-guide.html [2] Amazon DocumentDB (the MongoDB Compatibility) - https://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/what-is.html

Ciel_W
已回答 10 個月前
  • Hi Ciel_W,

    謝謝您提供的建議及參考文件,這的確是一個收斂問題的好方法。 只是如果使用Amazon DocumentDB做測試的話, 設定Glue Connection的Connection type時, 您會建議我選擇 "Amazon DocumentDB" 的選項, 還是我應該還原我當初的設定選擇 "MongoDB" 的選項呢 ?

    我自己的想法是, AWS 的 Glue Connection type 有把 'Amazon DocumentDB' 和 'MongoDB' 分開讓使用者選擇, 是不是意味著底層有差異才分開呢 ? (當然這只是我自己的猜測)

    再次感謝您這麼不厭其煩的跟我討論, 謝謝。

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南