QueryPie Community Edition is live ๐ŸŽ‰ Get it now for free Download today!

๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ
๋ฐฑ์„œ

๋ง๋ถ„๋ฆฌ ์‹œ๋Œ€์˜ ์•ˆ์ „ํ•œ ์„œ๋ฒ„ ์ ‘๊ทผ: SSH ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•œ ๋ฉ€ํ‹ฐํ™‰ ์–‘๋ฐฉํ–ฅ ํ„ฐ๋„๋ง ๊ธฐ์ˆ 

๊ธฐ์—…์˜ ๋ง๋ถ„๋ฆฌ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์„œ๋ฒ„ ์ ‘๊ทผ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” QueryPie์˜ ์ ‘๊ทผ ์ œ์–ด ์ „๋žต. Reverse Tunneling, JumpHost, ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…๊นŒ์ง€ โ€“ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๋ณด์•ˆ๊ณผ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋™์‹œ์— ๋งŒ์กฑ์‹œํ‚ต๋‹ˆ๋‹ค.

Greg Yim

Greg Yim

Software Engineer

2025๋…„ 4์›” 8์ผ

๋ง๋ถ„๋ฆฌ ์‹œ๋Œ€์˜ ์•ˆ์ „ํ•œ ์„œ๋ฒ„ ์ ‘๊ทผ: SSH ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•œ ๋ฉ€ํ‹ฐํ™‰ ์–‘๋ฐฉํ–ฅ ํ„ฐ๋„๋ง ๊ธฐ์ˆ 

๊ฐœ์š”

์˜ค๋Š˜๋‚  ๋‹ค์–‘ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ํ™˜๊ฒฝ์—์„œ๋Š” ์ค‘์š” ์ž์‚ฐ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์ ‘์† ๊ฒฝ๋กœ๋ฅผ ์ œํ•œํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉํ™”๋ฒฝ, ์ ‘๊ทผ ์ œ์–ด ๋ชฉ๋ก(ACL), ํ”„๋ก์‹œ ์„œ๋ฒ„ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ์†”๋ฃจ์…˜์ด ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ์˜ ๋ฌด๋ถ„๋ณ„ํ•œ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณด์•ˆ ์กฐ์น˜๋Š” ์ ์  ๋” ๋ณต์žกํ•ด์ง€๋Š” ์‚ฌ์ด๋ฒ„ ์œ„ํ˜‘์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜์ ์ธ ์š”์†Œ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค.

๋” ๋‚˜์•„๊ฐ€ ๊ธฐ์—…๋“ค์€ ๋‹จ์ˆœํ•œ ๋„คํŠธ์›Œํฌ ๋ถ„๋ฆฌ๋ฅผ ๋„˜์–ด, ๋‹จ๊ณ„์ ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๋‹ค์ค‘ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜์—ฌ ๋‚ด๋ถ€ ์ž์›์„ ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ „๋žต์€ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋™์‹œ์— ํ•ฉ๋ฒ•์ ์ธ ์ ‘๊ทผ ๊ฒฝ๋กœ์˜ ๋ณต์žก์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. SSH(Secure Shell) ํ”„๋กœํ† ์ฝœ์„ ํ™œ์šฉํ•œ ํ„ฐ๋„๋ง ๊ธฐ์ˆ ์€ ์ด๋Ÿฌํ•œ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์ธ ํ†ต์‹  ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ ์ •์˜ ๋ฐ ๊ธฐ๋ฐ˜๊ธฐ์ˆ 

๋ง๋ถ„๋ฆฌ ํ™˜๊ฒฝ์—์„œ์˜ ์ ‘๊ทผ์„ฑ ๋ฌธ์ œ

๋ง๋ถ„๋ฆฌ ํ™˜๊ฒฝ์—์„œ ๋‚ด๋ถ€ ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜๋Š” ๊ณผ์ •์€ ์ข…์ข… ๋ณต์žกํ•˜๊ณ  ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž๋Š” ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ Bastion Host(๋˜๋Š” Jump Server)๋ฅผ ๊ฒฝ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์‚ฌ์šฉ์ž๋Š” ์ค‘๊ฐ„ ๋‹จ๊ณ„ ์„œ๋ฒ„์˜ ์ ‘์† ์ •๋ณด(IP ์ฃผ์†Œ, ํฌํŠธ, ์ธ์ฆ ์ •๋ณด)๋ฅผ ๋ชจ๋‘ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ์ธ์ฆ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹ค๋‹จ๊ณ„ ์ ‘์† ๋ฐฉ์‹์€ ์šด์˜ ํšจ์œจ์„ฑ์„ ์ €ํ•˜์‹œํ‚ค๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ•ด์น˜๋Š” ์ฃผ์š” ์›์ธ์ด ๋ฉ๋‹ˆ๋‹ค.

