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
gefragt vor 10 Monaten516 Aufrufe
2 Antworten
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
beantwortet vor 10 Monaten
  • 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
beantwortet vor 10 Monaten
  • Hi Ciel_W,

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

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

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

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen