Cloud Service Mesh ๊ฐ์
์ด ๋ฌธ์๋ Cloud Service Mesh ๋ฐ ํด๋น ๊ธฐ๋ฅ์ ์ตํ๋ ค๋ ๋คํธ์ํฌ ๊ด๋ฆฌ์ ๋ฐ ์๋น์ค ์์ ์๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. ๋ถํ ๋ถ์ฐ API๋ฅผ ์ฌ์ฉํ๋ ๊ตฌ์ฑ์ ์ ์ฉ๋๋ ๊ธฐ์กด ๋ฌธ์์ ๋๋ค.
Cloud Service Mesh๋ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน์ ์ํ ๊ด๋ฆฌํ ์ปจํธ๋กค ํ๋ ์ธ์ ๋๋ค. Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ํฝ ๊ด๋ฆฌ ๋ฐ ๊ด์ธก ๊ฐ๋ฅ์ฑ๊ณผ ๊ฐ์ ๊ณ ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๊ธฐ๋ฅ์ ๊ฐ์ถ ๊ฐ์ฉ์ฑ์ด ๋์ ์ ์ญ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ฐฐํฌ ์ ์๋น์ค ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค ์๊ฐ ์ฆ๊ฐํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํฉ๋๋ค.
- ์๋น์ค๋ฅผ ํ๋ ฅ์ ์ผ๋ก ์ค์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
- ์๋น์ค์ ํธ๋ํฝ์ ์ด๋ป๊ฒ ์ ๋ฌํ๊ณ ์๋น์ค๊ฐ ์๋ก ์ด๋ป๊ฒ ์๊ณ ํต์ ํ๋์?
- ์๋น์ค๊ฐ ์๋ก ํต์ ํ ๋ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ์ด๋ป๊ฒ ์ ์ ์๋์?
- ์๋น์ค ์ค๋จ ์์ด ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
- ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
Cloud Service Mesh๋ ํ๋์ ์ธ ์๋น์ค ๊ธฐ๋ฐ ๋ฐฐํฌ์์ ์ด๋ฌํ ์ ํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. Cloud Service Mesh๋ Google Cloud๊ด๋ฆฌํ ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์์ฒด ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๋ณต์ก์ฑ์ ๊ด๋ฆฌ๋ Cloud Service Mesh์ ๋งก๊ธฐ๊ณ ๋น์ฆ๋์ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ง์คํ์ธ์.
Cloud Service Mesh
์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ํจํด์ ์๋น์ค ๋ฉ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. Cloud Service Mesh๋ ์๋น์ค ๋ฉ์์ ํ์์ ๋ง๋ ๊ธฐํ ๋ฐฐํฌ ํจํด์ ์ง์ํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ์๋น์ค ๋ฉ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์๋น์ค๋ฅผ Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํฉ๋๋ค.
- ๊ฐ ์๋น์ค์ pod์๋ ์ฌ์ด๋์นด ํ๋ก์๋ก ์คํ๋๋ ์ ์ฉ ํ๋ก์(์ผ๋ฐ์ ์ผ๋ก Envoy)๊ฐ ์์ต๋๋ค.
- ๊ฐ ์ฌ์ด๋์นด ํ๋ก์๋ ํด๋ฌ์คํฐ์ ์ค์น๋ ๋คํธ์ํน ์ธํ๋ผ (์ ์ด ์์ญ)์ ํต์ ํฉ๋๋ค. ์ ์ด ์์ญ์ ์ฌ์ด๋์นด ํ๋ก์์ ์๋น์ค ๋ฉ์์ ์๋น์ค, ์๋ํฌ์ธํธ, ์ ์ฑ ์ ๋ํ์ฌ ์๋ ค์ค๋๋ค.
- pod๊ฐ ์์ฒญ์ ์ ์กํ๊ฑฐ๋ ์์ ํ๋ฉด ์์ฒญ์ pod์ ์ฌ์ด๋์นด ํ๋ก์๋ก ์ด๋ํฉ๋๋ค. ์ฌ์ด๋์นด ํ๋ก์๋ ์์ฒญ์ ์๋ํ ๋์์๊ฒ ๋ณด๋ด๋ ๋ฑ์ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฐ ๊ธฐํ Cloud Service Mesh ๋ฌธ์์ ๋ค์ด์ด๊ทธ๋จ์์ 6๋ฉด์ ๋ถํ์ ์์ด์ฝ์ ํ๋ก์๋ฅผ ๋ํ๋
๋๋ค. ์ ์ด ์์ญ์ ๊ฐ ํ๋ก์์ ์ฐ๊ฒฐ๋์ด ํ๋ก์๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ ์ฌ์ด์ ํ์ดํ๋ ํธ๋ํฝ ํ๋ฆ์ ๋ํ๋
๋๋ค. ์๋ฅผ ๋ค์ด Service A
์ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ ์์ฒญ์ ์ ์กํฉ๋๋ค. ํ๋ก์๋ ์์ฒญ์ ์ฒ๋ฆฌํ์ฌ Service B
์ ์ ๋ฌํฉ๋๋ค.
์ด ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋ ๋ฐ์ผ๋ก ๋คํธ์ํน ๋ก์ง์ ์ด๋ํ ์ ์์ต๋๋ค. ์ธํ๋ผ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน์ ์ฒ๋ฆฌํ๋๋ก ํ์ฉํ๋ฉด์ ๋น์ฆ๋์ค ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ง์คํ ์ ์์ต๋๋ค.
Cloud Service Mesh์ ์ฐจ์ด์
Cloud Service Mesh๋ ํด๋น ๋ชจ๋ธ๊ณผ ๋น์ทํ๊ฒ ์๋ํ์ง๋ง ์ค์ํ ์ฐจ์ด์ ์ด ์์ต๋๋ค. ์ด ์ฐจ์ด์ ์ Cloud Service Mesh๊ฐGoogle Cloud๊ด๋ฆฌํ ์๋น์ค๋ผ๋ ์ฌ์ค์์ ๋น๋กฏ๋ฉ๋๋ค. ์ค์นํ์ง ์๊ณ ํด๋ฌ์คํฐ์์ ์คํ๋์ง ์์ผ๋ฉฐ ์ด๋ฅผ ์ ์ง๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์์ Cloud Service Mesh๋ ์ปจํธ๋กค ํ๋ ์ธ์
๋๋ค. ์ด Kubernetes ํด๋ฌ์คํฐ์๋ Cloud Service Mesh์ ์ฐ๊ฒฐ๋ ์ฌ์ด๋์นด ํ๋ก์๋ฅผ ๊ฐ๊ฐ ์ฌ์ฉํ๋ ๋ค ๊ฐ์ ์๋น์ค๊ฐ ์์ต๋๋ค. Cloud Service Mesh๋ ํ๋ก์๊ฐ ์์ฒญ์ ๋ผ์ฐํ
ํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด Service A
์ ์ํ๋ pod์ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ ์์ฒญ์ ์ ์กํฉ๋๋ค. ์ด pod์ ํจ๊ป ์คํ๋๋ ์ฌ์ด๋์นด ํ๋ก์๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ Service B
์ ์ํ๋ pod๋ก ๋ผ์ฐํ
ํฉ๋๋ค.
์๋น์ค ๋ฉ์๋ฅผ ๋ฒ์ด๋จ
Cloud Service Mesh๋ ์ผ๋ฐ์ ์ธ ์๋น์ค ๋ฉ์๋ณด๋ค ๋ ๋ง์ ์ ํ์ ๋ฐฐํฌ๋ฅผ ์ง์ํฉ๋๋ค.
๋ฉํฐ ํด๋ฌ์คํฐ Kubernetes
Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉด Kubernetes ํด๋ฌ์คํฐ ์ ์ฒด์์ ์๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์
๋คํธ์ํน์ ์ด์ฉํ ์ ์์ต๋๋ค. ๋ค์ ๋ค์ด์ด๊ทธ๋จ์์ Cloud Service Mesh๋ us-central1
๋ฐ europe-west1
์์ Kubernetes ํด๋ฌ์คํฐ์ ์ปจํธ๋กค ํ๋ ์ธ์ ์ ๊ณตํฉ๋๋ค.
us-central1
์ ์ธ ๊ฐ์ง ์๋น์ค, europe-west1
์ ๋ ๊ฐ์ง ์๋น์ค, ๋ ํด๋ฌ์คํฐ์ ์๋น์ค ๊ฐ์ ์์ฒญ์ด ๋ผ์ฐํ
๋ ์ ์์ต๋๋ค.
์๋น์ค ๋ฉ์๋ ์ฌ๋ฌGoogle Cloud ๋ฆฌ์ ์ ์ฌ๋ฌ Kubernetes ํด๋ฌ์คํฐ์์ ํ์ฅ๋ ์ ์์ต๋๋ค. ํ ํด๋ฌ์คํฐ์ ์๋น์ค๋ ๋ค๋ฅธ ํด๋ฌ์คํฐ์ ์๋น์ค์ ํต์ ํ ์ ์์ต๋๋ค. ๋ํ ์ฌ๋ฌ ํด๋ฌ์คํฐ์ pod๋ก ๊ตฌ์ฑ๋ ์๋น์ค๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Cloud Service Mesh์ ๊ทผ์ ๊ธฐ๋ฐ ์ ์ญ ๋ถํ ๋ถ์ฐ์ ํตํด Service B
๋ฅผ ๋์์ผ๋ก ํ๋ ์์ฒญ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ํฌ๋๋ก ์ด๋ํฉ๋๋ค. ๋ํ ์ฅ์ ์กฐ์น๋ ์ํํ๊ฒ ์ด๋ฃจ์ด์ง๋๋ค. pod๊ฐ ๋ค์ด๋๋ฉด ์์ฒญ์ ์ด pod๊ฐ ๋ค๋ฅธ Kubernetes ํด๋ฌ์คํฐ์ ์๋๋ผ๋ ์์ฒญ์์ ์ฒ๋ฆฌํ ์ ์๋ ๋ค๋ฅธ pod๋ก ์๋์ผ๋ก ์ฅ์ ์กฐ์น๋ฉ๋๋ค.
๊ฐ์ ๋จธ์
Kubernetes๊ฐ ์ ์ ์ธ๊ธฐ๊ฐ ๋ง์์ง๊ณ ์์ง๋ง ๊ฐ์ ๋จธ์ (VM)์ ๋ง์ ์ํฌ๋ก๋๊ฐ ๋ฐฐํฌ๋ฉ๋๋ค. Cloud Service Mesh๋ ์ด๋ฌํ ์ํฌ๋ก๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน๋ ํด๊ฒฐํฉ๋๋ค. VM ๊ธฐ๋ฐ ์ํฌ๋ก๋๋ Kubernetes ๊ธฐ๋ฐ ์ํฌ๋ก๋์ ์ํธ ์ด์ฉ๋ฉ๋๋ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์์๋ ํธ๋ํฝ์ด ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด ๋ฐฐํฌ๋ก ๋ค์ด๊ฐ๋๋ค. asia-southeast1
์ Kubernetes ํด๋ฌ์คํฐ์ ์๋ Service A
๋ฐ europe-west1
์ VM์์ Service D
๋ก ๋ผ์ฐํ
๋ฉ๋๋ค.
Google์ Cloud Service Mesh๋ก VM ๊ธฐ๋ฐ ์ํฌ๋ก๋๋ฅผ ์ค์ ํ ์ ์๋ ์ํํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. Compute Engine VM ์ธ์คํด์ค ํ ํ๋ฆฟ์ ํ๋๊ทธ๋ง ์ถ๊ฐํ๋ฉด Google์์ ์ธํ๋ผ ์ค์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด ์ค์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํ๋ก์ ์ค์น ๋ฐ ๊ตฌ์ฑ์ด ํฌํจ๋ฉ๋๋ค.
ํ๋ก์ ์๋ gRPC
gRPC๋ ๊ณ ์ฑ๋ฅ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด ํ๋ถํ ์คํ์์ค RPC ํ๋ ์์ํฌ์ ๋๋ค. Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๊ธฐ๋ฅ(์: ์๋น์ค ๊ฒ์, ๋ถํ ๋ถ์ฐ, ํธ๋ํฝ ๊ด๋ฆฌ)์ gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Cloud Service Mesh ๋ฐ gRPC: ์๋น์ค ๋ฉ์์ฉ ํ๋ก์๋ฆฌ์ค ์๋น์ค๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์์ gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ๋ฆฌ์ ์ Kubernetes ํด๋ฌ์คํฐ์ ๊ธฐ๋ฐ์ ๋ ์๋น์ค์ ๋ค๋ฅธ ๋ฆฌ์ ์ VM์์ ์คํ๋๋ ์๋น์ค๋ก ํธ๋ํฝ์ ๋ผ์ฐํ ํฉ๋๋ค. ์ด ์ค ๋ ๊ฐ์ง ์๋น์ค์๋ ์ฌ์ด๋์นด ํ๋ก์๊ฐ ํฌํจ๋๊ณ ๋ค๋ฅธ ์๋น์ค๋ ํ๋ก์๋ฆฌ์ค์ ๋๋ค.
Cloud Service Mesh๋ ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค๋ฅผ ์ง์ํฉ๋๋ค. ์ด ์๋น์ค๋ xDS API๋ฅผ ์ง์ํ๋ ์ต์ ๋ฒ์ ์ ์คํ์์ค gRPC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ Envoy์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ xDS API๋ฅผ ์ฌ์ฉํ์ฌ Cloud Service Mesh์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
gRPC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฐ๊ฒฐ๋๋ฉด ์๋น์ค ๊ฒ์, ๋ถํ ๋ถ์ฐ ๋ฐ ํธ๋ํฝ ๊ด๋ฆฌ์ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ gRPC์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ํ๋ฏ๋ก ์๋น์ค ํ๋ก์๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ธ๊ทธ๋ ์ค ๋ฐ ๊ฒ์ดํธ์จ์ด
๋ง์ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ Cloud Service Mesh๋ก ๊ตฌ์ฑ๋์ง ์์ ํด๋ผ์ด์ธํธ์์ ๋ฐ์ํ๋ ํธ๋ํฝ์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ณต๊ฐ ์ธํฐ๋ท ํธ๋ํฝ์ ๋ง์ดํฌ๋ก์๋น์ค์ ์ธ๊ทธ๋ ์คํด์ผ ํ ์ ์์ต๋๋ค. ๋ํ ํธ๋ํฝ์ ๋์์ผ๋ก ๋ณด๋ด๊ธฐ ์ ์ ํด๋ผ์ด์ธํธ์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๋ ์ญ๋ฐฉํฅ ํ๋ก์๋ก ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์์ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ Kubernetes ํด๋ฌ์คํฐ์ ์๋น์ค๋ก ๋ผ์ฐํ ๋๋ ํธ๋ํฝ์ ๊ฐ์ง๊ณ ์ธ๋ถ ํด๋ผ์ด์ธํธ์ ๋ํด ์ธ๊ทธ๋ ์ค๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋ด๋ถ ํธ๋ํฝ์ VM์์ ์คํ๋๋ ์๋น์ค๋ก ๋ผ์ฐํ ํฉ๋๋ค.
Cloud Service Mesh๋ Cloud Load Balancing๊ณผ ํ๋ ฅํ์ฌ ๊ด๋ฆฌํ ์ธ๊ทธ๋ ์ค ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ์ธ๋ถ ๋๋ ๋ด๋ถ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ค์ ํ ํ ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ํธ๋ํฝ์ ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ ์กํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค. ์์ ๋ค์ด์ด๊ทธ๋จ์์ ๊ณต๊ฐ ์ธํฐ๋ท ํด๋ผ์ด์ธํธ๋ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด ์๋น์ค์ ๋๋ฌํฉ๋๋ค. Virtual Private Cloud(VPC) ๋คํธ์ํฌ์ ์๋ ๋ง์ดํฌ๋ก์๋น์ค์ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก์์๋ Cloud Service Mesh๋ฅผ ์ค์ ํ์ฌ ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ตฌ์ฑํด์ผ ํ ์ ์์ต๋๋ค. ๊ฒ์ดํธ์จ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ ์ด์์ VM์์ ์คํ๋๋ ์ ํ์ ์ธ Envoy์ธ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ก ์์ ์์ฒญ์ ๋ฆฌ์จํ๊ณ ์ฒ๋ฆฌํ ๋ค์ ๋์์ผ๋ก ์ ์กํฉ๋๋ค. ๋์์ ๋ชจ๋ Google Cloud ๋ฆฌ์ ๋๋ Google Kubernetes Engine(GKE) ํด๋ฌ์คํฐ์ ์์ ์ ์์ต๋๋ค. ํ์ด๋ธ๋ฆฌ๋ ์ฐ๊ฒฐ์ ์ฌ์ฉํ์ฌGoogle Cloud ์์ ์ฐ๊ฒฐํ ์ ์๋ Google Cloud ์ธ๋ถ์ ๋์์ผ ์๋ ์์ต๋๋ค. ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฉ์์ ์ธ๊ทธ๋ ์ค ํธ๋ํฝ์ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์์ europe-west1
๋ฆฌ์ ์ VM์ ํ๋ก์๋ฅผ ์คํํ์ง ์๋ ์ธ๊ฐ์ง ์๋น์ค์ ๊ฒ์ดํธ์จ์ด ์ญํ ์ ํ๋ ํ๋ก์๋ฅผ ์คํํฉ๋๋ค. ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ํธ๋ํฝ์ ๋ชจ๋ ๊ฒ์ดํธ์จ์ด๋ก ๋ผ์ฐํ
๋ ํ 3๊ฐ์ ์๋น์ค๋ก ๋ผ์ฐํ
๋ฉ๋๋ค.
์ฌ๋ฌ ํ๊ฒฝ
์๋น์ค๊ฐ Google Cloud, ์จํ๋ ๋ฏธ์ค, ๋ค๋ฅธ ํด๋ผ์ฐ๋ ๋๋ ์ด ๋ชจ๋ ํ๊ฒฝ์ ์๋๋ผ๋ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๋ฌธ์ ๋ ๊ทธ๋๋ก ๋จ์ ์์ต๋๋ค. ์ด๋ฌํ ์๋น์ค๋ก ํธ๋ํฝ์ ์ด๋ป๊ฒ ๊ฐ์ ธ์ค๋์? ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์๋น์ค๊ฐ ์๋ก ์ด๋ป๊ฒ ํต์ ํ๋์?
๋ค์ ๋ค์ด์ด๊ทธ๋จ์์ Cloud Service Mesh๋ Google Cloud ์์ ์คํ ์ค์ธ ์๋น์ค๋ก๋ถํฐ ๋ค๋ฅธ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋์์ ์คํ ์ค์ธ Service G
์ ์จํ๋ ๋ฏธ์ค ๋ฐ์ดํฐ ์ผํฐ์์ ์คํ ์ค์ธ Service E
๋ฐ Service F
๋ก ํธ๋ํฝ์ ๋ผ์ฐํ
ํฉ๋๋ค.
Service A
, Service B
, Service C
๋ Envoy๋ฅผ ์ฌ์ด๋์นด ํ๋ก์๋ก ์ฌ์ฉํ๊ณ Service D
๋ ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค์
๋๋ค.
Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ฉดGoogle Cloud์ธ๋ถ์ ๋์์ผ๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด Cloud Interconnect ๋๋ Cloud VPN์ ์ฌ์ฉํ์ฌ Google Cloud ๋ด๋ถ์ ์๋น์ค์์ ๋ค๋ฅธ ํ๊ฒฝ์ ์๋น์ค ๋๋ ๊ฒ์ดํธ์จ์ด๋ก ํธ๋ํฝ์ ๋น๊ณต๊ฐ๋ก ๋ผ์ฐํ ํ ์ ์์ต๋๋ค.
Cloud Service Mesh ์ค์
Cloud Service Mesh ์ค์ ์ ๋ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ค์ ํ๋ก์ธ์ค๋ฅผ ์๋ฃํ๋ฉด ์ธํ๋ผ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน์ ์ฒ๋ฆฌํ๊ณ Cloud Service Mesh๊ฐ ๋ฐฐํฌ ๋ณ๊ฒฝ์ฌํญ์ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ต์ ์ํ๋ก ์ ์งํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
๋จผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์ปจํ ์ด๋ ๋๋ VM์ ๋ฐฐํฌํฉ๋๋ค. Google์ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ์ธํ๋ผ(์ผ๋ฐ์ ์ผ๋ก Envoy ํ๋ก์)๋ฅผ VM ์ธ์คํด์ค์ ํฌ๋์ ์ถ๊ฐํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์ด ์ธํ๋ผ๋ Cloud Service Mesh์ ํต์ ํ๊ณ ์๋น์ค์ ๋ํด ํ์ตํ๋๋ก ์ค์ ๋์์ต๋๋ค.
Cloud Service Mesh ๊ตฌ์ฑ
๋ค์์ผ๋ก ์ ์ญ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๊ณ ํธ๋ํฝ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. Cloud Service Mesh๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด Google Cloud ์ฝ์(์ผ๋ถ ๊ธฐ๋ฅ ๋ฐ ๊ตฌ์ฑ), Google Cloud CLI, Traffic Director API ๋๋ Terraform๊ณผ ๊ฐ์ ๊ธฐํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์ด ๋จ๊ณ๋ฅผ ์๋ฃํ๋ฉด Cloud Service Mesh๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ์ธํ๋ผ๋ฅผ ๊ตฌ์ฑํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ธํ๋ผ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ์ฒ๋ฆฌ
์ ํ๋ฆฌ์ผ์ด์
์ด my-service
๋ก ์์ฒญ์ ์ ์กํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
๋คํธ์ํน ์ธํ๋ผ(์: Envoy ์ฌ์ด๋์นด ํ๋ก์)๋ Cloud Service Mesh๋ก๋ถํฐ ๋ฐ์ ์ ๋ณด์ ๋ฐ๋ผ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด my-service
์์ฒญ์ด ์์ฒญ์ ์์ ํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค๋ก ์ํํ๊ฒ ๋ผ์ฐํ
๋ฉ๋๋ค.
๋ชจ๋ํฐ๋ง ๋ฐ ์ง์์ ์ ๋ฐ์ดํธ
Cloud Service Mesh๋ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ์ด ๋ชจ๋ํฐ๋ง์ ํตํด Cloud Service Mesh๋ ์๋น์ค๊ฐ ์ ์์ธ์ง ๋๋ ์ Kubernetes ํฌ๋ ์์ฑ ๋ฑ์ผ๋ก ์ธํด ์๋น์ค ์ฉ๋์ด ๋ณ๊ฒฝ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค. ์ด ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Cloud Service Mesh๋ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ์ธํ๋ผ๋ฅผ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.
๊ธฐ๋ฅ
Cloud Service Mesh์ ๊ธฐ๋ฅ์ ๋ง์ดํฌ๋ก์๋น์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ช ๊ฐ์ง ์ฃผ์ ๋ด์ฉ์ด ์ด ์น์ ์์ ์ค๋ช ๋์ด ์์ต๋๋ค.
์์ ๊ด๋ฆฌํ ์ ์ด ์์ญ, ์ํ ์ ๊ฒ ๋ฐ ๋ถํ ๋ถ์ฐ
์ธํ๋ผ ๊ด๋ฆฌ๊ฐ ์๋ ๋น์ฆ๋์ค ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์๊ฐ์ ์๋นํ๊ณ ์ ํฉ๋๋ค. Cloud Service Mesh๋ ์์ ๊ด๋ฆฌํ ์๋ฃจ์ ์ด๋ฏ๋ก ์ธํ๋ผ๋ฅผ ์ค์น, ๊ตฌ์ฑ ๋๋ ์ ๋ฐ์ดํธํ ํ์๊ฐ ์์ต๋๋ค. Google์ด ์ํ ์ ๊ฒ ๋ฐ ๊ธ๋ก๋ฒ ๋ถํ ๋ถ์ฐ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ์ธํ๋ผ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
์คํ์์ค ์ ํ ๊ธฐ๋ฐ ๋น๋
Cloud Service Mesh๋ Envoy ๋ฐ Istio์ ๊ฐ์ ์คํ์์ค ํ๋ก์ ํธ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋์ผํ ์ปจํธ๋กค ํ๋ ์ธ(xDS API)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ง์๋๋ API ๋ฒ์ ์ ๋ณด๋ ค๋ฉด xDS ์ปจํธ๋กค ํ๋ ์ธ API๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ Envoy ๋๋ gRPC์ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ธํ๋ผ๋ ์คํ์์ค์ด๋ฏ๋ก ๋ ์ ์ธํ๋ผ์ ์ข ์๋ ๊ฑฑ์ ์ด ์์ต๋๋ค.
ํ์ฅ
Cloud Service Mesh๋ ์ผํ์ฑ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ์๋ฃจ์ ๋ถํฐ ์์ฒ ๊ฐ์ ์๋น์ค๋ฅผ ๊ฐ์ถ ๋๊ท๋ชจ ์๋น์ค ๋ฉ์ ๋ฐฐํฌ์ ์ด๋ฅด๊ธฐ๊น์ง ํ์ฅ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๋๋ก ๋น๋๋์์ต๋๋ค.
์๋ํฌ์ธํธ ๋ฐ ๋ฐฑ์๋ ์๋น์ค ๊ฒ์ ๋ฐ ์ถ์
์ ํ๋ฆฌ์ผ์ด์
์ด my-service
์ ์์ฒญ์ ๋ณด๋ด๋ฉด ์ธํ๋ผ๊ฐ ์ํ ํ๊ฒ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ฌ๋ฐ๋ฅธ ๋์์ผ๋ก ๋ณด๋
๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ IP ์ฃผ์, ํ๋กํ ์ฝ ๋๋ ๊ธฐํ ๋คํธ์ํน ๋ณต์ก์ฑ์ ๋ํด ์๋ฌด๊ฒ๋ ์ ํ์๊ฐ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ๋ถํ ๋ถ์ฐ ๋ฐ ์ฅ์ ์กฐ์น
Cloud Service Mesh๋ Google์ ์ ์ญ ๋ถํ ๋ถ์ฐ ๋ฐ ์ํ ์ ๊ฒ์ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ๋ฐ ๋ฐฑ์๋ ์์น, ๋ฐฑ์๋ ๊ทผ์ ์ฑ, ์ํ, ์ฉ๋์ ๊ธฐ์ค์ผ๋ก ํธ๋ํฝ์ ์ต์ ์ผ๋ก ์กฐ์ ํฉ๋๋ค. ํธ๋ํฝ์ด ์ฉ๋์ด ์๋ ์ ์ ๋ฐฑ์๋๋ก ์๋์ผ๋ก ์ฅ์ ์กฐ์น๋ฅผ ์ํํ์ฌ ์๋น์ค ๊ฐ์ฉ์ฑ์ ๋์ด์ธ์. ๋ถํ ๋ถ์ฐ์ ๋ง์ถค์ค์ ํ์ฌ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ ์ ์ ํ๊ฒ ์ง์ํ๋๋ก ํธ๋ํฝ์ ๋ถ์ฐํ ์ ์์ต๋๋ค.
ํธ๋ํฝ ๊ด๋ฆฌ
๋ผ์ฐํ ๋ฐ ์์ฒญ ์กฐ์(ํธ์คํธ ์ด๋ฆ, ๊ฒฝ๋ก, ํค๋, ์ฟ ํค ๋ฑ)์ ํฌํจํ ๊ณ ๊ธ ํธ๋ํฝ ๊ด๋ฆฌ๋ฅผ ํตํด ์๋น์ค ๊ฐ ํธ๋ํฝ ํ๋ฆ ๋ฐฉ์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ํ ์นด๋๋ฆฌ์ ๋ฐฐํฌ๋ฅผ ์ํด ์ฌ์๋, ๋ฆฌ๋๋ ์ , ๊ฐ์ค์น ๊ธฐ๋ฐ ํธ๋ํฝ ๋ถํ ๊ณผ ๊ฐ์ ์์ ์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ฒฐํจ ์ฃผ์ , ํธ๋ํฝ ๋ฏธ๋ฌ๋ง, ์ด์์ ๊ฐ์ง์ ๊ฐ์ ๊ณ ๊ธ ํจํด์ ์ฌ์ฉํ๋ฉด DevOps ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํตํด ๋ณต์๋ ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๊ด์ธก ๊ฐ๋ฅ์ฑ
์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ์ธํ๋ผ๋ Google Cloud Observability์์ ์ค์ ์ง์ค์์ผ๋ก ์ง๊ณํ ์ ์๋ ์ธก์ ํญ๋ชฉ, ๋ก๊ทธ, trace์ ๊ฐ์ ์๊ฒฉ ๋ถ์ ์ ๋ณด๋ฅผ ์์งํฉ๋๋ค. ์ด ์ ๋ณด๊ฐ ์์ง๋ ํ ์ ์ฉํ ์ ๋ณด๋ฅผ ์ป๊ณ ์๋ฆผ์ ๋ง๋ค์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋ฆผ์ ๋ฐ์ ์ ์์ต๋๋ค.
VPC ์๋น์ค ์ ์ด
VPC ์๋น์ค ์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ฆฌ์์ค์ ์๋น์ค์ ์ถ๊ฐ ๋ณด์์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ฆฌ์์ค์ ์๋น์ค(์: Cloud Service Mesh)๋ฅผ ๊ฒฝ๊ณ ์ธ๋ถ์์ ๋ฐ์ํ๋ ์์ฒญ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ์๋น์ค ๊ฒฝ๊ณ์ ํ๋ก์ ํธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. VPC ์๋น์ค ์ ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ VPC ์๋น์ค ์ ์ด ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
VPC ์๋น์ค ์ ์ด์ ํจ๊ป Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ง์๋๋ ์ ํ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋จ๊ณ
๋ถํ ๋ถ์ฐ API์ ์ฃผ๋ก ์ ์ฉ๋๋ ๊ธฐ์กด ๋ฌธ์์ ๋๋ค. ๋ถํ ๋ถ์ฐ API๋ฅผ ์ฌ์ฉํ์ฌ Cloud Service Mesh๋ฅผ ๊ตฌ์ฑํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
Cloud Service Mesh๋ฅผ ๋ฐฐํฌํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- VM์ด ์๋ Compute Engine์ ๊ฒฝ์ฐ ์๋น์ค ๋ผ์ฐํ API๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ํฌ๋๊ฐ ์๋ Google Kubernetes Engine์ ๊ฒฝ์ฐ Gateway API๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค์ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์ํคํ ์ฒ ํจํด์ ์ฐพ์ผ๋ ค๋ฉด ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
ํธ๋ํฝ ๊ด๋ฆฌ๋ฅผ ํตํด ํธ๋ํฝ์ด ์ฒ๋ฆฌ๋๋ ๋ฐฉ์์ ์ ์ดํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ๊ณ ๊ธ ํธ๋ํฝ ๊ด๋ฆฌ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์
Cloud Service Mesh์์Google Cloud์ธ๋ถ๋ก ํ์ฅ๋๋ ํ๊ฒฝ์ ์ง์ํ๋ ๋ฐฉ๋ฒ์ ๋ค์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.