๐Ÿงฉ FastAPI + MongoDB Atlas ์—ฐ๋™ ์—๋Ÿฌ ํ•ด๊ฒฐ๊ธฐ (SSL handshake failed)

DEVHOBยท2025๋…„ 4์›” 24์ผ

FastAPI ํ•™์Šต ๊ณผ์ •

๋ชฉ๋ก ๋ณด๊ธฐ
1/6
post-thumbnail

FastAPI๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ MongoDB Atlas์™€ ์—ฐ๋™ํ•˜๋Š” ๊ณผ์ •์—์„œ, ํ™˜๊ฒฝ ์ฐจ์ด๋กœ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋ฅผ ๊ฒช์—ˆ๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•œ ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์ฐจ์ด์—์„œ ์˜ค๋Š” ๋ฌธ์ œ๋Š” ์–ธ์ œ๋‚˜ ์˜ˆ์ƒ ๋ฐ–์—์„œ ๋ฐœ์ƒํ•˜์ฃ ...!
ํ•ด๊ฒฐ๊นŒ์ง€ 2์‹œ๊ฐ„์ด๋‚˜ ๊ฑธ๋ ธ์ง€๋งŒ, ์„ฑ์žฅํ†ต์ด๋ผ ์ƒ๊ฐํ•˜๋ฉฐ ๊ธฐ๋กํ•ด๋ด…๋‹ˆ๋‹ค.

๐Ÿ–ฅ๏ธ ํ™˜๊ฒฝ ์ •๋ณด

๊ตฌ๋ถ„๋‚ด์šฉ
๋…ธํŠธ๋ถPython 3.11.9, FastAPI + MongoDB Atlas ์—ฐ๋™ ์„ฑ๊ณต
๋ฐ์Šคํฌํƒ‘Python 3.12.10, ๋™์ผํ•œ ์ฝ”๋“œ ์‹คํ–‰ โ†’ ์—๋Ÿฌ ๋ฐœ์ƒ

๐Ÿงจ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ

SSL handshake failed: tlsv1 alert internal error
pymongo.errors.ServerSelectionTimeoutError

์š”์•ฝ:
FastAPI(ํด๋ผ์ด์–ธํŠธ)์—์„œ MongoDB Atlas ์„œ๋ฒ„์™€ ๋ณด์•ˆ ์—ฐ๊ฒฐ(SSL) ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ, handshake ์‹คํŒจ๋กœ ์—ฐ๊ฒฐ์ด ์•ˆ ๋˜๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ” ์›์ธ ๋ถ„์„ & ์ ๊ฒ€ ์‚ฌํ•ญ

๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ๊ฒ€์ƒ‰ํ•˜๋ฉด์„œ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ์›์ธ์„ ์ฐพ์•„๋ดค์Šต๋‹ˆ๋‹ค.

1. Python TLS/SSL ๋ฏธ์ง€์› โŒ

MongoDB Atlas๋Š” TLS 1.2 ์ด์ƒ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.
Python 3.6 ์ดํ•˜๋‚˜ ๊ตฌ๋ฒ„์ „ OpenSSL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์š”.

โœ… Python 3.12.10 ์‚ฌ์šฉ ์ค‘ โ†’ ํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ

2. MongoDB URI ์˜ค๋ฅ˜ โŒ

์—ฐ๊ฒฐ ๋ฌธ์ž์—ด(MongoDB URI)์ด ์ž˜๋ชป๋˜์—ˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋ดค์Šต๋‹ˆ๋‹ค.

โœ… ๋™์ผํ•œ URI๋ฅผ ๋…ธํŠธ๋ถ์—์„œ ์ž˜ ์‚ฌ์šฉํ–ˆ์Œ โ†’ ๋ฌธ์ œ ์—†์Œ

3. ๋ฐฉํ™”๋ฒฝ / ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ โœ…

๊ฒ€์ƒ‰ ์ค‘ Atlas์˜ IP ์ ‘๊ทผ ํ—ˆ์šฉ ์„ค์ •(Network Access) ์„ ์ฒดํฌํ•ด๋ณด๋ผ๋Š” ๊ธ€์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

MongoDB Atlas์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠน์ • IP๋งŒ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋‚ด ๋ฐ์Šคํฌํƒ‘์ด ํ—ˆ์šฉ๋œ IP๊ฐ€ ์•„๋‹ˆ์—ˆ๋‹ค๋Š” ๊ฒƒ!

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: MongoDB Atlas์—์„œ ๋ชจ๋“  IP ํ—ˆ์šฉํ•˜๊ธฐ
๊ฐœ๋ฐœ ์ค‘์ด๋ผ๋ฉด ๊ฐ„๋‹จํžˆ ๋ชจ๋“  IP๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์„ค์ •์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์š”.

์„ค์ • ๋ฐฉ๋ฒ•:

  1. MongoDB Atlas ์ ‘์†
    ๐Ÿ‘‰ https://cloud.mongodb.com

  2. ์—ฐ๊ฒฐํ•  Project ์„ ํƒ

  3. ์™ผ์ชฝ ๋ฉ”๋‰ด โ†’ Network Access ํด๋ฆญ
    (์‚ฌ์ด๋“œ๋ฐ” > SECURITY ์„น์…˜ ์•ˆ์— ์žˆ์Œ)

  4. IP Access List ํƒญ์—์„œ
    โž• ADD IP ADDRESS ํด๋ฆญ

์•„๋ž˜์ฒ˜๋Ÿผ ์ž…๋ ฅ

  1. Whitelist Entry: 0.0.0.0/0

  2. Comment: "Allow all IPs" (์„ ํƒ)

โœ… Confirm ๋ฒ„ํŠผ ํด๋ฆญ

โš ๏ธ ๋ณด์•ˆ์ƒ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์ž์‹ ์˜ IP๋งŒ ํ—ˆ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.
์ง€๊ธˆ์€ ๊ฐœ๋ฐœ์šฉ์ด๋‹ˆ ํŽธํ•˜๊ฒŒ ์„ค์ •!

๐ŸŽ‰ ๊ฒฐ๋ก 

๋ฐฉํ™”๋ฒฝ ์„ค์ • ๋ฌธ์ œ์˜€๊ณ , ํ•ด๊ฒฐ์€ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ–ˆ์–ด์š”.
ํ•˜์ง€๋งŒ 2์‹œ๊ฐ„ ๋™์•ˆ ์‚ฝ์งˆํ•œ ๋์— ์–ป์€ ๊ฐ’์ง„ ๊ฒฝํ—˜!

โœ๏ธ ๋งˆ๋ฌด๋ฆฌ

FastAPI, MongoDB Atlas ์—ฐ๊ฒฐ ์‹œ Network Access ์„ค์ • ํ•„์ˆ˜ ํ™•์ธ!

์ฒ˜์Œ ๊ฒช๋Š” SSL handshake ์—๋Ÿฌ๋Š” ๋‹นํ™ฉ์Šค๋Ÿฝ์ง€๋งŒ, ์ฐจ๊ทผํžˆ ์›์ธ์„ ์ขํ˜€๊ฐ€๋ฉด ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•ด์š”.

์ด์   ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋“  MongoDB ์—ฐ๋™ ์ž์‹  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ’ช

profile
๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต ๋ฐ ์ƒˆ๋กœ์šด ๋‚ด์šฉ ํ•™์Šต

0๊ฐœ์˜ ๋Œ“๊ธ€