์ง๊ธ๋ฐ์ 3๊ฐ์ ์ธ์คํด์ค์ ๊ฐ๊ฐ์ ๋์ปค ์ปจํ
์ด๋๋ฅผ ๋ถ์ฐํด์ผ ํ๋ค. ์ด๋ ์ค๊ณ๋ 1๊ฐ์ ๋งค๋์ ๋
ธ๋์ 2๊ฐ์ ์ํฌ๋
ธ๋๋ก ํ๋์ ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ๋๋ฐ
๋งค๋์ ๋
ธ๋์๋ ์ ํจ์ค, DB์ปจํ
์ด๋(MySQL, Redis, Mongo DB), Traefik์ ์ค์นํ๊ณ ๋๋จธ์ง 2๊ฐ์ ์ธ์คํด์ค์ Spring Cloud Gateway์ ๋ชจ๋ MSA ์คํ๋ง ์๋ฒ์ ๋จธ์ ๋ฌ๋ ์๋ฒ๋ฅผ ๋ ํ๋ฆฌ์นด๋ก ๋ณต์ ํด์ ๋ฐฐํฌํ๋ค.
3๊ฐ์ ๋
ธ๋๋ ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํด์ ์ฐ๊ฒฐํ์!
๋์ปค์ค์์ ์๋๋ถ์ฐ๋ฐฐํฌ๊ธฐ๋ฅ์ด ์ผ์ด๋๋๊น ๋ณต์ ์๋ฅผ 2๊ฐ๋ก ์ง์ ํด์ ๊ฐ ๋ ธ๋๋ง๋ค ํ๊ฐ์ฉ ๋ค์ด๊ฐ๊ฒ ํ๋ค.
๐ ์์ธํ ์ฌํญ์ [ All about ๋์ปค์ค์ ] ์ด ๊ฒ์๊ธ์์ ํ์ธํ์!
์๋๋ NGINX๋ฅผ ์ฌ์ฉํด์ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ฅผ ํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ Spring Cloud Gateway๋ 2๊ฐ์ฉ ๋ณต์ ํด์ ์ฌ์ฉํ๋ค. ์ด๋ ์ธ๋ถ ํด๋ผ์ด์ธํธ์์ ์ด๋ค ์ฃผ์๋ก ๋ณด๋ด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋๋ค.
โ ๋ฐ๋ผ์ ์ธ๋ถ์์ ์ค๋ ์์ฒญ์ ๋ฐ์ ์ ์๋ ์ฃผ์๋ฅผ ํ๋๋ก ํต์ผํด์ผ ํ๊ณ ์ด๋ ๋ก๋๋ฐธ๋ฐ์ฑ์ ํตํด gateway์์ฒญ์ ๋ถ์ฐ์๊ณ ์ ํ์๋ค. ์ด๋ฅผ ์ํด์ ์ด ๋ชจ๋ ๊ธฐ๋ฅ์ด ๊ฐ๋ฅํ Traefik์ ์ฌ์ฉํ๊ธฐ๋ก ํ์๋ค.
๐ Traefik ๊ณต์๋ฌธ์๋ฅผ ๊ณต๋ถํ์๋ค. [ Traefik ๊ณต์๋ฌธ์ ]
์ต์ข ์ ์ผ๋ก ๊ตฌ์ํ ์์คํ ์ํคํ ์ฒ๋ ์๋์ ๊ฐ๋ค.
์ฆ, ์ธ๋ถ์์ ์ค๋ ๋ชจ๋ ์์ฒญ์ Traefik์ ํตํด์ ๋ฐ๊ณ Traefik์์ ๋๊ฐ์ Gateway์ ๋ก๋๋ฐธ๋ฐ์ฑํด์ ์์ฒญํ๋ ํํ์ด๋ฉฐ ๋์ปค์ค์ ์๋น์ค ๋ค์์ผ๋ก Gateway์์๋ ์๋์ ์ผ๋ก ๋ก๋๋ฐธ๋ฌ์ฑํด์ ๋๋จธ์ง MSA ์๋ฒ์๋ค๊ฐ ์์ฒญ์ ๋ณด๋ด๋ ํํ์ด๋ค.
โ ๋์ปค์ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋กค๋ง ์ ๋ฐ์ดํธ๋ฅผ ์์ฒด์ ์ผ๋ก ์ง์ํ๋ฉฐ, ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์๋ค. ํ์ดํ๋ผ์ธ ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํ์ฌ ๋กค๋ง ์ ๋ฐ์ดํธ ์ ๋ต์ผ๋ก ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์ํํ์.
๐ ๋ฌด์ค๋จ ๋ฐฐํฌ ๋ฐฉ์ ์ข ๋ฅ๋ [ ๋ฌด์ค๋จ ๋ฐฐํฌ ์ํคํ ์ฒ ๋ฐ ์ ๋ต ] ์ด ๊ฒ์๊ธ์ ์ฐธ๊ณ ํ์!