Service Mesh ์์๋ณด๊ธฐ
- [Service Mesh] 1. Service Mesh๋?
- [Service Mehs] 2. Envoy Proxy
- [Service Mesh] 3. Istio?
- [Service Mesh] 4. Istio Traffic Management (1) - Virtual Service & Destination Rule
- [Service Mesh] 5. Istio Traffic Managerment (2) - Gateway & Service Entry
- [Service Mesh] 6. Service Monitoring in Istio
- [Service Mesh] 7. Logging
์ด๋ฒ ๊ธ์์๋ MSA๊ฐ ๋ ์ค๋ฅด๋ฉด์ ํจ๊ป ์ฃผ๋ชฉ๋ฐ๊ณ ์๋ Service Mesh์ ๋ํด ์์๋ณด๊ณ ์ ํฉ๋๋ค.
Service Mesh์ ๋ํด ์์๋ณด๊ธฐ ์ ์ ๋จผ์ Service Mesh๊ฐ ์ฃผ๋ชฉ๋ฐ๊ฒ ๋ ๋ฐฐ๊ฒฝ์ธ MSA์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ๊ธฐ์กด ์ํํธ์จ์ด๋ ํตํฉ๋ ๋จ์ผ ์ํคํ ์ฒ, ์ฆ Monolithicํ ์ฑ๊ฒฉ์ ์ง๋๊ณ ์์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐํ๊ฒ ๊ฒฐํฉ๋์ด ์์ด ์ ์ง ๊ด๋ฆฌ ๋ฐ ์ด์ ์ธก๋ฉด์์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง์ฃผํ๊ฒ ๋ฉ๋๋ค.
- ๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ ์ ๋ฐ์ดํธ ๋ฐ ๋ณ๊ฒฝ ์ด๋ ค์
- ํน์ ์๋น์ค๋ง ์ค์ผ์ผ๋ง ๋ถ๊ฐ๋ฅ
์ด๋ฐ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด MSA(Micro Service Architecture)์ ๋๋ค.
MSA?
MSA๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋ฆฝ์ ์ธ ์๋น์ค ๋จ์๋ก ๋ถ๋ฆฌํ๊ณ ๊ฐ ์๋น์ค๋ ๋ค๋ฅธ ์๋น์ค์ ์ํธ ์์ฉํ์ฌ ํ์ํ ์์ ์ ์ํํ๋ ๊ตฌ์กฐ์ ๋๋ค. Monolithic ์ํคํ ์ฒ์ ๋ฌ๋ฆฌ MSA๋ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค. ์ด๋ก ์ธํด ์ป์ ์ ์๋ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์๋น์ค ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ์ ํ ์ ์์ต๋๋ค.
- ํ๋์ ์๋น์ค์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ์๋น์ค๋ ๋์์ด ๊ฐ๋ฅํฉ๋๋ค. (๋ฌผ๋ก ์ฅ์ ๊ฐ ๋ฐ์ํ ์๋น์ค์ ์ฐ๊ด๋ ์๋น์ค๋ ์ฅ์ ๋ฅผ ๊ฒช๊ฒ ๋๋ฉฐ, ์์ ์ฅ์ ๊ฐ ์์คํ ์ ์ฒด๋ก ์ ํ๋ ์ ์๊ธฐ๋ ํฉ๋๋ค.)
- ์๋น์ค๋ง๋ค ํ์ํ ๋ฆฌ์์ค๋ฅผ ๋ค๋ฅด๊ฒ ๋ถ๋ฐฐํ ์ ์์ผ๋ฉฐ, Scale Out์ ์ฉ์ดํฉ๋๋ค.
ํ์ง๋ง, ์ํํ์ ์๋ฏ์ด ์ฅ์ ๋ง ์กด์ฌํ๋ ๊ฒ์ ์๋๋๋ค. MSA๋ฅผ ๋์ ํจ์ ์์ด ํด๊ฒฐํด์ผ ํ๋ ์๋ก์ด ๋์ ๊ณผ์ ๊ฐ ์กด์ฌํฉ๋๋ค.
- Monolithic ์ํคํ ์ฒ์ ๋นํด ์๋น์ค๊ฐ ๋ถ์ฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์๋น์ค ๊ฐ ํต์ ์ ์์ด ๋ณต์ก์ฑ์ด ์ฆ๊ฐํฉ๋๋ค.
- ๋ฐ์ดํฐ์ ๋ํ ํธ๋์ญ์ ์ ์ ์งํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ์ฅ์ ์ถ์ ๋ฐ ๋ชจ๋ํฐ๋ง์ ๋ํ ์ด๋ ค์์ด ์กด์ฌํฉ๋๋ค.
- ํตํฉ ํ ์คํธ์ ๋ํ ์ด๋ ค์์ด ์กด์ฌํฉ๋๋ค.
์ด๋ฐ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด Service Discovery, Circuit Breaker, API Gateway์ ๊ฐ์ ๋๊ตฌ๋ค์ ์ง์ํ๋ Infrastructure Library๊ฐ ๋ฐ์ ํ๊ณ ์์ต๋๋ค. ํ์ง๋ง, Infrastructure Libarary๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ดํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ธํ๋ผ ์ฌ์ด์ ๊ฒฐํฉ๋๋ฅผ ์ฆ๊ฐ์์ผ ์๋น์ค๊ฐ ์ธํ๋ผ์ ์ข ์๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ํ, ์ ํํ ๊ธฐ์ ์คํ์ ํฌํจ๋์ง ์๋ ๊ธฐ๋ฅ์ด๋ผ๋ฉด ๊ทธ ๊ธฐ๋ฅ์ ์ง์ ์ถ๊ฐํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์๋ก์ด ๋ฒ์ ์ ์ถ๊ฐ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆด ์ ๋ฐ์ ์์ต๋๋ค.
Service Mesh?
Service Mesh๋ Application Layer์์ ์ด๋ฐ ๋ถ๋ถ๋ค์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์๋ Infrastructure Layer์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฐ๋ผ์ MSA์ ๊ฐ ์๋น์ค๋ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์๋ง ์ง์คํ ์ ์๊ณ MSA๋ฅผ ๋์ ํจ์ผ๋ก์จ ๋ฐ์ํ๋ ๋ฌธ์ (๋ด๊ฒฐํจ์ฑ, ๋ณด์, ๋ชจ๋ํฐ๋ง ๋ฑ)๋ฅผ Infrastructure Layer์์ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค. ์ถ๊ฐ๋ก ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ ์กด์ฌํฉ๋๋ค.
- ํธ๋ํฝ ์ ์ด
- ์ธ๋ถํ๋ ๋ณด์ ์ ์ฑ ์ ์ฉ
- Tracing ์ ๊ณต
Service Mesh๋ ์ผ๋ฐ์ ์ผ๋ก Sidecar Pattern์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
Sidecar Pattern
Sidecar Pattern์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ก์ง์ด์ธ์ ๋ณ๋๋ก ํ์ํ ๋ก์ง์ ์ํํ๋ ํ๋ก์ธ์ค๋ฅผ ํจ๊ป ๋ฐฐํฌํ๋ ๋ฐฉ์์ ์๋ฏธํฉ๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋ + ์ฌ์ด๋์นด ์ปจํ ์ด๋๋ฅผ ํ๋์ Pod์ผ๋ก ๋ฌถ์ด ๋ฐฐํฌํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
Service Mesh์์ ์ฌ์ด๋์นด๋ ์๋น์ค๊ฐ ๋ชจ๋ ํธ๋ํฝ์ ํ๋ก์ํ๋ฉฐ Service Discovery, Health Check, Routing, Load Balancing, Security, Observability ๊ธฐ๋ฅ์ ์ํํ๊ฒ ๋ฉ๋๋ค. ์ถ๊ฐ๋ก Sidecar๋ Service Mesh์์ Data Plane์ด๋ผ๊ณ ๋ ํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ Service Mesh์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ๊ณผ ์ด๋ป๊ฒ ๊ธฐ์กด ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋์ง์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ๋ค์ ๊ธ์์๋ Sidecar๋ก ์ฌ์ฉ๋๋ Envoy Proxy์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
์ฐธ๊ณ ์๋ฃ
'๐ Service Mesh' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Service Mesh] 6. Service Monitoring in Istio (0) | 2021.01.19 |
---|---|
[Service Mesh] 5. Istio Traffic Management (2) - Gateway & Service Entry (0) | 2021.01.16 |
[Service Mesh] 4. Istio Traffic Management (1) - Virtual Service & Destination Rule (0) | 2021.01.14 |
[Service Mesh] 3. Istio? (0) | 2020.12.22 |
[Service Mesh] 2. Envoy Proxy (0) | 2020.12.21 |
๋๊ธ