TL; DR: ๋ด๋ถ ๋คํธ์ํฌ ๊ตฌ์ฑ ๊ด๋ฆฌ ์์คํ
์ธ QControl์ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ
์ฒ์ ๋ํ ์ค๋ช
์
๋๋ค. ์ด๋ ์๋ํฌ์ธํธ ๊ฐ ์์ถ์ ํ์ง ์๊ณ gzip์ผ๋ก ์์ถ๋ ๋ฉ์์ง์ ์๋ํ๋ XNUMX๊ณ์ธต ์ ์ก ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๋ถ์ฐ ๋ผ์ฐํฐ์ ์๋ํฌ์ธํธ๋ ๊ตฌ์ฑ ์
๋ฐ์ดํธ๋ฅผ ์์ ํ๊ณ ํ๋กํ ์ฝ ์์ฒด๋ฅผ ํตํด ์ง์ญํ๋ ์ค๊ฐ ๋ฆด๋ ์ด๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ์์คํ
์ ์์น์ ๋ฐ๋ผ ๊ตฌ์ถ๋ฉ๋๋ค.
Qrator Labs๋ ์ ์ธ๊ณ์ ์ผ๋ก ๋ถ์ฐ๋ ๊ณต๊ฒฉ ์ํ ๋คํธ์ํฌ๋ฅผ ์ด์ํฉ๋๋ค. ๋น์ฌ ๋คํธ์ํฌ๋ ์ ๋์บ์คํธ ์์น์ ๋ฐ๋ผ ์๋ํ๋ฉฐ ์๋ธ๋ท์ BGP๋ฅผ ํตํด ๊ด๊ณ ๋ฉ๋๋ค. ์ง๊ตฌ์์ ์ฌ๋ฌ ์ง์ญ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์์นํ BGP ์ ๋์บ์คํธ ๋คํธ์ํฌ์ด๊ธฐ ๋๋ฌธ์ ์ธํฐ๋ท์ ํต์ฌ์ธ Tier-1 ์ฌ์ ์์ ๋ ๊ฐ๊น์ด ๋ถ๋ฒ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ณ ํํฐ๋งํ ์ ์์ต๋๋ค.
๋ฐ๋ฉด, ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ๋คํธ์ํฌ๊ฐ ๋๋ ๊ฒ์ ์ฝ์ง ์์ต๋๋ค. ๋ณด์ ์๋น์ค ์ ๊ณต์ ์ฒด๊ฐ ๋ชจ๋ ๋คํธ์ํฌ ๋ ธ๋๋ฅผ ์ผ๊ด๋๊ฒ ๊ตฌ์ฑํ๊ณ ์ ์์ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋คํธ์ํฌ PoP(Point of Presence) ๊ฐ์ ํต์ ์ด ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ์๋น์์๊ฒ ์ต๊ณ ์์ค์ ํต์ฌ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋๋ฅ ์ ์ฒด์ ๊ฑธ์ณ ๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฅผ ์์ ์ ์ผ๋ก ๋๊ธฐํํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํ์ต๋๋ค.
ํ์ด์ ๋ง์์ด ์์๋ค. ์ด๋ ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ํต์ ํ๋กํ ์ฝ์ด ๋์์ต๋๋ค.
QControl ์กด์ฌ์ ์ด์์ด์ ๋์์ ์ด๋ฌํ ์ข
๋ฅ์ ํ๋กํ ์ฝ์ ๊ตฌ์ถํ๋ ๋ฐ ์๋นํ ์๊ฐ๊ณผ ์์์ ์๋นํ๋ ์ฃผ๋ ์ด์ ๋ ์ ๋ขฐํ ์ ์๋ ๋จ์ผ ๊ตฌ์ฑ ์์ค๋ฅผ ํ๋ณดํ๊ณ ๊ถ๊ทน์ ์ผ๋ก ์กด์ฌ ์ง์ ์ ๋๊ธฐํํด์ผ ํ๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ผ๋ก. ์คํ ๋ฆฌ์ง ์์ฒด๋ QControl ๊ฐ๋ฐ ์ค ์ฌ๋ฌ ์๊ตฌ ์ฌํญ ์ค ํ๋์ ๋ถ๊ณผํ์ต๋๋ค. ๋ํ POP(Point of Presence)์์ ๊ธฐ์กด ๋ฐ ๊ณํ๋ ์๋น์ค์์ ํตํฉ, ๋ฐ์ดํฐ ๊ฒ์ฆ์ ์ํ ์ค๋งํธํ๊ณ ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ, ์ก์ธ์ค ์ ์ด๋ ํ์ํ์ต๋๋ค. ์ด ์ธ์๋ ํ์ผ์ ์์ ํ๋ ๋์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์์คํ
์ ์ ์ดํ๊ณ ์ถ์์ต๋๋ค. QControl ์ด์ ์๋ ๋ฐ์ดํฐ๊ฐ ๊ฑฐ์ ์๋์ผ๋ก ์ ์ ์ง์ ์ผ๋ก ์ ์ก๋์์ต๋๋ค. PoP ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ๋์ค์ ์
๋ฐ์ดํธํ๋ ๊ฒ์ ์์ด๋ฒ๋ฆฐ ๊ฒฝ์ฐ ๊ตฌ์ฑ์ด ๋๊ธฐํ๋์ง ์์ ๋ค์ ์์ํ๊ณ ์คํํ๋ ๋ฐ ์๊ฐ์ ๋ญ๋นํด์ผ ํฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ณํ์ ์๊ฐํด ๋์ต๋๋ค.
๊ตฌ์ฑ ์๋ฒ๋ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ ์ ์ฅ์ ๋ด๋นํ๋ฉฐ, ๋ผ์ฐํฐ์๋ ํด๋ผ์ด์ธํธ ๋ฐ ์ง์ ํ์์ ์๋ฒ๋ก, ์๋ฒ์์ ์ ์ ์ง์ ์ผ๋ก ๊ตฌ์ฑ ์
๋ฐ์ดํธ๋ฅผ ์์ ํ๊ณ ๋ธ๋ก๋์บ์คํ
ํ๋ ์ฌ๋ฌ ์๋ํฌ์ธํธ๊ฐ ์์ต๋๋ค.
์ธํฐ๋ท ์ฐ๊ฒฐ ํ์ง์ ์ฌ์ ํ โโ์ ์ธ๊ณ์ ์ผ๋ก ๋ค์ํฉ๋๋ค. ์ด ์ ์ ์ค๋ช ํ๊ธฐ ์ํด ์ฒด์ฝ ํ๋ผํ์์ ์ฑ๊ฐํฌ๋ฅด ๋ฐ ํ์ฝฉ๊น์ง์ ๊ฐ๋จํ MTR์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ๋ผํ์์ ์ฑ๊ฐํฌ๋ฅด๊น์ง MTR
๋๊ธฐ ์๊ฐ์ด ๊ธธ๋ค๋ ๊ฒ์ ์๋๊ฐ ๋ฎ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ฒ๋ค๊ฐ ํจํท ์์ค๋ ์์ต๋๋ค. ์ฑ๋ ํญ์ ์ด ๋ฌธ์ ๋ฅผ ๋ณด์ํ์ง ์์ผ๋ฏ๋ก ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ถํ ๋ ํญ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
PoP์ ์ ์ฒด ๊ตฌ์ฑ์ ์ ๋ขฐํ ์ ์๋ ์ฐ๊ฒฐ์ ํตํด ๋ง์ ์์ ์์๊ฒ ์ ์ก๋์ด์ผ ํ๋ ์๋นํ ์์ ๋ฐ์ดํฐ์ ๋๋ค. ๋คํ์ค๋ฝ๊ฒ๋ ๊ตฌ์ฑ์ ์ง์์ ์ผ๋ก ๋ณ๊ฒฝ๋์ง๋ง ์กฐ๊ธ์ฉ ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ต๊ทผ ์์ ๋ ๋์์ธ
์ฆ๋ถ ์ ๋ฐ์ดํธ ์์น์ ๊ธฐ๋ฐ์ผ๋ก ๋ถ์ฐ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ์๋นํ ํ์คํ ์๋ฃจ์ ์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ํ์ง๋ง diff์๋ ๋ฌธ์ ๊ฐ ๋ง์ต๋๋ค. ์ฐธ์กฐ ์ง์ ๊ฐ์ ๋ชจ๋ ์ฐจ์ด์ ์ ์ ์ฅํด์ผ ํ๋ฉฐ, ๋๊ตฐ๊ฐ๊ฐ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ฅผ ๋์น ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ๋ค์ ๋ณด๋ผ ์๋ ์์ด์ผ ํฉ๋๋ค. ๊ฐ ๋์์ ์๊ฒฉํ๊ฒ ์ง์ ๋ ์์์ ๋ฐ๋ผ ์ด๋ฅผ ์ ์ฉํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋์์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ์ด๋ฌํ ์์ ์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ์์ ์๋ ๋ํ ๋๋ฝ๋ ๋ถ๋ถ์ ์์ฒญํ ์ ์์ด์ผ ํ๋ฉฐ, ๋ฌผ๋ก ์ค์ ๋ถ๋ถ์ ์ด๋ฌํ ์์ฒญ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ตํ์ฌ ๋๋ฝ๋ ๋ฐ์ดํฐ๋ง ๋ณด๋ด์ผ ํฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ค์ ํฅ๋ฏธ๋ก์ด ์๋ฃจ์ ์ ๋๋ฌํ์ต๋๋ค. ์ฐธ์กฐ ๋ ์ด์ด๊ฐ ํ๋๋ง ์๊ณ ๊ณ ์ ๋์ด ์๊ณ ์์ ์ ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ์ต๊ทผ์๋ ๋จ ํ๋์ ์ฐจ์ด์ ๋ง ์์ต๋๋ค. ๊ฐ๊ฐ์ ์ต๊ทผ ํญ๋ชฉ์ ๋ง์ง๋ง์ผ๋ก ์์ฑ๋ ์์ ํญ๋ชฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์์ฑํ๋ ๋ฐ ์ถฉ๋ถํฉ๋๋ค. ์๋ก์ด ์ต์ ํญ๋ชฉ์ด ๋ชฉ์ ์ง์ ๋๋ฌํ์๋ง์ ์ด์ ํญ๋ชฉ์ ๋ ์ด์ ํ์ํ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ต๊ทผ ๊ตฌ์ฑ์ด ๋๋ฌด ์ปค์ก๊ธฐ ๋๋ฌธ์ ๋๋๋ก ์๋กญ๊ณ ์์ ์ ์ธ ๊ตฌ์ฑ์ ๋ณด๋ด๋ ๊ฒ๋ง ๋จ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์ ์ ๊ฐ๋ณ ์์ ์ ๋ฐ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ํตํฉํ๋ ๋ฅ๋ ฅ์ ๋ํด ๊ฑฑ์ ํ์ง ์๊ณ ์ด๋ฌํ ๋ชจ๋ ์ ๋ฐ์ดํธ๋ฅผ ๋ธ๋ก๋์บ์คํธ/๋ฉํฐ์บ์คํธ ๋ชจ๋๋ก ๋ณด๋ธ๋ค๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์ฌ๋์ด ์ฌ๋ฐ๋ฅธ ๋ง๊ตฌ๊ฐ์ ๊ฐ๊ณ ์๋ค๊ณ ํ์ ํ๋ฉด ์ต์ ์ ์ ๋ง๊ตฌ๊ฐ๋ง ๋ณด๋ ๋๋ค. ์ด๊ฒ์ด ์๋ํ๋ค๋ ๊ฒ์ ๋ช ํํ ํ ๊ฐ์น๊ฐ ์์ต๋๊น? ๊ณต์ฅ. ์์ ๋ฒ์ ์ ๊ตฌ์ฑ ์๋ฒ์ ์์ ์์ ์บ์๋๋ฉฐ, ํ์์ ๋ฐ๋ผ ์ต๊ทผ ๋ฒ์ ์ด ์์ฑ๋ฉ๋๋ค.
XNUMX๋จ๊ณ ์ ์ก ์ํคํ ์ฒ
์ ์ฐ๋ฆฌ๋ ๋ ๊ฐ์ง ์์ค์ผ๋ก ์ด์ก ์๋จ์ ๊ตฌ์ถํ์๊น์? ๋๋ต์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์ฐ๋ฆฌ๋ OSI ๋ชจ๋ธ์ ์ ์ก ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์์ ์๊ฐ์ ๋ฐ์ ์์ ์์ค ๋ก์ง์์ ๋ผ์ฐํ ์ ๋ถ๋ฆฌํ๊ณ ์ถ์์ต๋๋ค. ์ ์ก ํ๋กํ ์ฝ์ ์ญํ ์๋ Thrift๋ฅผ ์ฌ์ฉํ๊ณ ์ ์ด ๋ฉ์์ง์ ์์ ์์ค ํ์์๋ msgpack ์ง๋ ฌํ ํ์์ ์ฌ์ฉํ์ต๋๋ค. ๋ฉํฐ์บ์คํธ/๋ธ๋ก๋์บ์คํธ/๋ฆด๋ ์ด๋ฅผ ์ํํ๋ ๋ผ์ฐํฐ๊ฐ msgpack ๋ด๋ถ๋ฅผ ์ดํด๋ณด์ง ์๊ณ , ๋ด์ฉ์ ์ธํฉํ๊ฑฐ๋ ๋ค์ ํฉํ์ง ์๊ณ , ๋ฐ์ดํฐ๋ง ์ ๋ฌํ๋ ์ด์ ๊ฐ ์ฌ๊ธฐ์ ์์ต๋๋ค.
Thrift(์์ด - "thrift", [ฮธrift]๋ก ๋ฐ์)๋ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ์๋น์ค๋ฅผ ์ ์ํ๊ณ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค ์ค๋ช ์ธ์ด์ ๋๋ค. RPC(์๊ฒฉ ํ๋ก์์ ํธ์ถ)๋ฅผ ์ํ ํ๋ ์์ํฌ์ ๋๋ค. ์ํํธ์จ์ด ํ์ดํ๋ผ์ธ์ ์ฝ๋ ์์ฑ ์์ง๊ณผ ๊ฒฐํฉํ์ฌ ์ธ์ด ๊ฐ์ ์ด๋ ์ ๋ ํจ์จ์ ์ด๊ณ ์ฝ๊ฒ ์๋ํ๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
์ฐ๋ฆฌ๋ RPC์ ๋ค์ํ ์ธ์ด ์ง์ ๋๋ฌธ์ Thrift ํ๋ ์์ํฌ๋ฅผ ์ ํํ์ต๋๋ค. ๋ ๊ทธ๋ ๋ฏ์ด ์ฌ์ด ๋ถ๋ถ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ผ์ฐํฐ๋ ๊ฐ๋ฐ ์ค์ ๊ธฐ์ฑ ์๋ฃจ์ ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ๊นจ์ง๊ธฐ ํ๋ ๊ฒ์ผ๋ก ํ๋ช ๋์์ต๋๋ค.
protobuf/gRPC์ ๊ฐ์ ๋ค๋ฅธ ์ต์ ๋ ์์ง๋ง, ํ๋ก์ ํธ๋ฅผ ์์ํ์ ๋ gRPC๋ ์๋นํ ์๋ก์ด ๊ฒ์ด์๊ณ ๊ฐํ ์ด๋ฅผ ๋์ ํ ์๊ฐ์ด ์์์ต๋๋ค.
๋ฌผ๋ก , ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ ์์ ์ ์์ ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๊ทธ๋์ผ ํ์ต๋๋ค). Thrift์์ ๋ผ์ฐํฐ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ๋นํด ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ์๋์ ์ผ๋ก ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ํ์ํ ํ๋กํ ์ฝ์ ๋ง๋๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค. ์ด๋ค ์์ผ๋ก๋ ์์ฒด ์์ฑ ํ๋กํ ์ฝ๊ณผ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ตฌํ์ ๋ํ ์ ํต์ ์ธ ํธ๊ฒฌ์ด ์์ต๋๋ค(ํ๋นํ ์ด์ ๊ฐ ์์). ๋ํ ํ ๋ก ์ค์ ํญ์ "์ด๊ฒ์ ๋ค๋ฅธ ์ธ์ด๋ก ์ด๋ป๊ฒ ํฌํ ํ ๊ฒ์ธ๊ฐ?"๋ผ๋ ์ง๋ฌธ์ด ์ ๊ธฐ๋ฉ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์์ ๊ฑฐ์ ๋ํ ์์ด๋์ด๋ฅผ ์ฆ์ ๋ฒ๋ ธ์ต๋๋ค.
Msgpack์ JSON๊ณผ ์ ์ฌํ์ง๋ง ๋ ๋น ๋ฅด๊ณ ๋ ์์ต๋๋ค. ์ฌ๋ฌ ์ธ์ด ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋ ์ด์ง ๋ฐ์ดํฐ ์ง๋ ฌํ ํ์์ ๋๋ค.
์ฒซ ๋ฒ์งธ ์์ค์๋ ๋ผ์ฐํฐ๊ฐ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ๋ฐ ํ์ํ ์ต์ํ์ ์ ๋ณด๊ฐ ํฌํจ๋ Thrift๊ฐ ์์ต๋๋ค. ๋ ๋ฒ์งธ ์์ค์๋ ํจํค์ง๋ msgpack ๊ตฌ์กฐ๊ฐ ์์ต๋๋ค.
msgpack์ JSON์ ๋นํด ๋ ๋น ๋ฅด๊ณ ์ปดํฉํธํ๊ธฐ ๋๋ฌธ์ ์ ํํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ ์ค์ํ ๊ฒ์ ์ฌ์ฉ์ ์ ์ ๋ฐ์ดํฐ ์ ํ์ ์ง์ํ๋ฏ๋ก ์์ ๋ฐ์ด๋๋ฆฌ ์ ๋ฌ์ด๋ ๋ฐ์ดํฐ ๋ถ์ฌ๋ฅผ ๋ํ๋ด๋ ํน์ ๊ฐ์ฒด ์ ๋ฌ๊ณผ ๊ฐ์ ๋ฉ์ง ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์ด๋ "์ต๊ทผ ์์ " ๋ฐฉ์์ ์ค์ํ์ต๋๋ค.
JMES๊ฒฝ๋ก
JMESPath๋ JSON ์ฟผ๋ฆฌ ์ธ์ด์
๋๋ค.
์ด๋ ๊ณต์ JMESPath ๋ฌธ์์์ ์ป์ ์ค๋ช
๊ณผ ์ ํํ ์ผ์นํ์ง๋ง ์ค์ ๋ก๋ ๊ทธ ์ด์์ ์ํํฉ๋๋ค. JMESPath๋ฅผ ์ฌ์ฉํ๋ฉด ์์์ ํธ๋ฆฌ ๊ตฌ์กฐ์์ ํ์ ํธ๋ฆฌ๋ฅผ ๊ฒ์ ๋ฐ ํํฐ๋งํ๊ณ ์ฆ์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ํ ํน์ ํํฐ ๋ฐ ๋ฐ์ดํฐ ๋ณํ ์ ์ฐจ๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ๋ฌผ๋ก ์ดํดํ๋ ค๋ฉด ๋๋์ ๋
ธ๋ ฅ์ด ํ์ํฉ๋๋ค.
์ง์
์ผ๋ถ ์๋น์์ ๊ฒฝ์ฐ ๊ตฌ์ฑ์ ํ์ผ๋ก ์ ํํด์ผ ํ๋ฏ๋ก ํ
ํ๋ฆฟ ์์ง์ ์ฌ์ฉํ๋ฏ๋ก Jinja๊ฐ ํ์คํ ์ ํ์
๋๋ค. ๋์์ ๋ฐ์ ํ
ํ๋ฆฟ์์ ๊ตฌ์ฑ ํ์ผ๊ณผ ๋์์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ์ ์์ฑํ๋ ค๋ฉด JMESPath ์์ฒญ, FS์ ํ์ผ ์์น์ ๋ํ ํ ํ๋ฆฟ, ๊ตฌ์ฑ ์์ฒด์ ๋ํ ํ ํ๋ฆฟ์ด ํ์ํฉ๋๋ค. ์ด ๋จ๊ณ์์๋ ํ์ผ ๊ถํ์ ๋ช ํํ ํ๋ ๊ฒ๋ ์ข์ ์๊ฐ์ ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ํ๋์ ํ์ผ์ ์ฑ๊ณต์ ์ผ๋ก ๊ฒฐํฉ๋์์ต๋๋ค. ๊ตฌ์ฑ ํ ํ๋ฆฟ์ ์์ํ๊ธฐ ์ ์ ๋๋จธ์ง๋ฅผ ์ค๋ช ํ๋ YAML ํ์์ ํค๋๋ฅผ ๋ฐฐ์นํ์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค
---
selector: "[@][[email protected]._meta.version == `42`] | items([0].fft_config || `{}`)"
destination_filename: "fft/{{ match[0] }}.json"
file_mode: 0644
reload_daemons: [fft]
...
{{ dict(match[1]) | json(indent=2, sort_keys=True) }}
์๋ก์ด ์๋น์ค์ ๋ํ ๊ตฌ์ฑ ํ์ผ์ ๋ง๋ค๊ธฐ ์ํด์๋ ์๋ก์ด ํ ํ๋ฆฟ ํ์ผ๋ง ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค. PoP(Point of Presence)์ ์์ค ์ฝ๋๋ ์ํํธ์จ์ด๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
QControl์ด ์ถ์๋ ํ ๋ฌด์์ด ๋ฐ๋์๋์? ์ฒซ ๋ฒ์งธ์ด์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋คํธ์ํฌ์ ๋ชจ๋ ๋ ธ๋์ ๊ตฌ์ฑ ์ ๋ฐ์ดํธ๋ฅผ ์ผ๊ด๋๊ณ ์์ ์ ์ผ๋ก ์ ๋ฌํ๋ ๊ฒ์ ๋๋ค. ๋ ๋ฒ์งธ๋ ์ง์ํ๊ณผ ์๋น์ค ์๋น์๊ฐ ๊ตฌ์ฑ์ ํ์ธํ๊ณ ๋ณ๊ฒฝํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๊ตฌ์ฑ ์๋ฒ์ ๊ตฌ์ฑ ์์ ์ ๊ฐ์ ํต์ ์ ๋จ์ํํ๊ธฐ ์ํด ์ต๊ทผ ์์ ์ ์ธ ์ ๋ฐ์ดํธ ๊ตฌ์ฑํ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ชจ๋ ์์ ์ ์ํํ ์ ์์์ต๋๋ค. XNUMX๊ณ์ธต ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ฝํ ์ธ ๋ ๋ฆฝ์ ์ธ ๋ฐ์ดํฐ ๋ผ์ฐํ ๋ฐฉ์์ ์ง์ํฉ๋๋ค. Jinja ๊ธฐ๋ฐ ๊ตฌ์ฑ ์์ฑ ์์ง์ ๋ถ์ฐ ํํฐ๋ง ๋คํธ์ํฌ์ ์ฑ๊ณต์ ์ผ๋ก ํตํฉํ์ต๋๋ค. ์ด ์์คํ ์ ๋ถ์ฐํ ๋ฐ ์ด๊ธฐ์ข ์ฃผ๋ณ ์ฅ์น์ ๋ํ ๊ด๋ฒ์ํ ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค.
์๋ฃ ์์ฑ์ ๋์์ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.