๐ฉ๐ป๐ป/network7 [Celery] ๊ฐ๋จํ๊ฒ ์ฑ๋ฅ ์ฒดํฌ ์คํ ํ CPU ์ฌ์ฉ๋ ๋ฐ Celery Worker ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ค ํ๋ค. โ Celery Worker ํ๋ก์ธ์ค ํ์ธps aux | grep "celery worker" โ CPU & ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ฒดํฌhtop โ Redis์ ๋๊ธฐ ์ค์ธ ์์ ํ์ธredis-cli llen celery → ๋ง์ฝ ๋๊ธฐ ์ค์ธ ์์ ๊ฐ์ ํ์ธํ๊ณ ์ ์ ํ concurrency ์กฐ์ → ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๋ ๊ณ ๋ คํด์ concurrency ์กฐ์ 2025. 2. 19. [Celery] ์ ์ ํ concurrency ๊ฐ ์ค์ ํ๊ธฐ ๊ฐ์Celery์์ concurrency ๊ฐ์ ํ ๋ฒ์ ๋ช๊ฐ์ ์์ ์ ๋์์ ์คํํ ์ง ๊ฒฐ์ ํ๋ ์ค์ํ ์ค์ ์ด๋ค.์ ์ ํ concurrency ๊ฐ์ ์ด๋ป๊ฒ ์ค์ ํ ๊น .. (ํ๋์จ์ด, ์ํฌ๋ก๋, ์์ ํน์ฑ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค!)ํ์ธconcurrencyCelery๋ ๊ธฐ๋ณธ์ ์ผ๋ก Prefork (multiprocessing) ๋ชจ๋๋ฅผ ์ฌ์ฉconcurrency๋ ๊ฐ worker๊ฐ ๋์์ ์ฒ๋ฆฌํ ์ ์๋ ์์ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค.worker๋ ์ค์ ๋ก Task๋ฅผ ์คํํ๋ ํ๋ก์ธ์ค(์์ ๋จ์)๋ฅผ ์๋ฏธํ๋ค.1๏ธโฃ CPU ์ฝ์ด ์Celery๊ฐ CPU ์ฐ์ฐ์ ๋ง์ด ์ฌ์ฉํ๋ ์์ (์: ๋จธ์ ๋ฌ๋, ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ฑ)์ ์คํํ๋ค๋ฉด, CPU ์ฝ์ด ์ ๊ธฐ์ค์ผ๋ก ์ค์ CPU ์ฝ์ด ๊ฐ์์ ์ ํ concurrency ๊ฐ2 ์ฝ์ด2~44 ์ฝ์ด4~88 ์ฝ์ด8~.. 2025. 2. 19. [Proxy] ๋ฆฌ๋ฒ์ค ํ๋ก์ Reverse Proxy ์ ๋ฆฌ ๊ฐ์ ํน์ port์ ์๋น์ค์๋ง HTTPS 443 SSL ์ ์ฉํ๊ธฐ๊ฐ์์ด์์ค์ธ ์๋น์ค ์ค์์ 8003 ํฌํธ์๋ง ssl ์ ์ ์ฉํ๋ ค๊ณ ํ๋ค.์งํ ์์ฝ๋๋ฉ์ธ ์ด๋ฆ์ด ์์ด IP๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ OpenSSL๋ก ์์ฒด ์๋ช ์ธ์ฆ์๋ฅผ ์์ฑํด์ผ ํ๋ค.NGINX๋ฅผ HTTPS ์ฒ๋ฆฌ ๋ด๋น์๋ก ๋๊ณ ,bonory.tistory.com8003 ํฌํธ์๋ง https ์ ์ฉํ๋ฉด์ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๋ถ๋ถ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค.ํ์ธProxy ์ค์ ์ฝ๋:location / { proxy_pass http://127.0.0.1:8003; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'u.. 2025. 1. 24. ํน์ port์ ์๋น์ค์๋ง HTTPS 443 SSL ์ ์ฉํ๊ธฐ ๊ฐ์์ด์์ค์ธ ์๋น์ค ์ค์์ 8003 ํฌํธ์๋ง ssl ์ ์ ์ฉํ๋ ค๊ณ ํ๋ค.์งํ ์์ฝ๋๋ฉ์ธ ์ด๋ฆ์ด ์์ด IP๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ OpenSSL๋ก ์์ฒด ์๋ช ์ธ์ฆ์๋ฅผ ์์ฑํด์ผ ํ๋ค.NGINX๋ฅผ HTTPS ์ฒ๋ฆฌ ๋ด๋น์๋ก ๋๊ณ , ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐฑ์๋ ์๋น์ค๋ก ํ๋ก์ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ค์ openssl ์ธ์ฆ์ ์ฌ์ฉ ์ “์ฃผ์ ์ํจ” ๊ฒฝ๊ณ ํ์ธ → ๋ฌด๋ฃ ๊ณต์ธ ์ธ์ฆ์ ๋ฐ๊ธ ์งํ์ธ์ฆ์ ์๋ ๊ฐฑ์ ์ค์ ์งํ1. openssl๋ก ์ธ์ฆ์ ๋ฐ๊ธsudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/selfsigned.key \ -out /etc/ssl/certs/selfsigned.crt-x509: ์์ฒด ์๋ช ์ธ์ฆ์๋ฅผ ์์ฑ-d.. 2025. 1. 22. RPC vs gRPC RPC (Remote Procedure Call)ํ๋ก์ธ์ค ๊ฐ ํต์ (IPC)์ ์ํ ํ๋กํ ์ฝ๋ก์ปฌ ํ๊ฒฝ์์ ํจ์ ํธ์ถ์ ํ๋ฏ์ด ๋คํธ์ํฌ๋ฅผ ํตํด ๋ค๋ฅธ ์ปดํจํฐ๋ ์๋ฒ์ Procedure(ํจ์)๋ฅผ ํธ์ถํ๋ ๊ฐ๋ ํต์ฌ ๊ฐ๋ : ๋คํธ์ํฌ๋ฅผ ํตํด ์๊ฒฉ ์๋ฒ์ ํจ์๋ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋๋ค.์๋ ๋ฐฉ์:ํด๋ผ์ด์ธํธ๋ ํธ์ถํ๋ ค๋ ํจ์์ ์ธํฐํ์ด์ค๋ฅผ ์์ง๋ง, ํจ์๊ฐ ์ค์ ๋ก ์คํ๋๋ ์๋ฒ์ ์์น๋ ์ถ์ํ๋์ด ์๋ค.์์ฒญ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ๋ฌ๋๊ณ , ๊ฒฐ๊ณผ๋ ๋ฐํ๋๋ค.๊ตฌํ ๋ฐฉ์:XML-RPCJSON-RPCSOAP ๋ฑ …์ฅ์ :๋ก์ปฌ ํธ์ถ์ฒ๋ผ ๋ณด์ด๋๋ก ์ถ์ํํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ฝ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ๋จ์ :๋คํธ์ํฌ ์ฑ๋ฅ์ ์์กด๋ฐ์ดํฐ ์ง๋ ฌํ/์ญ์ง๋ ฌํ์ ์ถ๊ฐ ๋น์ฉ ๋ฐ์์ํธ ์ด์ฉ์ฑ ์ ํ(๋ค๋ฅธ ์ธ์ด๋ ์์คํ ๊ฐ ์ฐ๊ฒฐ์ด ๋ณต์กํ ์ ์๋ค)gRPCRPC์ ํ๋์ .. 2025. 1. 14. ์ธํฐ๋ท ์๋ 2๊ฐ์ PC ํต์ ํ๋ ๋ฐฉ๋ฒ ๊ฐ์๋คํธ์ํฌ๊ฐ ์๋๋ ํ๊ฒฝ์์ PC 2๊ฐ๊ฐ ํต์ ํด์ผ ํ๋ ์ํฉ์์ ์ด๋ ํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ง์ ๋ํ search1๋ฒ PC : stt, llm์ด ์งํ๋๋ฉฐ ๋ก๋ด์ ์ ๋ฌํ ๋ช ๋ น์ return2๋ฒ PC : ๋ก๋ด ์๋ฎฌ๋ ์ดํฐ. 1๋ฒ PC๋ก ๋ถํฐ ๋ช ๋ น์ด๋ฅผ ์ ๋ฌ๋ฐ์ ์๋ฎฌ๋ ์ดํฐ๋ก ๊ตฌํํ๋ค.Socket ํต์ (TCP/UDP)์์ผ ํ๋ก๊ทธ๋๋ฐ์ ์ด์ฉํ๋ฉด 1๋ฒ PC์์ ๋ฐํ๋ฐ์ ๊ฐ์ 2๋ฒ PC๋ก ์ง์ ๋ณด๋ผ ์ ์๋ค. ๋ก์ผ ๋คํธ์ํฌ์์ ip์ port๋ก ํต์ ์ด ๊ฐ๋ฅํ๋ค.๋น ๋ฅด๊ณ , ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ์ ํฉํ๋ค.๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.2๋ฒ PC์์ ์์ผ ์๋ฒ๋ฅผ ์คํํ๊ณ ํน์ ํฌํธ๋ฅผ ์ด์ด๋๋ค.1๋ฒ PC์์ ํด๋ผ์ด์ธํธ ์์ผ์ ํตํด 2๋ฒ PC์ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.python์์ socket ๋ชจ๋ ์ฌ์ฉํ๋ฉด ๋จํ์ผ ๊ณต์ ๋ฐฉ์ (SMP/NFS).. 2024. 11. 28. [gRPC] gRPC๊ณผ websocket ๋น๊ต ์ ๋ฆฌ ๊ธฐ์กด์ ๊ฐ๋ฐํ๋ ์๋น์ค์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ํต์ ์ websocket ์ผ๋ก ๊ตฌํํ๋ค.๋ค ๋๋ด๊ณ ๋์ ํด๋ผ์ด์ธํธ, ์๋ฒ ํต์ ํ๋ ๋ฐฉ๋ฒ์ ์ข ๋ ์์นํด๋ณด๊ณ ์ถ์๋ค๊ทธ๋ ๊ฒ ์๊ฒ๋ gRPC. ์ ๋ฆฌํด๋ณด์ โ gRPC์ WebSocketgRPC์ WebSocket์ ๋ ๋ค ๋คํธ์ํฌ ํต์ ํ๋กํ ์ฝ๋ก, ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก๊ณผ ํด๋ผ์ด์ธํธ-์๋ฒ ๊ฐ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํจgRPCGoogle์ด ๊ฐ๋ฐํ RPC(Remote Procedure Call) ํ๋ ์์ํฌHTTP/2 ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, ํ๋กํ ์ฝ ๋ฒํผ(Protocol Buffers, Protobuf)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ง๋ ฌํ๋ฅผ ์ํํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฏ์ด ์๊ฒฉ์ผ๋ก ๊ธฐ๋ฅ์ ์คํWebSocketHTML5 ํ์ค์ผ๋ก, TCP ์์ผ ์ฐ๊ฒฐ์ ํตํด ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํจํ๋ก.. 2024. 11. 25. ์ด์ 1 ๋ค์