SSH ํ”„๋กœํ† ์ฝœ์˜ ๊ธฐ๋Šฅ๊ณผ ํ•œ๊ณ„

SSH๋Š” ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™”์™€ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜์—ฌ, ์›๊ฒฉ ์„œ๋ฒ„ ๊ด€๋ฆฌ์™€ ์•ˆ์ „ํ•œ ํŒŒ์ผ ์ „์†ก์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ SSH์˜ ํฌํŠธ ํฌ์›Œ๋”ฉ(ํ„ฐ๋„๋ง) ๊ธฐ๋Šฅ์€ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ์ œ์•ฝ ํ™˜๊ฒฝ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

SSH ํ”„๋กœํ† ์ฝœ์€ JumpHost ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋‹ค๋‹จ๊ณ„ ์„œ๋ฒ„ ์ ‘์† ๋ฌธ์ œ๋ฅผ ์ผ๋ถ€ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ssh -J ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๊ฐ„ ์„œ๋ฒ„๋ฅผ ๊ฒฝ์œ ํ•˜์—ฌ ์ตœ์ข… ๋ชฉ์ ์ง€ ์„œ๋ฒ„์— ๋‹จ์ผ ๋ช…๋ น์œผ๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์—๋„ ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์—ฌ์ „ํžˆ ์ค‘๊ฐ„ ์„œ๋ฒ„์˜ ์ ‘์† ์ •๋ณด(Credential)๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ๋ณด์•ˆ ์ •์ฑ…์ƒ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘๊ฐ„ ์„œ๋ฒ„์˜ ์ ‘์† ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์ด๋ฅผ ์•…์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.



Inbound ์ ‘์† ์ œํ•œ๊ณผ Reverse Tunneling

๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋”์šฑ ๊ฐ•ํ™”๋จ์— ๋”ฐ๋ผ, ๋งŽ์€ ์กฐ์ง๋“ค์€ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ์˜ ์ธ๋ฐ”์šด๋“œ(Inbound) ์ ‘์† ์ž์ฒด๋ฅผ ์™„์ „ํžˆ ์ฐจ๋‹จํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ •์ฑ…์„ ๋ฐœ์ „์‹œํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ์ „ํ†ต์ ์ธ SSH ์ ‘์† ๋ฐฉ์‹์ด๋‚˜ JumpHost ๋ฐฉ์‹์œผ๋กœ๋Š” ๋‚ด๋ถ€ ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด ๋ฐ”๋กœ Reverse Tunneling์ž…๋‹ˆ๋‹ค. Reverse Tunneling์€ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์—์„œ ์™ธ๋ถ€์˜ ์ค‘๊ณ„ ์„œ๋ฒ„๋กœ ๋จผ์ € ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•œ ํ›„, ์ด ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์˜ ์„œ๋ฒ„๊ฐ€ ์™ธ๋ถ€์˜ Reverse Tunneling Server๋กœ SSH ์—ฐ๊ฒฐ์„ ๋งบ๊ณ , ์ด ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์™ธ๋ถ€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด๋ถ€ ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ์ธ๋ฐ”์šด๋“œ ์ ‘์†์„ ์ฐจ๋‹จํ•˜๋ฉด์„œ๋„ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‚ด๋ถ€ ์ž์›์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต๋กœ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.




์‚ฌ์šฉ์ž ์ ‘๊ทผ ์ œ์–ด์˜ ๋ณต์žก์„ฑ

