
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 ์คํจ๋ก ์ฐ๊ฒฐ์ด ์ ๋๋ ๋ฌธ์ ์์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ์ ์ํด ๊ฒ์ํ๋ฉด์ ๋ฐ์ ํ ์ ์๋ ์์ธ์ ์ฐพ์๋ดค์ต๋๋ค.
MongoDB Atlas๋ TLS 1.2 ์ด์์ ์๊ตฌํฉ๋๋ค.
Python 3.6 ์ดํ๋ ๊ตฌ๋ฒ์ OpenSSL์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค๊ณ ํด์.
โ Python 3.12.10 ์ฌ์ฉ ์ค โ ํด๋น ์ฌํญ ์์
์ฐ๊ฒฐ ๋ฌธ์์ด(MongoDB URI)์ด ์๋ชป๋์์ ์๋ ์๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ๋ดค์ต๋๋ค.
โ ๋์ผํ URI๋ฅผ ๋ ธํธ๋ถ์์ ์ ์ฌ์ฉํ์ โ ๋ฌธ์ ์์
๊ฒ์ ์ค Atlas์ IP ์ ๊ทผ ํ์ฉ ์ค์ (Network Access) ์ ์ฒดํฌํด๋ณด๋ผ๋ ๊ธ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
MongoDB Atlas์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํน์ IP๋ง ์ ๊ทผ์ ํ์ฉํฉ๋๋ค.
๋ด ๋ฐ์คํฌํ์ด ํ์ฉ๋ IP๊ฐ ์๋์๋ค๋ ๊ฒ!
โ
ํด๊ฒฐ ๋ฐฉ๋ฒ: MongoDB Atlas์์ ๋ชจ๋ IP ํ์ฉํ๊ธฐ
๊ฐ๋ฐ ์ค์ด๋ผ๋ฉด ๊ฐ๋จํ ๋ชจ๋ IP๋ฅผ ํ์ฉํ๋ ์ค์ ์ผ๋ก ํด๊ฒฐํ ์ ์์ด์.
MongoDB Atlas ์ ์
๐ https://cloud.mongodb.com
์ฐ๊ฒฐํ Project ์ ํ
์ผ์ชฝ ๋ฉ๋ด โ Network Access ํด๋ฆญ
(์ฌ์ด๋๋ฐ > SECURITY ์น์
์์ ์์)
IP Access List ํญ์์
โ ADD IP ADDRESS ํด๋ฆญ
์๋์ฒ๋ผ ์ ๋ ฅ
Whitelist Entry: 0.0.0.0/0
Comment: "Allow all IPs" (์ ํ)
โ Confirm ๋ฒํผ ํด๋ฆญ
โ ๏ธ ๋ณด์์ ์ด์ ํ๊ฒฝ์์๋ ์์ ์ IP๋ง ํ์ฉํ๋ ๊ฒ ์ข์ต๋๋ค.
์ง๊ธ์ ๊ฐ๋ฐ์ฉ์ด๋ ํธํ๊ฒ ์ค์ !
๋ฐฉํ๋ฒฝ ์ค์ ๋ฌธ์ ์๊ณ , ํด๊ฒฐ์ ์๊ฐ๋ณด๋ค ๊ฐ๋จํ์ด์.
ํ์ง๋ง 2์๊ฐ ๋์ ์ฝ์งํ ๋์ ์ป์ ๊ฐ์ง ๊ฒฝํ!
FastAPI, MongoDB Atlas ์ฐ๊ฒฐ ์ Network Access ์ค์ ํ์ ํ์ธ!
์ฒ์ ๊ฒช๋ SSL handshake ์๋ฌ๋ ๋นํฉ์ค๋ฝ์ง๋ง, ์ฐจ๊ทผํ ์์ธ์ ์ขํ๊ฐ๋ฉด ํด๊ฒฐ ๊ฐ๋ฅํด์.
์ด์ ์ด๋ค ํ๊ฒฝ์์๋ MongoDB ์ฐ๋ ์์ ์์ต๋๋ค ๐ช