- Auto Scaling: ์ต์ํ์ ์ธ์คํด์ค ~ ํ์์ ๋ฐ๋ผ ์ค์ผ์ผ ์์ํ์ฌ ์ฌ์ฉ๋์ ๋ง์ถฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- Microservices: Cloud Native Application์ ํต์ฌ์ผ๋ก ์๋น์ค๋ฅผ ์ ๋ง์ ๋ ๋ฆฝ์ ์ธ ๋ชจ๋๋ก ์ธ๋ถํ ํ๋ค.
- Chaos Engineering: ์์คํ ์ด ์์ธกํ์ง ๋ชปํ ์ํฉ์๋ ๊ฒฌ๋ ์ ์๋๋ก ์ค๊ณํ๋ ๋ฐฉ๋ฒ, ๊ท์น.
- Continuous Deployment : ์ง์์ ์ธ ๋ฐฐํฌ.
ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ํ์์ ์ํด ํ์ฅ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ํคํ
์ฒ๋ก ์์คํ
์ ์ํ์ ํ์ฅ(์ค์ผ์ผ ์์)์ ์ ์ฐํ๋ค. ์ฌ์ฉ๋์ ๋ง์ถฐ ๋ฆฌ์์ค๋ฅผ ์กฐ์ ํ ์ ์๋ค๋ ๊ฒ์
๊ณง ๋น์ฉ์ ์ ์ฝ์ ๊ฐ์ ธ์จ๋ค.
์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
์ ํจํค์ง ๋จ์๋ก ์๊ฒ ์ชผ๊ฐ์ด ์ด์ํ๊ธฐ ๋๋ฌธ์ ์ปจํ
์ด๋ ๊ธฐ๋ฐ์ ์ด์์๋ ์ ํฉํ๋ค.
๋ถํ ๋ ์๋น์ค๋ค์ ๋
๋ฆฝ์ ์ผ๋ก ์ด์ํ๊ธฐ ์ํด ํ๊ธฐ์ํด ๋ฌด์ํ ํต์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ข
์์ฑ์ ์ต์ํํ๋ค.
๋ํ, ์๋น์ค๋ค์ด ๋ถํ ๋์ด ์๊ธฐ ๋๋ฌธ์ ํน์ ์๋น์ค์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ฌ๋ ๋ค๋ฅธ ์๋น์ค์ ์ํฅ์ ์ฃผ์ง ์๊ณ , ํด๋น ์๋น์ค๋ง ๋๋ฒ๊น
ํ์ฌ ๋ค์ ๋ฐฐํฌํ๋ฉด ๋๋ค.
Cloud Native Applicationd์ ๋ค์์ ๋ฐ๋ฅธ๋ค
- Microservice
- CI / CD : ์นด๋๋ฆฌ ๋ฐฐํฌ ์ฌ์ฉ(์ด ํธ๋ํฝ์ 5~10%๋ง์ ๋ฐ์)
- DevOps: Plan - Create - Verify - Package - Release - Configure - Monitor ์ ๊ณผ์ ์ ์ํ ๋ฐ๋ณตํ๋ค.
์กฐ๊ธ ๋ ์งง์ ์ฃผ๊ธฐ์ ํ ์คํธ, ๋ฐฐํฌ
- Container ๊ฐ์ํ: ๊ณตํต์ ์ธ ๋ฆฌ์์ค๋ ๊ณต์ ํ๊ณ , ํ์ํ ๋ฆฌ์์ค๋ง์ ๋ ๋ฆฝ์ ์ผ๋ก ์ด์. ๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ค.
- https://12factor.net/
- PaaS ํํ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ Heroku์์ ์ ๋ฆฌํ ๊ฐ์ด๋ ๋ผ์ธ.
- ์ฝ๋์ ํต์ผ์ ์ธ ๊ด๋ฆฌ
- ๊ฐ ๋ง์ดํฌ๋ก ์๋น์ค๋ ์ข ์์ฑ์ ๊ฐ์ง๊ณ ํจํค์ง๋์ด ์์ด ๋ชจ๋์ ๋ณ๊ฒฝ์ด ์ ์ฒด ์์คํ ์ ์ํฅ์ ์ฃผ์ง ์๊ฒ ์ค๊ณ๋์ด์ผ ํ๋ค.
- ์ฝ๋ ์ธ๋ถ์์ ๊ตฌ์ฑ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ํตํด ๋ง์ดํฌ๋ก์๋น์ค์ ํ์ํ ์์ ์ ์ ์ดํ์ฌ ๋์ผํ ๋ฐฐํฌ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ตฌ์ฑ์ด ์ ์ฉ๋ ํ๊ฒฝ์์ ์ ํ๋์ด์ผ ํ๋ค.
- DB, Cache ๋ฑ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๊ฐ์ ธ์ผํ ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ก ์ง์ํ ์ ์๋ค.
- ๋น๋, ๋ฆด๋ฆฌ์ฆ, ์คํ ํ๊ฒฝ์ ๋ถ๋ฆฌํด์ผ ํ๋ค.
- ๊ณ ์ ํ ํ๊ทธ, ๋กค๋ฐฑ, CI/CD๋ฅผ ์ด์ฉํ ์๋ํ๋ ์์คํ ๊ตฌ์ถ
- ํ๋์ ์๋น์ค๋ ๋ ๋ฆฝ์ ์ผ๋ก ์ด์๋ ์ ์์ด์ผ ํ๋ค. ํ์ํ๋ค๋ฉด ์บ์, ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ตํ.
- ๊ฐ๊ฐ์ ์๋น์ค๋ ์์ฒด ํฌํธ์์ ๋ ธ์ถ๋๋ ์ธํฐํ์ด์ค์ ์์ฒด ๊ธฐ๋ฅ์ด ์์ด์ผ ํ๋ค.
- ์ฌ๋ฌ ์ธ์คํด์ค๊ฐ ๋์์ ์คํ๋ ์ ์์ด์ผ ํ๋ค.
- ์๋น์ค ์ธ์คํด์ค๊ฐ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๊ณ , ์ ์์ ์ธ ์ข ๋ฃ๋ฅผ ํ ์ ์์ด์ผ ํ๋ค.
- ๊ฐ๋ฐ, ํ๋ก๋์ ๋จ๊ณ๊ฐ ๊ตฌ๋ถ๋์ด์ผ ํ๋ค.
- ๋ก๊น ์์คํ , ์ดํ๋ฆฌ์ผ์ด์ ๋ก์ง๊ณผ ๋ถ๋ฆฌ๋์ด ์๋น์ค์ ์ํด ์์ฑ๋ ๋ก๊ทธ๋ฅผ ์ด๋ฒคํธ ํธ๋ค๋ง ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ.
- ์ด์๋๊ณ ์๋ ์๋น์ค๋ค์ด ์ด๋ค ํํ๋ก ์ฌ์ฉ๋๋์ง, ๋ฆฌ์์ค๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ๋ฑ์ ํ์ ํ ์ ์๋ ๊ด๋ฆฌ๋๊ตฌ๊ฐ ์์ด์ผ ํ๋ค.
- ๋ชจ๋ ์๋น์ค๋ API ํํ๋ก ์ ๊ณต๋๊ณ , ์ฌ์ฉ์๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง๋ฅผ ๊ณ ๋ฏผํ์ฌ ๊ตฌํํ๋ค.
- ๋ชจ๋ ์งํ๋ ์๊ฐํ๋์ด ๊ด๋ฆฌ๋์ด์ผ ํ๋.
- ์ ์ ํ ์ธ์ฆ, ๊ถํ ์ ๋ณด๋ฅผ ์๊ตฌํด์ผ ํ๋ค.
์ด์ Monolithic Architecture ์์๋ ๋ชจ๋ ๋ก์ง์ด ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ชจ์ฌ์๊ธฐ ๋๋ฌธ์ ํ๋์ ๊ธฐ๋ฅ์ ์์ ํ๋ฉด ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ค์ ๋น๋ํด์ผ ํ๋ค.
๊ทธ๋ฌ๋, MicroService๋ ๋ค๋ฅธ ์๋น์ค์ ํจ๊ป ์๋ํ๋ ์์ ์๋น์ค๋ก ์ ์๋๋ค. ์ด๋ฌํ ์๊ฒ ์ชผ๊ฐ์ง ๋ชจ๋๋ค์ด ๋ชจ์ฌ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ฃฌ๋ค.
์๋น์ค๋ค์ ๋
๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ์๋น์ค์์ ์ํํ๋ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ๋ง์ถฐ ์ธ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ ์ ์๋ค.
๊ฐ ์๋น์ค๋ค์ด ์ชผ๊ฐ์ ธ์๊ธฐ ๋๋ฌธ์ ์
๋ฌด์ ๋ถํ ์ด ์ฝ๊ณ , ์ ์ง ๋ณด์๊ฐ ๋ ์ฌ์์ง๋ค, ์์ ๋จ์์ด๊ธฐ ๋๋ฌธ์ ๋น๋, ๋ฐฐํฌ, ์ฅ์ ์ ๋์ฒ์ ์์ด์๋ ์ด์ ์ ๊ฐ์ง๋ค.
๋ง์ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ง๋ง ๋จ์ ์ด ์๋ ๊ฒ์ ์๋๋ค.
๋ชจ๋์ ์๊ฐ ์ชผ๊ฐ ๋ค๋ ๊ฒ์ ํ๋์ ๋์ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํด์๋ ์ด์ ํ์ํ ์๋น์ค๋ฅผ ๋ชจ๋ ๋์์์ผ์ผ ํ๋ค๋ ๋ณต์ก์ฑ์ ์ผ๊ธฐํ๋ค.
๊ทธ๋ฆฌ๊ณ , ๊ฐ ์๋น์ค๋ค์ด ํต์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ํต์ ๊ด๋ จํ ์ค๋ฅ๊ฐ ์ถ๊ฐ์ ์ผ๋ก ๋ฐ์ํ ์ ์๋ค.
๋ง์ดํฌ๋ก ์๋น์ค์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์๋น์ค์ ๊ฒฝ๊ณ๊ฐ ๊ตฌ๋ถ๋๋ ์์ ๋ชจ๋.
- RESTful
- ํ๊ฒฝ์ค์ ์ ๋ณด๋ ์ธ๋ถ์ ์์คํ ์ ์ํด ๊ด๋ฆฌ.(๋ฐฐํฌ์ ํฌํจ๋์ง ์๋๋ก)
- ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๊ธฐ์ ํ์ฉ
- ๋์ ์ธ ์ค์ผ์ผ ์ , ์ค์ผ์ผ ๋ค์ด
- CI/CD
- ์๋น์ค์ ์๊ฐํ.
ํด๋ผ์ด์ธํธ์๊ฒ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด API Gateway๋ผ๋ ์ง์
์ ์ ํตํด ํ์ํ ์๋น์ค์ ์์ฒญ์ ํ๊ฒ๋๋ค.
API Gateway์ ์์ง๋ ์์ฒญ๋ค์ Sevice Router์ ์ํด ์ด๋๋ก ๊ฐ์ผํ๋์ง ๊ฒฐ์ ๋๊ฒ ๋๋๋ฐ,
์ด ๋ Service Discovery์ ๋ฑ๋ก ๋ฆฌ์คํธ์์ ํด๋น ์๋น์ค์ ์์น๋ฅผ ๊ฒ์ํ๊ฒ ๋๋ค.
์์น๋ฅผ ์์๋๋ค๋ฉด ์๋น์ค๋ก ์ด๋ํ๊ฒ ๋๋๋ฐ, ๊ตฌ์ฑ์ด ์ฌ๋ฌ๊ฐ๋ก ๋ถ์ฐ๋ ํํ๋ก ๋์ด์๋ค๋ฉด Load Balancer ์ ์ํด ์ด๋ํ ์๋น์ค๊ฐ ๊ฒฐ์ ๋๋ค.
๋ณดํต ์ด๋ฌํ ์๋น์ค๋ค์ ์ปจํ
์ด๋ ๊ฐ์ํ ๊ธฐ์ ์ ํตํด์ ๊ตฌ์ฑ์ด ๋์ด์๋ค.
๋ค๋ฅธ ์๋น์ค๋ค๊ณผ์ ์ฐ๊ฒฐ์ MOM(Message Oriented Middleware) ๊ณผ ์ ์ฅ์์ ๊ฐ์ Backing Service๋ค์ ์ด์ฉํ์ฌ ์ด๋ฃจ์ด์ง๋ค.
ํ๊ฒฝ ์ค์ ์ ๋ณด๋ Config Store์ ๊ฐ์ด ์๋น์ค์ ์ธ๋ถ์์ ํด๋น ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์๊ฒ ๋๊ณ ,
์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌ๋ฅผ ์ํด CI/CD ๊ด๋ จ ๋๊ตฌ๋ค์ ์ฌ์ฉํ๊ฒ ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
์ด ๋ฐฐํฌ๋ ์ดํ์๋ ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ์ด๋ ์ง๋จ ๊ธฐ๋ฅ์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ๋ค.
-
- Service Discovery, Config Store, Service Router, Load Balancer, ์ํธํ, ์ธ์ฆ/์ธ๊ฐ ๋ฑ์ ๋ด๋ถ ํต์ .
- ์ถ์ํ, ์์ ์ฑ, ์ ๋ขฐ์ฑ, ๋ณด์์ฑ, ๊ฐ์์ฑ์ ๋ณด์ฅํ ์ ์๋๋ก ํด์ค๋ค.
-
Zuul: ์์ ์ฑ๊ณผ ํด๋ผ์ด์ธํธ ๋ณ ์ ์ฐํ ๋์ฒ๋ฅผ ์ํ API Gateway (์ฐ๊ฒฐํ ๋ฐฑ์๋ ์๋น์ค์ id๋ฅผ ๋ฏธ๋ฆฌ ์ ์๋ config ํ์ผ์์ ์ฝ๋๋ค.)
- ์ธ์ฆ / ์ธ๊ฐ์ ์ญํ , ๋ถ์ ์ ํ ์์ฒญ์ ์ฐจ๋จํ๋ค. - (pre filter)
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ผ ์ ์ ํ ์๋น์ค๋ก ๋ก๋๋ฐธ๋ฐ์ฑํ๊ณ , ๋ผ์ฐํ (zuul core library) - (routing filter)
- ํธ๋ํฝ ๋ก๊น - (post filter)
- Circuit Break - (routing filter)
- Pre Filter: ๋ก๊น , ์ธ์ฆ ๋ฑ์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค.
- Routing Filter: ๋์ ๋ผ์ฐํ ์ ๋ค๋ฃจ๋ ํํฐ.
- Post Filter: ์๋ต์ ํค๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, ์๋ต์ ๋ฉํ ์ ๋ณด๋ค์ ์์ง, ํต๊ณ(์๋ต ์๋, ์ํ์ฝ๋ ๋ฑ)
- Error Filter: ์๋ฌ ๋ฐ์์ ์คํ๋๋ค.
- ํํฐ๋ Request -> pre -> routing -> post์ ์์๋ก ์คํ๋๋ค.(ํํฐ๋ผ๋ฆฌ ํต์ ํ๋ ๊ฒ์ด ์๋๊ณ ์์๋๋ก๋ง ์คํ๋๋ค.)
-
Ribbon Library: ๋ถํ๋ฅผ ์ ์ ํ๊ฒ ๋ถ์ฐํ๋ ๋ก๋ ๋ฒจ๋ฐ์.
-
Hysterix Library: ์ฅ์ ๋ฅผ ๊ฐ์งํ๊ณ , ๋์ฒํ๋ Circuit Breaker
-
Eureka: ๋ง์ดํฌ๋ก์๋น์ค(Eureka Client)์ ๋ฑ๋ก(Registry)๊ณผ ํด์ง, ์ฐ๊ฒฐ ์ ๋ณด ํ์(Discovery)์ ๋ด๋นํ๋ Naming Server
- 30์ด ๋ง๋ค ์ ๋ ์นด ์๋ฒ๋ก ๋ถํฐ ๋ค๋ฅธ ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ค์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐฑ์ . ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ค์ 30์ด๋ง๋ค ping์ ์ ๋ ์นด ์๋ฒ๋ก ์ ์ก ping์ด ์ค์ง ์์ผ๋ฉด
์ ๋ ์นด ์๋ฒ๋ ํด๋น ํด๋ผ์ด์ธํ๋ฅผ ๋ ์ง์คํธ๋ฆฌ์์ ์ ๊ฑฐํ๋ค.
- 30์ด ๋ง๋ค ์ ๋ ์นด ์๋ฒ๋ก ๋ถํฐ ๋ค๋ฅธ ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ค์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐฑ์ . ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ค์ 30์ด๋ง๋ค ping์ ์ ๋ ์นด ์๋ฒ๋ก ์ ์ก ping์ด ์ค์ง ์์ผ๋ฉด
-
Kafka: ๋ฉ์์ง ํ ์๋น์ค, ๋ฐ์ดํฐ ๋๊ธฐํ๋ฅผ ์ํด ์ฌ์ฉํ๋ค.
๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ์นดํ์นด์ ์ ๋ฌํ๊ณ , ์นดํ์นด๋ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ ํ ์๋น์ค์๊ฒ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋ฌํด์ค๋ค. -
Zipkin, ELK: ๋ชจ๋ํฐ, ๋ก๊ทธ ์ถ์
๋ ์์ธํ ๊ฒ์ ๋ค์์ ๋ค์ ์์๋ณธ๋ค.
- SOA: Service Oriented Architecture
- MSA: :Micro Service Architecture
SOA๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์์์ ํตํ ๋น์ฉ์ ์ ๊ฐ์ ๋ชฉ์ ์ด ์๊ณ , MSA๋ ์๋น์ค ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ์ด ๋ณํ์ ๋ฅ๋์ ์ผ๋ก ๋์ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋ชฉ์ ์ด ์๋ค.
๋๋ฌธ์ SOA๋ ์๋น์ค์ ๊ณต์ ๋ฅผ ์ต๋ํํ์ฌ ๋น์ฉ์ ์ ๊ฐํ๊ณ , MSA๋ ๋ฐ๋๋ก ์๋น์ค๊ฐ์ ๊ณต์ ๋ฅผ ์ต์ํ ํ์ฌ ๊ฐ ์๋น์ค๊ฐ ๋
๋ฆฝ์ ์ผ ์ ์๋๋ก ํ๋ค.
SOA ๋ฐฉ์์์๋ ๊ณตํต์ ์๋น์ค๋ฅผ ๋ฒ์ค(ESB)๋ฅผ ํตํด ํ๊ณณ์ ๋ชจ์ ํ ํ๋์ ์๋น์ค๋ก ์ฌ์ฉํ๊ณ , MSA๋ ๊ฐ ๋ ๋ฆฝ๋ ์๋น์ค๊ฐ REST API ๋ฐฉ์์ผ๋ก ํต์ ํ๋ค.
ํ๋ก์ ํธ ์์ฑ์ ์์กด์ฑ Eureka Server ์ถ๊ฐ.
-
@SpringBootApplication @EnableEurekaServer // #1 public class SpringcloudApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudApplication.class, args); } }
- (#1): ์ ๋ ์นด ์๋ฒ๋ก ๋ฑ๋กํ๋ ์ ๋ ธํ ์ด์ , Service Discovery ๋ก์ ํ๋ก์ ํธ๋ฅผ ์คํ์ํจ๋ค.
-
server: port: 8761 #1 spring: application: name: discoveryservice # 2 eureka: client: register-with-eureka: false fetch-registry: false
- (#1): ๋ง์ดํฌ๋ก ์๋น์ค์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ณํ๊ธฐ ์ํ ๊ณ ์ ํ ID ๋ถ์ฌ
- (#2): ์ ๋ ์นด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ก ๋ฑ๋กํ๋ ค๊ณ ์๋ํ๊ฒ ๋๋๋ฐ, ํ์ฌ ํ๋ก์ ํธ๋ ์ ๋ ์นด ์๋ฒ๋ก ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ false๋ก ์ง์ .
Eureka-client ์์กด์ฑ ์ถ๊ฐ.
-
@EnableDiscoveryClient @SpringBootApplication public class UserServiceApplication { public static void main(String[] args) { SpringApplication.run(UserServiceApplication.class, args); } }
- DiscoveryClient ๋ฅผ ์กฐ๊ธ ๋ ๊ตฌํํด ๋์ ๊ฒ์ด EurekaClient
-
server: port: 9001 spring: application: name: user-service eureka: client: register-with-eureka: true fetch-registry: true #1 service-url: defaultZone: http://127.0.0.1:8761/eureka #2
- (#1): ์ ๋ ์นด ์๋ฒ๋ก๋ถํฐ ์ธ์คํด์ค๋ค์ ์ ๋ณด๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐ์ ธ์ฌ ๊ฒ์ธ์ง ์ค์ ํ๋ ์์ฑ.
- (#2): ๋ฑ๋กํ ์๋ฒ์ ์์น, ์ด์ ์ ์์ฑํ ์ ๋ ์นด ์๋ฒ์ ํธ์คํธ ์ฃผ์๋ฅผ ์ ๊ณ , ์๋ํฌ์ธํธ๋ฅผ ๋ช ์ํด ์ฃผ์๋ค.
์ด์ ์ ์ดํด๋ณด์๋ ์ ๋ ์นด ์๋ฒ์ ๋์๋ณด๋๋ก ๋์๊ฐ๋ณด๋ฉด ๋ฐฉ๊ธ ์คํ์ํจ user-service๊ฐ ์คํ๋๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
1. Application Run
- ์ฌ๋ฌ๊ฐ์ Application ์ธ์คํด์ค๋ฅผ ์์ฑ(Edit configurations)ํ -Dserver.port ์ต์
์ ๋ค๋ฅด๊ฒ ์ค์ ํด ์ฃผ์ด ์ฌ๋ฌ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋์ธ ์ ์๋ค.
2. ๋น๋ ๋๊ตฌ๋ฅผ ์ด์ฉํ์ฌ ์คํ
- ๋น๋ ๋๊ตฌ๋ฅผ ์ด์ฉํ์ฌ build and run
- gradle์ ๊ฒฝ์ฐ ./gradlew build ํ ./gradlew bootRun --args='--server.port=9003'
3. java -jar ๋ก ์คํ
- ๋น๋
- java -jar -Dserver.port=9004 ./build/libs/user-service-0.0.1-SNAPSHOT.jar
-
- server.port: 0 ์ผ๋ก ์ค์ .
- ์ ๋ ์นด ์๋ฒ์์ ๋์ผ ํธ์คํธ, ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ, port=0 ๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ํ๋๋ฐ์ ๋ฑ๋ก์ด ๋์ง ์์.
- ์๋ณ ์์ด๋๋ฅผ ๋ณ๊ฒฝ
eureka: instance: instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
- https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard
- https://velog.io/@kim_sunnnny/MicroService-vs-Monolithic-Architecture
- https://happycloud-lee.tistory.com/213
- https://techblog.woowahan.com/2523/
- https://velog.io/@jkijki12/Eureka%EB%9E%80