SSH๋ฅผ ์ด์šฉํ•œ JumpHost๋‚˜ Reverse Tunneling์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋Œ€๊ทœ๋ชจ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ์ž๋ณ„ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์–‘ํ•œ ๋‚ด๋ถ€ ์„œ๋ฒ„์— ์„ ํƒ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, SSH ํ‚ค ๊ด€๋ฆฌ์™€ ์ ‘๊ทผ ์ œ์–ด ์ •์ฑ… ์„ค์ •์ด ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ์ž ๊ณ„์ • ๊ด€๋ฆฌ, ๊ถŒํ•œ ๋ณ€๊ฒฝ, ๊ฐ์‚ฌ ๋กœ๊น… ๋“ฑ์˜ ์ž‘์—…๋„ ์ˆ˜์ž‘์—…์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๊ด€๋ฆฌ ๋ถ€๋‹ด์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์•ˆ ๊ธฐ์ˆ ๊ณผ ํ†ตํ•ฉ ์†”๋ฃจ์…˜์˜ ํ•„์š”์„ฑ

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—์ด์ „ํŠธ(Agent) ๊ธฐ๋ฐ˜์˜ ์ ‘๊ทผ ์ œ์–ด ์†”๋ฃจ์…˜๋“ค์ด ๋“ฑ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Teleport์™€ ๊ฐ™์€ ์˜คํ”ˆ์†Œ์Šค ์†”๋ฃจ์…˜์€ SSH ์ ‘์†์„ ๋‹จ์ˆœํ™”ํ•˜๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ์ ‘๊ทผ ์ œ์–ด์™€ ๊ฐ์‚ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์†”๋ฃจ์…˜๋“ค๋„ ๋‹ค์ค‘ ํ™‰(Multi-hop) ํ™˜๊ฒฝ์ด๋‚˜ ํŠน์ˆ˜ํ•œ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์—์„œ๋Š” ์ถ”๊ฐ€์ ์ธ ์„ค์ •์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ˜„๋Œ€์ ์ธ ๋ง๋ถ„๋ฆฌ ํ™˜๊ฒฝ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ํ†ตํ•ฉ ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์ค‘๊ฐ„ ๋‹จ๊ณ„ ์„œ๋ฒ„์˜ ์ ‘์† ์ •๋ณด๋ฅผ ์•Œ์ง€ ์•Š์•„๋„ ์ตœ์ข… ๋ชฉ์ ์ง€ ์„œ๋ฒ„์— ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  2. ๊ฐ•๋ ฅํ•œ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ์„ธ๋ฐ€ํ•œ ์ ‘๊ทผ ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์•ผ ํ•จ
  3. ์ธ๋ฐ”์šด๋“œ ์ ‘์†์ด ์ œํ•œ๋œ ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๋‚ด๋ถ€ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  4. ๊ด€๋ฆฌ์ž๊ฐ€ ์ค‘์•™์—์„œ ๋ชจ๋“  ์ ‘์†์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ฐ์‚ฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  5. ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ•ด์น˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•ด์•ผ ํ•จ

QueryPie์˜ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

๋‹จ์ˆœํ™”๋œ ๊ณ„์ธตํ˜• ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ

QueryPie๋Š” ๋ณต์žกํ•œ ๊ณ„์ธตํ˜• ๋„คํŠธ์›Œํฌ(Layered Network) ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹จ์ˆœํ•˜๊ณ  ์ง๊ด€์ ์ธ ์ ‘๊ทผ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์˜ค์ง QueryPie์™€์˜ ๋‹จ์ผ SSH ์—ฐ๊ฒฐ๋งŒ์„ ์„ค์ •ํ•˜๋ฉด ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€์˜ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ์— ์ƒ๊ด€์—†์ด ํ•„์š”ํ•œ ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํฌ๊ฒŒ ๊ฐœ์„ ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ค‘๊ฐ„ ๋‹จ๊ณ„ ์„œ๋ฒ„์˜ ์ ‘์† ์ •๋ณด๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ์ธก๋ฉด์—์„œ๋„ ํฐ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ค‘์•™ ์ง‘์ค‘์‹ ์ ‘๊ทผ ์ œ์–ด

QueryPie์˜ ํ•ต์‹ฌ ๊ฐ•์ ์€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ค‘์•™์—์„œ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ๊ฒฝ๋กœ์™€ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๋Š” QueryPie ๊ด€๋ฆฌ ์ฝ˜์†”์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋ณ„๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„ ๋ชฉ๋ก๊ณผ ์ ‘๊ทผ ๊ฒฝ๋กœ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋’ท๋‹จ์˜ JumpHost, Reverse Tunnel ๋“ฑ ๋‹ค์–‘ํ•œ ์ ‘์† ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ์ •๋ณด๋Š” ์˜ค์ง ๊ด€๋ฆฌ์ž์— ์˜ํ•ด์„œ๋งŒ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ด๋Ÿฌํ•œ ๋ณต์žกํ•œ ์ ‘์† ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ์•Œ ํ•„์š” ์—†์ด, ๋‹จ์ˆœํžˆ ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋œ ์„œ๋ฒ„์— ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



์œ ์—ฐํ•œ JumpHost ์ง€์›

QueryPie๋Š” ์ „ํ†ต์ ์ธ SSH JumpHost ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ™œ์šฉํ•˜์—ฌ ๋ฉ€ํ‹ฐํ™‰ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ์˜ ์ ‘์†์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๋Š” ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ ์ ‘์† ์„œ๋ฒ„๋“ค์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ๋Ÿฌ SSH JumpHost ๋ฅผ ๊ฑฐ์ณ ์„œ๋ฒ„์— ๋„๋‹ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ JumpHost ์„œ๋ฒ„๋“ค์€ ๋‹จ์ˆœํžˆ ํ„ฐ๋„๋ง ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ์ง์ ‘์ ์ธ shell ์ ‘๊ทผ์€ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ์ตœ์†Œ ๊ถŒํ•œ ์›์น™์„ ๋”ฐ๋ฅด๊ธฐ ์œ„ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ, ๋ณด์•ˆ ์œ„ํ˜‘ ํ‘œ๋ฉด์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

JumpHost ๋ฐฉ์‹์€ ๊ตฌ์„ฑ์ด ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ„๋‹จํ•˜์ง€๋งŒ, ์ค‘๊ฐ„ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ QueryPie ์‹œ์Šคํ…œ ๋‚ด์— ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์—์„œ ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์•ฝ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ QueryPie๋Š” ๋”์šฑ ๊ฐ•ํ™”๋œ ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ์œ„ํ•ด Reverse Tunneling ๊ธฐ๋Šฅ๋„ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Reverse Tunneling ์ง€์›

QueryPie์˜ Reverse Tunneling ๊ธฐ๋Šฅ์€ ์ „ํ†ต์ ์ธ SSH Reverse Tunneling์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SSH ํ”„๋กœํ† ์ฝœ์„ ์„ ํƒํ•œ ์ด์œ ๋Š” ์˜ค๋žœ ๊ธฐ๊ฐ„ ๊ฒ€์ฆ๋œ ์•ˆ์ •์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋ฉฐ, ์ปค๋„ฅ์…˜ ๋‹จ์œ„์˜ ์„ธ๋ฐ€ํ•œ Reverse Tunneling์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Reverse Tunneling ๋ฐฉ์‹์—์„œ๋Š” ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์˜ ์„œ๋ฒ„๊ฐ€ ๋จผ์ € QueryPie ์„œ๋ฒ„๋กœ ์•„์›ƒ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•˜๊ณ , ์ด ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด๋ถ€ ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฐฉ์‹์€ JumpHost์™€ ๋‹ฌ๋ฆฌ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ์˜ ์ธ๋ฐ”์šด๋“œ ์—ฐ๊ฒฐ์ด ์ „ํ˜€ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ•๋ ฅํ•œ ์ธ๋ฐ”์šด๋“œ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ…์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ํ•„์š”ํ•œ ์ ‘๊ทผ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Reverse Tunneling ์ž์ฒด๋„ ์—ฌ๋Ÿฌ ๋„คํŠธ์›Œํฌ ํ™‰์„ ๊ฑฐ์ณ์„œ ์ ‘์†ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ํ™˜๊ฒฝ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด, QueryPie์˜ Reverse Tunneling ๊ธฐ๋Šฅ์— ๋‹ค์ค‘ ํ™‰(Multi-hop) ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…์˜ ํ˜์‹ 

QueryPie์˜ ๊ฐ€์žฅ ํ˜์‹ ์ ์ธ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐฉ์‹์—์„œ๋Š” ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ณ ์ •๋œ ๊ทธ๋ฃน์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ๊ณผ ๊ฐ™์ด ์„œ๋ฒ„๊ฐ€ ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ์‚ญ์ œ๋˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” ๊ด€๋ฆฌ ๋ถ€๋‹ด์ด ์ปธ์Šต๋‹ˆ๋‹ค. QueryPie๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž๋Š” ์„œ๋ฒ„์— ํƒœ๊ทธ๋ฅผ ํ• ๋‹นํ•˜๊ณ , ํŠน์ • ํƒœ๊ทธ๋ฅผ ๊ฐ€์ง„ ์„œ๋ฒ„๊ตฐ์— ๋Œ€ํ•œ ์ ‘์† ์ •์ฑ…์„ ํ•œ ๋ฒˆ์— ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "production" ํƒœ๊ทธ๊ฐ€ ๋ถ™์€ ๋ชจ๋“  ์„œ๋ฒ„์— ๋Œ€ํ•ด ํŠน์ • JumpHost ๋˜๋Š” Reverse Tunnel ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ ‘์†ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์ž๋™ ํ™•์žฅ(Auto-scaling)๋˜๋Š” ์ธํ”„๋ผ ๊ด€๋ฆฌ์— ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.



์‹ค์ œ ์ ์šฉ ์‚ฌ๋ก€: ๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ IP ์ค‘๋ณต ๋ฌธ์ œ ํ•ด๊ฒฐ

QueryPie์˜ ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์€ ๋‹ค์–‘ํ•œ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋กœ, ์—ฌ๋Ÿฌ AWS ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ๊ฐ์ด ๊ฒช๋Š” IP ์ฃผ์†Œ ์ค‘๋ณต ๋ฌธ์ œ๋ฅผ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ AWS ๊ณ„์ •์ด๋‚˜ VPC์—์„œ ๋™์ผํ•œ ์‚ฌ์„ค IP ๋Œ€์—ญ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ๋‹จ์ˆœํžˆ IP ๋งŒ ์ด์šฉํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ผ์šฐํŒ… ๋ฐฉ์‹์œผ๋กœ๋Š” ์ •ํ™•ํ•œ ๋Œ€์ƒ ์„œ๋ฒ„๋ฅผ ์ง€์ •ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

QueryPie๋Š” ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…๊ณผ Reverse Tunneling ์„ ํ†ตํ•ด IP ์ค‘๋ณต ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ์ž์‹ ์ด ์†ํ•œ ๊ณ„์ •์ด๋‚˜ ํ™˜๊ฒฝ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํƒœ๊ทธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, QueryPie๋Š” ์ด ํƒœ๊ทธ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ Reverse Tunnel ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” IP ์ฃผ์†Œ ์ค‘๋ณต ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š” ์—†์ด ์ง๊ด€์ ์ธ ์„œ๋ฒ„ ์ด๋ฆ„์ด๋‚˜ ํƒœ๊ทธ๋งŒ์œผ๋กœ ์›ํ•˜๋Š” ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

QueryPie๋Š” ๋ณต์žกํ•œ ๊ณ„์ธตํ˜• ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ๋ณด์•ˆ๊ณผ ํŽธ์˜์„ฑ์„ ๋™์‹œ์— ์ œ๊ณตํ•˜๋Š” ํ˜์‹ ์ ์ธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์—๊ฒŒ ์ค‘๊ฐ„ ๋‹จ๊ณ„ ์„œ๋ฒ„์˜ ์ ‘์† ์ •๋ณด๋ฅผ ์ „ํ˜€ ๋…ธ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„, Layered Network๋ฅผ ํˆฌ๋ช…ํ•˜๊ฒŒ ํ†ต๊ณผํ•˜์—ฌ ์ตœ์ข… ๋ชฉ์ ์ง€ ์„œ๋ฒ„์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ์ •์ฑ…์„ ๊ฐ•ํ™”ํ•˜๋ฉด์„œ๋„ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

QueryPie๋Š” ํ™˜๊ฒฝ๊ณผ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ JumpHost ๋ฐฉ์‹๊ณผ Reverse Tunneling ๋ฐฉ์‹์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋ฉฐ, ๊ณ ๊ฐ์€ ์ž์‹ ์˜ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ๊ณผ ๋ณด์•ˆ ์ •์ฑ…์— ๋งž๊ฒŒ ๋‘ ๋ฐฉ์‹์„ ์„ ํƒ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Multi-hop ๊ตฌ์„ฑ๋„ ์ง€์›ํ•˜์—ฌ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ๋„ ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ์ ‘์† ๋ฐฉ์‹์˜ ์ง€์›์€ ํ˜„๋Œ€ ๊ธฐ์—…์˜ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ๊ณผ ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑ์‹œํ‚ค๋Š” ๋ฐ ํฐ ์žฅ์ ์ด ๋ฉ๋‹ˆ๋‹ค.

๋ง๋ถ„๋ฆฌ ์‹œ๋Œ€์˜ ์•ˆ์ „ํ•œ ์„œ๋ฒ„ ์ ‘๊ทผ: SSH ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•œ ๋ฉ€ํ‹ฐํ™‰ ์–‘๋ฐฉํ–ฅ ํ„ฐ๋„๋ง ๊ธฐ์ˆ  | QueryPie