From 4d716aac841cae1103c73a24b8010c1edb20faa7 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Mon, 9 Mar 2026 20:57:09 +0900 Subject: [PATCH] docs: add 24 production transition research plan --- journey/README.md | 3 + ...œ๋ฒ„_์ž„์‹œ์ง„์ž…๋ฉด์Šน๊ฒฉ_์•„์ด๋””์–ด.md | 62 +++++++ ...4์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md | 154 ++++++++++++++++++ ...0309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md | 5 + ...œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md | 129 +++++++++++++++ 5 files changed, 353 insertions(+) create mode 100644 journey/ideas/260309_23์žฅ์• ์‹œ_24์„œ๋ฒ„_์ž„์‹œ์ง„์ž…๋ฉด์Šน๊ฒฉ_์•„์ด๋””์–ด.md create mode 100644 journey/plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md create mode 100644 journey/research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md diff --git a/journey/README.md b/journey/README.md index 9548903..f27f0de 100644 --- a/journey/README.md +++ b/journey/README.md @@ -41,8 +41,11 @@ - [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ธํ”„๋ผ ๊ตฌ์กฐ์ •๋ฆฌ ์ด์Šˆ](./troubleshooting/260307_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_์ธํ”„๋ผ_๊ตฌ์กฐ์ •๋ฆฌ_์ด์Šˆ.md) - [์™ธ๋ถ€ NAS -> ๋‚ด๋ถ€ NAS ์ปดํผ๋‹ˆ์—‘์Šค ํŒŒ์ผ ๋™๊ธฐํ™” ์•„์ด๋””์–ด](./ideas/260307_external_nas_companyx_sync_์•„์ด๋””์–ด.md) - [์ปดํผ๋‹ˆ์—‘์Šค ์ง์›์šฉ ๋ชจ๋ฐ”์ผ ํŒŒ์ผ ํฌํ„ธ ์•„์ด๋””์–ด](./ideas/260307_companyx_mobile_file_portal_์•„์ด๋””์–ด.md) +- [23์žฅ์• ์‹œ 24์„œ๋ฒ„ ์ž„์‹œ์ง„์ž…๋ฉด์Šน๊ฒฉ ์•„์ด๋””์–ด](./ideas/260309_23์žฅ์• ์‹œ_24์„œ๋ฒ„_์ž„์‹œ์ง„์ž…๋ฉด์Šน๊ฒฉ_์•„์ด๋””์–ด.md) - [์™ธ๋ถ€ NAS -> ๋‚ด๋ถ€ NAS ์ปดํผ๋‹ˆ์—‘์Šค ๋™๊ธฐํ™” ๋ฆฌ์„œ์น˜](./research/260307_external_nas_companyx_sync_research.md) - [์ปดํผ๋‹ˆ์—‘์Šค ์ง์›์šฉ ๋ชจ๋ฐ”์ผ ํŒŒ์ผ ํฌํ„ธ ๋ฆฌ์„œ์น˜](./research/260307_companyx_mobile_file_portal_research.md) - [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ์™€ ๋Ÿฐํƒ€์ž„ SSOT ๋ถˆ์ผ์น˜ ๋ฆฌ์„œ์น˜](./research/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md) - [24์„œ๋ฒ„ ๋กœ๋น™ ์šด์˜ ์ž๋ฃŒ ์ˆ˜์ง‘](./research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md) +- [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜](./research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md) - [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ ์ œ๊ฑฐ ๊ณ„ํš](./plans/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md) +- [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš](./plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md) diff --git a/journey/ideas/260309_23์žฅ์• ์‹œ_24์„œ๋ฒ„_์ž„์‹œ์ง„์ž…๋ฉด์Šน๊ฒฉ_์•„์ด๋””์–ด.md b/journey/ideas/260309_23์žฅ์• ์‹œ_24์„œ๋ฒ„_์ž„์‹œ์ง„์ž…๋ฉด์Šน๊ฒฉ_์•„์ด๋””์–ด.md new file mode 100644 index 0000000..190ad13 --- /dev/null +++ b/journey/ideas/260309_23์žฅ์• ์‹œ_24์„œ๋ฒ„_์ž„์‹œ์ง„์ž…๋ฉด์Šน๊ฒฉ_์•„์ด๋””์–ด.md @@ -0,0 +1,62 @@ +# 260309 23์žฅ์• ์‹œ 24์„œ๋ฒ„ ์ž„์‹œ์ง„์ž…๋ฉด์Šน๊ฒฉ ์•„์ด๋””์–ด + +tags: [infra, 23-server, 24-server, failover, ingress, ideas] + +์ƒ์œ„ ์›์น™: +- [Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) + +## ๋ฌธ์ œ + +- ํ˜„์žฌ ์™ธ๋ถ€ ์ง„์ž…์€ ๊ณต์œ ๊ธฐ `80/443`์ด 23 ์„œ๋ฒ„๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ , 23 ์„œ๋ฒ„์—์„œ `nginx -> robeing-gateway -> 24 ์‹คํ–‰๊ณ„` ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•œ๋‹ค. +- ์ด ๊ตฌ์กฐ๋Š” ์—ญํ•  ๋ถ„๋ฆฌ์—๋Š” ๋งž์ง€๋งŒ, 23 ์„œ๋ฒ„ ์žฅ์•  ์‹œ ์™ธ๋ถ€ ์ง„์ž…์ด ํ•œ ๋ฒˆ์— ๋Š๊ธฐ๋Š” ๋‹จ์ผ ์žฅ์•  ์ง€์  ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. +- `gateway`๋งŒ 24๋กœ ์˜ฎ๊ธฐ๋ฉด ์ œ์–ด๋ฉด๊ณผ ์‹คํ–‰๋ฉด์ด ๋‹ค์‹œ ์„ž์ด๋ฏ€๋กœ ๊ตฌ์กฐ์ƒ ์ด๋“์ด ์ž‘๋‹ค. + +## ๋ชฉํ‘œ + +- ํ‰์‹œ์—๋Š” `23=์ง„์ž…/์ œ์–ด`, `24=์‹คํ–‰` ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. +- ๋‹ค๋งŒ 23 ์„œ๋ฒ„ ์žฅ์•  ์‹œ์—๋Š” 24 ์„œ๋ฒ„๊ฐ€ ์ž„์‹œ๋กœ `nginx + gateway` ์—ญํ• ๊นŒ์ง€ ์Šน๊ฒฉ ๋ฐ›์•„ ์™ธ๋ถ€ ์„œ๋น„์Šค ์—ฐ์†์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. +- ์ด ๊ตฌ์กฐ๋ฅผ ์ƒ์‹œ ์šด์˜์ด ์•„๋‹ˆ๋ผ ์žฅ์•  ๋Œ€์‘์šฉ `์ž„์‹œ ์ง„์ž…๋ฉด ์Šน๊ฒฉ` ์•„์ด๋””์–ด๋กœ ๋‚จ๊ธด๋‹ค. + +## ๊ฐ€๋Šฅํ•œ ๋ฐฉํ–ฅ + +### 1. 24 ์„œ๋ฒ„ ๋Œ€๊ธฐ nginx + gateway ์ค€๋น„ + +- 24 ์„œ๋ฒ„์— ํ‰์†Œ์—๋Š” ์™ธ๋ถ€ ๋ฏธ๋…ธ์ถœ ์ƒํƒœ์˜ `nginx`, `gateway` ๊ตฌ์„ฑ์„ ๋ฏธ๋ฆฌ ์ค€๋น„ํ•œ๋‹ค. +- 23 ์žฅ์•  ์‹œ ๊ณต์œ ๊ธฐ `80/443` ํฌ์›Œ๋”ฉ๋งŒ 24๋กœ ๋ฐ”๊ฟ” ์ž„์‹œ ์Šน๊ฒฉํ•œ๋‹ค. +- ์žฅ์ : ํ˜„์žฌ ๊ตฌ์กฐ๋ฅผ ํฌ๊ฒŒ ๊นจ์ง€ ์•Š๊ณ  ์—ฐ์†์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. +- ๋‹จ์ : ๊ณต์œ ๊ธฐ ์ „ํ™˜, ์ธ์ฆ์„œ, upstream ๋™๊ธฐํ™” ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. + +### 2. ์™ธ๋ถ€ ์ง„์ž…๋ฉด ์™„์ „ ์ด์ค‘ํ™” + +- 23๊ณผ 24 ๋ชจ๋‘๊ฐ€ ์ƒ์‹œ ์™ธ๋ถ€ ์ง„์ž…์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ , ์žฅ์•  ์‹œ ์ž๋™ ๋˜๋Š” ๋ฐ˜์ž๋™ ์ „ํ™˜ํ•œ๋‹ค. +- ์žฅ์ : ๋” ๊ฐ•ํ•œ ์—ฐ์†์„ฑ ํ™•๋ณด ๊ฐ€๋Šฅ +- ๋‹จ์ : ์ธ์ฆ์„œ, DNS, ํ—ฌ์Šค์ฒดํฌ, ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”, ์šด์˜ ๋ณต์žก๋„๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•œ๋‹ค. + +### 3. ์ˆ˜๋™ ๋Ÿฐ๋ถ ๊ธฐ๋ฐ˜ ๋ฐ˜์ž๋™ ์ „ํ™˜ + +- 24 ์„œ๋ฒ„์— ์ตœ์†Œํ•œ์˜ ๋Œ€๊ธฐ ๊ตฌ์„ฑ์„ ๋‘๊ณ , ์žฅ์•  ์‹œ ๋ฌธ์„œํ™”๋œ ๋Ÿฐ๋ถ์— ๋”ฐ๋ผ ์‚ฌ๋žŒ์ด ํฌ์›Œ๋”ฉ๊ณผ ์„œ๋น„์Šค ์Šน๊ฒฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. +- ์žฅ์ : ์ดˆ๊ธฐ ๊ตฌํ˜„ ๋ถ€๋‹ด์ด ๊ฐ€์žฅ ๋‚ฎ๋‹ค. +- ๋‹จ์ : ์‚ฌ๋žŒ ๊ฐœ์ž… ์†๋„์™€ ์ •ํ™•๋„์— ์˜์กดํ•œ๋‹ค. + +## ๊ถŒ์žฅ ๋ฐฉํ–ฅ + +- 1์ฐจ๋Š” `์ˆ˜๋™ ๋Ÿฐ๋ถ ๊ธฐ๋ฐ˜ ๋ฐ˜์ž๋™ ์ „ํ™˜`์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ํ˜„์‹ค์ ์ด๋‹ค. +- ์šด์˜ ๋ฆฌํ—ˆ์„ค์ด ์Œ“์ด๋ฉด `24 ์„œ๋ฒ„ ๋Œ€๊ธฐ nginx + gateway ์ค€๋น„`๊นŒ์ง€ ์˜ฌ๋ฆฌ๊ณ , ๊ทธ๋‹ค์Œ์—์•ผ ์ž๋™ํ™” ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค. +- ํ•ต์‹ฌ์€ `gateway๋ฅผ 24๋กœ ์ƒ์‹œ ์ด์ „`ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, `23 ์žฅ์•  ์‹œ 24๊ฐ€ ์ž„์‹œ ์ง„์ž…๋ฉด์„ ๋Œ€์‹ ํ•  ์ค€๋น„`๋ฅผ ๊ฐ–์ถ”๋Š” ๊ฒƒ์ด๋‹ค. + +## ๋จผ์ € ํ™•์ธํ•  ๊ฒƒ + +1. ๊ณต์œ ๊ธฐ์—์„œ `80/443` ํฌ์›Œ๋”ฉ ๋Œ€์ƒ์„ ์žฅ์•  ์‹œ ์‹ ์†ํžˆ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”์ง€ +2. 24 ์„œ๋ฒ„์— `nginx`, ์ธ์ฆ์„œ, gateway ์„ค์ •์„ ๋™์ผํ•˜๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ +3. 23์˜ `auth-server`, `DB`, `OpenSearch`๊นŒ์ง€ ์žฅ์•  ๋ฒ”์œ„์— ํฌํ•จ๋˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ์ง„์ž…๋ฉด๋งŒ ์ฃฝ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์ธ์ง€ +4. ์žฅ์•  ์‹œ 24๊ฐ€ ์ง์ ‘ ๋ฐ”๋ผ๋ด์•ผ ํ•  upstream๊ณผ SSOT ํ™˜๊ฒฝ๊ฐ’์ด ๋ฌด์—‡์ธ์ง€ +5. ์žฅ์•  ๋ฆฌํ—ˆ์„ค์„ ์–ด๋–ค ์ฃผ๊ธฐ๋กœ ์ˆ˜ํ–‰ํ• ์ง€ + +## ๊ด€๋ จ ๋ฌธ์„œ + +- [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜](../research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md) +- [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš](../plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md) +- [Infrastructure Project Structure](../../02_Architecture/Infrastructure_Project_Structure.md) diff --git a/journey/plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md b/journey/plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md new file mode 100644 index 0000000..62dc560 --- /dev/null +++ b/journey/plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md @@ -0,0 +1,154 @@ +--- +tags: [infra, 24-server, robeing, production-transition, ssot, plans] +--- + +# 260309 24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš + +## ์ƒ์œ„ ์›์น™ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) + +## ๊ด€๋ จ ๋ฌธ์„œ +- [Infra Journey](../README.md) +- [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜](../research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md) +- [260304 51123 ์ž„์‹œ๋ณต๊ตฌ ์„œ๋น„์Šค ์—ฐ์†์„ฑ ์กฐ์น˜๋‚ด์—ญ](../troubleshooting/260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md) +- [260305 23์ž„์‹œ๋ฐฐํฌ env.deploy SSOT ๋ฐ ๋ฐฐํฌ์‹คํŒจ ๊ทผ๋ณธ์›์ธ ํ•ด๊ฒฐ](../troubleshooting/260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md) +- [24์„œ๋ฒ„ ์šฐ๋ถ„ํˆฌ ํ„ฐ๋ฏธ๋„ ๋ถˆ๊ฐ€, ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ ์˜ค๋ฅ˜, python3-apt ๋ณต๊ตฌ ๊ธฐ๋ก](../troubleshooting/260309_24์„œ๋ฒ„_์šฐ๋ถ„ํˆฌํ„ฐ๋ฏธ๋„๋ถˆ๊ฐ€_๋„คํŠธ์›Œํฌ๋Œ€์—ญ์˜ค๋ฅ˜_python3apt๋ณต๊ตฌ.md) + +## ๋ฌธ์ œ ์ •์˜ + +- ์ง€๊ธˆ ์ƒํƒœ๋Š” `23 ์„œ๋ฒ„๊ฐ€ ์ž„์‹œ ํ”„๋กœ๋•์…˜ ์—ญํ• ์„ ๊ณ„์† ์ˆ˜ํ–‰`ํ•˜๊ณ  ์žˆ๊ณ , `24 ์„œ๋ฒ„๋Š” ์‹คํ–‰ ์ž์‚ฐ๋งŒ ์กด์žฌํ•˜๋ฉฐ ์‹ค์ œ ์„œ๋น„์Šค๋Š” 0๊ฐœ`์ธ ์ƒํƒœ๋‹ค. +- ๋ชฉํ‘œ๋Š” `23=์ง„์ž…/์ œ์–ด/๋ณด์กฐ`, `24=๋กœ๋น™ ์‹คํ–‰๋ฉด` ์—ญํ• ์„ ๋‹ค์‹œ ๋งž์ถ”๋Š” ๊ฒƒ์ด๋‹ค. +- ์ด๋ฒˆ ์ž‘์—…์˜ ๋‹ซํž˜ ๊ธฐ์ค€์€ `24 ์„œ๋ฒ„์—์„œ ์‹คํ–‰๊ณ„ ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ ๊ธฐ๋™`ํ•˜๊ณ , `23 ์„œ๋ฒ„๋Š” ์ธํ”„๋ผ์™€ ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• ๋งŒ ์œ ์ง€`ํ•˜๋ฉฐ, ์ดํ›„ ์ž๋™๋ฐฐํฌ๋„ ๋‹ค์‹œ 24๋กœ ํ–ฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. + +## ๋ฒ”์œ„ ๊ณ ์ • + +### 1์ฐจ ์ „ํ™˜ ๋Œ€์ƒ + +- `rb8001` +- `robeing-monitor` +- `skill-email` +- `skill-calendar` +- `skill-news` +- `skill-slack` +- `skill-rag-file` +- `skill-embedding` + +### 23 ์„œ๋ฒ„์— ์œ ์ง€ํ•  ๋Œ€์ƒ + +- `robeing-gateway` +- `auth-server` +- `postgresql` +- `opensearch` +- `data-prepper` +- `gitea` +- ๊ธฐํƒ€ 23 ์ œ์–ด๋ฉด/์šด์˜๋ฉด ์ž์‚ฐ + +### 2์ฐจ ๊ฒ€ํ†  ๋Œ€์ƒ + +- `skill-publish` +- 24 ์„œ๋ฒ„ ํ”„๋ŸฐํŠธ์—”๋“œ ๋””๋ ‰ํ„ฐ๋ฆฌ ํ™œ์šฉ ์—ฌ๋ถ€ + +## ์‹คํ–‰ ์ˆœ์„œ + +### 1. ๋ฐฐํฌ ๊ธฐ์ค€๊ฐ’์„ ๋จผ์ € 24 ๊ธฐ์ค€์œผ๋กœ ๊ณ ์ •ํ•œ๋‹ค + +- ๊ฐ ์‹คํ–‰๊ณ„ ์ €์žฅ์†Œ์˜ `.env.deploy`๋ฅผ `192.168.0.106:51124` ๊ธฐ์ค€์œผ๋กœ ๋ฐ”๊พผ๋‹ค. +- `DEPLOY_PROJECT_DIR`๋Š” 24 ์‹ค์ œ ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•˜๊ฒŒ ๋งž์ถ˜๋‹ค. + - `skill_email` + - `skill_news` + - ๊ธฐํƒ€ ์‹ค์ œ 24 ์ €์žฅ ๊ฒฝ๋กœ +- ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์›๊ฒฉ ๊ฒฝ๋กœ๊ฐ€ ๋‚จ์•„ ์žˆ๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๋Š” `DEPLOY_PROJECT_DIR` ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต์ผํ•œ๋‹ค. +- ํŠนํžˆ `skill-embedding`, `skill-publish`์˜ `ivada_project` ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋จผ์ € ์ œ๊ฑฐํ•œ๋‹ค. + +### 2. 24 ์„œ๋ฒ„ ๋Ÿฐํƒ€์ž„ SSOT๋ฅผ ๋จผ์ € ์ •๋ฆฌํ•œ๋‹ค + +- 24 ์„œ๋ฒ„์— `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env`๋ฅผ ๋ณต๊ตฌํ•˜๊ฑฐ๋‚˜ ๋ฐฐ์น˜ํ•œ๋‹ค. +- 24 ์„œ๋ฒ„ `.env`, `docker-compose.yml`, workflow์—์„œ ๋‹ค์Œ ์ž”์กด๊ฐ’์„ ์ œ๊ฑฐํ•œ๋‹ค. + - `192.168.219.52` + - `192.168.219.45` + - `/home/admin/ivada_project/...` +- 23 ์ธํ”„๋ผ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐ’์€ ํ˜„์žฌ ๊ธฐ์ค€์œผ๋กœ ํ†ต์ผํ•œ๋‹ค. + - DB: `192.168.0.100:5432` + - auth-server: `192.168.0.100:9000` + - gateway: `192.168.0.100:8100` + - OpenSearch: `192.168.0.100:9200` +- 24 ๋‚ด๋ถ€ ์ž๊ธฐ์ฐธ์กฐ๋Š” ์„œ๋น„์Šค ๊ฐ„ localhost ๊ธฐ์ค€๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. + +### 3. 23 ์„œ๋ฒ„ ์ธํ”„๋ผ ์˜์กด ํฌํŠธ๋ฅผ 24 ํ˜„์žฌ IP ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์—ฐ๋‹ค + +- 23 UFW `5432/tcp` ํ—ˆ์šฉ ๋Œ€์ƒ์„ `192.168.0.106` ๊ธฐ์ค€์œผ๋กœ ๊ต์ฒดํ•œ๋‹ค. +- 24์—์„œ Neo4j๊ฐ€ ํ•„์š”ํ•˜๋ฉด 23์˜ `7687`์„ `192.168.0.106`์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ฐ”๊พธ๊ณ , Neo4j ๋ฆฌ์Šจ ์ฃผ์†Œ๋„ localhost ์ „์šฉ ์ƒํƒœ๋ฅผ ํ•ด์ œํ•œ๋‹ค. +- ๊ธฐ์กด `192.168.219.52`, `192.168.219.0/24`์— ๋ฌถ์ธ ํ—ˆ์šฉ ๊ทœ์น™์€ ์ƒˆ 24 ๊ธฐ์ค€์ด ๊ฒ€์ฆ๋œ ๋’ค ์ œ๊ฑฐํ•œ๋‹ค. + +### 4. ์„œ๋น„์Šค๋Š” ์˜์กด ์ˆœ์„œ๋Œ€๋กœ 24์—์„œ ๊ธฐ๋™ํ•œ๋‹ค + +- 1์ˆœ์œ„: `skill-embedding` + - ONNX ๋ชจ๋ธ ๋งˆ์šดํŠธ์™€ ํ—ฌ์Šค์ฒดํฌ ๋จผ์ € ํ™•์ธ +- 2์ˆœ์œ„: `skill-rag-file` + - `/mnt/51123data` ๋ฌธ์„œ ๊ฒฝ๋กœ์™€ ์ž„๋ฒ ๋”ฉ ์—ฐ๊ณ„๋ฅผ ํ™•์ธ +- 3์ˆœ์œ„: `skill-email`, `skill-calendar`, `skill-news`, `skill-slack` + - DB/auth ์˜์กด์„ฑ์ด ์žˆ๋Š” ์Šคํ‚ฌ๊ตฐ์„ ๊ธฐ๋™ +- 4์ˆœ์œ„: `robeing-monitor` + - `infra-config`์™€ DB ์˜์กด์„ฑ ํ™•์ธ +- 5์ˆœ์œ„: `rb8001` + - ๋ชจ๋“  ํ•˜์œ„ ์„œ๋น„์Šค์™€ 23 ์ธํ”„๋ผ ์—ฐ๊ฒฐ์ด ์—ด๋ฆฐ ๋’ค ๋งˆ์ง€๋ง‰ ๊ธฐ๋™ + +### 5. 23 ๊ฒŒ์ดํŠธ์›จ์ด์™€ 24 ์‹คํ–‰๋ฉด ์—ฐ๊ฒฐ์„ ๋‹ค์‹œ ๊ฒ€์ฆํ•œ๋‹ค + +- 23 ๊ฒŒ์ดํŠธ์›จ์ด upstream์ด 24 `rb8001`, `robeing-monitor`๋ฅผ ์ •ํ™•ํžˆ ๋ฐ”๋ผ๋ณด๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. +- ์™ธ๋ถ€ ์‹ค์„œ๋น„์Šค ๋„๋ฉ”์ธ์—์„œ ํ•ต์‹ฌ ๊ฒฝ๋กœ๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค. + - ๋ฉ”์‹œ์ง€ ํ•ต์‹ฌ ๊ฒฝ๋กœ + - ์ด๋ฉ”์ผ ๊ฒฝ๋กœ + - ์ผ์ • ๊ฒฝ๋กœ + - ๋ชจ๋‹ˆํ„ฐ/ํ†ต๊ณ„ ๊ฒฝ๋กœ +- 24 ๋กœ์ปฌ ํ—ฌ์Šค์ฒดํฌ๊ฐ€ ์•„๋‹ˆ๋ผ, 23 ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ฑฐ์นœ ์‹ค์„œ๋น„์Šค ๊ฒฝ๋กœ ๊ธฐ์ค€์œผ๋กœ ์ตœ์ข… ํŒ์ •ํ•œ๋‹ค. + +### 6. 24๊ฐ€ ๊ฒ€์ฆ๋œ ๋’ค 23 ์ž„์‹œ ์‹คํ–‰ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•ด์ œํ•œ๋‹ค + +- 24 ๋™์ผ ์„œ๋น„์Šค๊ฐ€ ๋ชจ๋‘ ์ •์ƒ์ธ ๊ฒƒ์„ ํ™•์ธํ•œ ๋’ค, 23์˜ ์‹คํ–‰๊ณ„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚ด๋ฆฐ๋‹ค. +- 23์—๋Š” ๊ฒŒ์ดํŠธ์›จ์ด/์ธ์ฆ/DB/OpenSearch ๋“ฑ ์ธํ”„๋ผ์„ฑ ์ปจํ…Œ์ด๋„ˆ๋งŒ ๋‚จ๊ธด๋‹ค. +- ์ด ๋‹จ๊ณ„ ์ด์ „์—๋Š” 23 ์‹คํ–‰๊ณ„๋ฅผ ์„ฃ๋ถˆ๋ฆฌ ๋‚ด๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. + +## ์„œ๋น„์Šค๋ณ„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ + +### ๊ณตํ†ต + +- `.env.deploy`๊ฐ€ `192.168.0.106:51124`๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. +- 24 ์‹ค์ œ `DEPLOY_PROJECT_DIR`์™€ ์ผ์น˜ํ•œ๋‹ค. +- `.env`, compose fallback, workflow์— `192.168.219.45`, `192.168.219.52`, `/home/admin/ivada_project`๊ฐ€ ์—†๋‹ค. +- `docker compose down && docker compose up -d --build` ํ›„ ํ—ฌ์Šค์ฒดํฌ๊ฐ€ ํ†ต๊ณผํ•œ๋‹ค. + +### ์ธํ”„๋ผ ์˜์กด์„ฑ + +- 24 -> 23 TCP ํ™•์ธ: + - `5432` + - `7687` ํ•„์š” ์‹œ + - `9000` + - `9200` + - `8100` +- ์‹คํŒจ ์‹œ ์„œ๋น„์Šค ์žฌ๊ธฐ๋™๋ณด๋‹ค ๋จผ์ € ๋„คํŠธ์›Œํฌ/๋ฆฌ์Šค๋‹/UFW๋ฅผ ๋‹ค์‹œ ๋งž์ถ˜๋‹ค. + +## ๊ฒ€์ฆ ๊ธฐ์ค€ + +### 24 ์„œ๋ฒ„ ๋‚ด๋ถ€ + +- `docker ps`์— 1์ฐจ ์ „ํ™˜ ๋Œ€์ƒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ชจ๋‘ `Up`์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค. +- ๊ฐ ์„œ๋น„์Šค ํ—ฌ์Šค์ฒดํฌ๊ฐ€ ๋กœ์ปฌ์—์„œ ํ†ต๊ณผํ•œ๋‹ค. +- 24์—์„œ 23 ์ธํ”„๋ผ ํฌํŠธ๊ฐ€ ๋ชจ๋‘ ์˜๋„๋Œ€๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. + +### ์‹ค์„œ๋น„์Šค ๊ฒฝ๋กœ + +- 23 ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ฑฐ์นœ ํ•ต์‹ฌ API๊ฐ€ ์ •์ƒ ์‘๋‹ตํ•œ๋‹ค. +- ์™ธ๋ถ€ ๋„๋ฉ”์ธ์—์„œ ๋ฉ”์‹œ์ง€/์ด๋ฉ”์ผ/์ผ์ •/๋ชจ๋‹ˆํ„ฐ ํ•ต์‹ฌ ๊ฒฝ๋กœ๊ฐ€ ์ •์ƒ ๋™์ž‘ํ•œ๋‹ค. +- 24 ์„œ๋น„์Šค ๋กœ๊ทธ์—์„œ ๊ตฌ IP ์žฌ์ ‘์†, `ivada_project` ๊ฒฝ๋กœ, DB ํƒ€์ž„์•„์›ƒ, Neo4j ์—ฐ๊ฒฐ ์‹คํŒจ๊ฐ€ ์žฌํ˜„๋˜์ง€ ์•Š๋Š”๋‹ค. + +## ์™„๋ฃŒ ์กฐ๊ฑด + +- ์ž๋™๋ฐฐํฌ ๊ธฐ์ค€์ด ๋‹ค์‹œ 24 ์„œ๋ฒ„๋ฅผ ํ–ฅํ•œ๋‹ค. +- 24 ๋Ÿฐํƒ€์ž„ ํŒŒ์ผ ๊ธฐ์ค€ `192.168.219.45`, `192.168.219.52`, `/home/admin/ivada_project` ์‹คํ–‰ ๊ฒฝ๋กœ๊ฐ€ 0๊ฑด์ด๋‹ค. +- 24 1์ฐจ ์ „ํ™˜ ๋Œ€์ƒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ชจ๋‘ ์ •์ƒ ๊ธฐ๋™ํ•œ๋‹ค. +- 23 ์„œ๋ฒ„์—๋Š” ์ž„์‹œ ์‹คํ–‰๊ณ„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚จ์ง€ ์•Š๊ณ , ์ธํ”„๋ผ/์ œ์–ด๋ฉด ์—ญํ• ๋งŒ ๋‚จ๋Š”๋‹ค. +- ์‹ค์„œ๋น„์Šค ๋„๋ฉ”์ธ ๊ธฐ์ค€ ํ•ต์‹ฌ ์‚ฌ์šฉ์ž ๊ฒฝ๋กœ ๊ฒ€์ฆ ๊ธฐ๋ก์ด ๋‚จ๋Š”๋‹ค. diff --git a/journey/research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md b/journey/research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md index 37d085c..5a5037f 100644 --- a/journey/research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md +++ b/journey/research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md @@ -5,6 +5,11 @@ tags: [infra, 24-server, robeing, operations, ssot, research] - ์ƒ์œ„ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) - ์ƒ์œ„ ์›์น™: [0_VALUE Global Principles](https://github.com/happybell80/0_VALUE/blob/main/00_Principles/global-principles.md) +## ๋ฒ”์œ„ ๋ฉ”๋ชจ + +- ์ด ๋ฌธ์„œ๋Š” 24 ์„œ๋ฒ„ ์šด์˜์— ํ•„์š”ํ•œ ๋ฌธ์„œ์™€ ์‹คํ–‰ ์ž์‚ฐ์˜ ์œ„์น˜๋ฅผ ๋ชจ์œผ๋Š” ์ž๋ฃŒ ์ˆ˜์ง‘ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. +- `23 ์ž„์‹œ์šด์˜์„ 24 ์‹ค์„œ๋น„์Šค ์šด์˜์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š”` ์‹ค์ œ ์ „ํ™˜ ์ฐจ๋‹จ ์š”์ธ๊ณผ ์‹คํ–‰ ์ˆœ์„œ๋Š” [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜](./260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md)์™€ [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš](../plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md)์—์„œ ๋”ฐ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค. + ## ๋ชฉ์  - 24 ์„œ๋ฒ„๋ฅผ ๋กœ๋น™ ์‹คํ–‰ ์„œ๋ฒ„๋กœ ์šด์˜ํ•  ๋•Œ ๋จผ์ € ๋ด์•ผ ํ•  ๋ฌธ์„œ๋ฅผ SSOT ์ˆœ์„œ๋Œ€๋กœ ๋ชจ์๋‹ˆ๋‹ค. diff --git a/journey/research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md b/journey/research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md new file mode 100644 index 0000000..ad859df --- /dev/null +++ b/journey/research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md @@ -0,0 +1,129 @@ +--- +tags: [infra, 24-server, robeing, production-transition, ssot, research] +--- + +# 260309 24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜ + +## ์ƒ์œ„ ์›์น™ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) + +## ๊ด€๋ จ ๋ฌธ์„œ +- [Infra Journey](../README.md) +- [24์„œ๋ฒ„ ๋กœ๋น™ ์šด์˜ ์ž๋ฃŒ ์ˆ˜์ง‘](./260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md) +- [260304 51123 ์ž„์‹œ๋ณต๊ตฌ ์„œ๋น„์Šค ์—ฐ์†์„ฑ ์กฐ์น˜๋‚ด์—ญ](../troubleshooting/260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md) +- [260305 23์ž„์‹œ๋ฐฐํฌ env.deploy SSOT ๋ฐ ๋ฐฐํฌ์‹คํŒจ ๊ทผ๋ณธ์›์ธ ํ•ด๊ฒฐ](../troubleshooting/260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md) +- [24์„œ๋ฒ„ ์šฐ๋ถ„ํˆฌ ํ„ฐ๋ฏธ๋„ ๋ถˆ๊ฐ€, ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ ์˜ค๋ฅ˜, python3-apt ๋ณต๊ตฌ ๊ธฐ๋ก](../troubleshooting/260309_24์„œ๋ฒ„_์šฐ๋ถ„ํˆฌํ„ฐ๋ฏธ๋„๋ถˆ๊ฐ€_๋„คํŠธ์›Œํฌ๋Œ€์—ญ์˜ค๋ฅ˜_python3apt๋ณต๊ตฌ.md) +- [51123 DB 5432 ์ฐจ๋‹จ์‚ฌ๊ณ  ๋ณต๊ตฌ ๋ฐ ์˜์กด ํฌํŠธ ์ ๊ฒ€](../troubleshooting/260303_51123_DB5432_์ฐจ๋‹จ์‚ฌ๊ณ _๋ณต๊ตฌ_๋ฐ_์˜์กดํฌํŠธ_์ ๊ฒ€.md) + +## ๋ชฉ์  + +- ์ง€๊ธˆ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ `24 ์„œ๋ฒ„ ์ž๋ฃŒ ์ฐพ๊ธฐ`๊ฐ€ ์•„๋‹ˆ๋ผ `23 ์ž„์‹œ ํ”„๋กœ๋•์…˜์„ 24 ์‹ค์„œ๋น„์Šค ์šด์˜์œผ๋กœ ๋‹ค์‹œ ์Šน๊ฒฉ`ํ•˜๋Š” ๋ฌธ์ œ๋กœ ์ •ํ™•ํžˆ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค. +- 24 ์„œ๋ฒ„ ์ „ํ™˜์„ ๋ง‰๋Š” ์‹ค์ œ ์ฐจ๋‹จ ์š”์ธ์ด ๋ฌธ์„œ, ๋ฐฐํฌ, ๋Ÿฐํƒ€์ž„, ๋„คํŠธ์›Œํฌ ์ค‘ ์–ด๋””์— ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. +- ์ดํ›„ ๊ณ„ํš ๋ฌธ์„œ๊ฐ€ ๊ตฌํ˜„ ํŒ๋‹จ ์—†์ด ๋ฐ”๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก, ์ฐจ๋‹จ ์š”์ธ์„ ์‚ฌ์‹ค ๊ธฐ์ค€์œผ๋กœ ์ขํž™๋‹ˆ๋‹ค. + +## Facts + +### 1. ํ˜„์žฌ ์šด์˜ ์ƒํƒœ๋Š” `23 ์ž„์‹œ ํ”„๋กœ๋•์…˜ / 24 ์‹คํ–‰ ์ž์‚ฐ๋งŒ ์กด์žฌ` ์ƒํƒœ๋‹ค + +- 2026-03-09 23 ์„œ๋ฒ„ `docker ps` ๊ธฐ์ค€ ์‹คํ–‰ ์ค‘ ์ปจํ…Œ์ด๋„ˆ๋Š” `rb8001`, `robeing_monitor`, `skill-email`, `skill-calendar`, `skill-embedding`, `skill-rag-file`, `skill-slack`, `robeing-skill-news`, `auth-server`, `opensearch`, `data-prepper`, `robeing-gateway`๋‹ค. +- ๊ฐ™์€ ์‹œ๊ฐ 24 ์„œ๋ฒ„ `docker ps` ๊ฒฐ๊ณผ๋Š” ๋นˆ ๋ชฉ๋ก์ด๋‹ค. +- 24 ์„œ๋ฒ„ `systemctl is-active docker nginx` ๊ฒฐ๊ณผ๋Š” `docker=active`, `nginx=inactive`๋‹ค. +- 24 ์„œ๋ฒ„ `ss -tlnp` ๊ฒฐ๊ณผ ์™ธ๋ถ€์—์„œ ํ™•์ธ๋˜๋Š” ๋ฆฌ์Šจ ํฌํŠธ๋Š” `51124`๋งŒ ์žˆ๋‹ค. + +### 2. ์ด๋ฒˆ ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋Š” `23์˜ ์ธํ”„๋ผ`๋ฅผ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ `24์˜ ์‹คํ–‰๋ฉด`์„ ๋˜์‚ด๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค + +- `260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md`๋Š” 23 ๋‹จ๋… ๋ณต๊ตฌ๋ฅผ `ํ•ต์‹ฌ ์—ฐ์†์„ฑ ํ™•๋ณด ๊ธฐ์ค€์˜ ์ž„์‹œ ์•ˆ์ •ํ™”`๋กœ ๊ทœ์ •ํ•œ๋‹ค. +- ๊ฐ™์€ ๋ฌธ์„œ์˜ `24 ์„œ๋ฒ„ ์ธ๊ณ„ ๋ฉ”๋ชจ`๋Š” 24 ๋ณต๊ตฌ ํ›„ ์šฐ์„ ์ˆœ์œ„๋ฅผ `rb8001/skill/chromadb ์›๋ณต ๋ฐฐ์น˜ -> gateway upstream ์žฌ์ ๊ฒ€ -> ์ž„์‹œ ์„ฑ๋Šฅ ํ”Œ๋ž˜๊ทธ ํ•ด์ œ ์—ฌ๋ถ€ ํŒ๋‹จ` ์ˆœ์œผ๋กœ ์ ๊ณ  ์žˆ๋‹ค. +- `robeing/DOCS/journey/plans/260303_23ํ…Œ์ŠคํŠธ๋ณด์กฐ_24ํ”„๋กœ๋•์…˜_์šด์˜์ „ํ™˜_๊ณ„ํš.md`๋Š” ์—ญํ• ์„ `23=ํ…Œ์ŠคํŠธ+๋ณด์กฐ`, `24=ํ”„๋กœ๋•์…˜`์œผ๋กœ ๊ณ ์ •ํ•œ๋‹ค. + +### 3. 24 ์„œ๋ฒ„์—๋Š” ์‹คํ–‰ ์ž์‚ฐ์ด ์ด๋ฏธ ์กด์žฌํ•˜๊ณ  Git ์ƒํƒœ๋„ ๊นจ์ง€์ง€ ์•Š์•˜๋‹ค + +- 24 ์„œ๋ฒ„์— ๋‹ค์Œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค: `robeing/rb8001`, `robeing/robeing-monitor`, `robeing/skill_email`, `robeing/skill_news`, `robeing/skill-slack`, `robeing/skill-rag-file`, `robeing/skill-calendar`, `robeing/skill-embedding`, `robeing/skill-publish`, `robeing/frontend-customer`, `robeing/frontend-ir-valuation`. +- 24 ์„œ๋ฒ„ ๊ฐ ์ €์žฅ์†Œ์˜ `git status --short --branch` ๊ฒฐ๊ณผ๋Š” ๋ชจ๋‘ `## main...origin/main`์œผ๋กœ ๊นจ๋—ํ•˜๋‹ค. +- ์ฆ‰ 24 ์„œ๋ฒ„๋Š” "์ฝ”๋“œ๊ฐ€ ์—†์–ด์„œ ๋ชป ๋„์šฐ๋Š” ์ƒํƒœ"๊ฐ€ ์•„๋‹ˆ๋ผ "์‹คํ–‰ ์ „ํ™˜์ด ์•„์ง ์ ์šฉ๋˜์ง€ ์•Š์€ ์ƒํƒœ"๋‹ค. + +### 4. ํ˜„์žฌ ์ž๋™๋ฐฐํฌ ๊ธฐ์ค€๊ฐ’์€ ์—ฌ์ „ํžˆ 23 ์„œ๋ฒ„๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค + +- 23 ์„œ๋ฒ„ ์ €์žฅ์†Œ์˜ `.env.deploy` ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚จ์•„ ์žˆ๋‹ค. + - `DEPLOY_SSH_HOST=192.168.219.45` + - `DEPLOY_SSH_PORT=51123` +- ํ™•์ธ ๋Œ€์ƒ: `rb8001`, `robeing-monitor`, `skill-email`, `skill-news`, `skill-slack`, `skill-rag-file`, `skill-calendar`, `skill-embedding-repo`. +- `260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md`๋„ `51124 ๋ณต๊ตฌ ์‹œ ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด ๊ฐ ๋ ˆํฌ .env.deploy์˜ ๋ฐฐํฌ ๋Œ€์ƒ ๊ฐ’๋งŒ 24 ์„œ๋ฒ„ ๊ฐ’์œผ๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋œ๋‹ค`๊ณ  ๊ธฐ๋กํ•œ๋‹ค. +- ๋”ฐ๋ผ์„œ ์ง€๊ธˆ ์ž๋™๋ฐฐํฌ๊ฐ€ 24๋กœ ๊ฐ€์ง€ ์•Š๋Š” ์ง์ ‘ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” `.env.deploy`๊ฐ€ ์•„์ง 23 ๊ธฐ์ค€์ด๋ผ๋Š” ์ ์ด๋‹ค. + +### 5. 24 ์„œ๋ฒ„์˜ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์™€ 23 ๋ฐฐํฌ ๊ธฐ์ค€ ๊ฒฝ๋กœ๊ฐ€ ์ผ๋ถ€ ๋‹ค๋ฅด๋‹ค + +- 23 ์„œ๋ฒ„ ์†Œ์Šค ์ €์žฅ์†Œ๋Š” `skill-email`, `skill-news` ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. +- 24 ์„œ๋ฒ„ ์‹ค์ œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” `skill_email`, `skill_news`๋‹ค. +- ๊ทธ๋Ÿฐ๋ฐ 24 ์„œ๋ฒ„์— ์žˆ๋Š” `skill_email/.env.deploy`, `skill_news/.env.deploy`๋„ ๊ฐ๊ฐ `DEPLOY_PROJECT_DIR=/home/admin/robeing/skill-email`, `DEPLOY_PROJECT_DIR=/home/admin/robeing/skill-news`๋กœ ์ ํ˜€ ์žˆ๋‹ค. +- ์ฆ‰ 24 ๋ณต๊ท€ ์‹œ ๋‹จ์ˆœํžˆ SSH ๋Œ€์ƒ๋งŒ ๋ฐ”๊พธ๋ฉด ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ฐฐํฌ ๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ๋„ ์‹ค์ œ 24 ๊ฒฝ๋กœ์™€ ๋งž์ถฐ์•ผ ํ•œ๋‹ค. + +### 6. 24 ์„œ๋ฒ„ ๋Ÿฐํƒ€์ž„ ๊ฐ’์—๋Š” ์•„์ง ๊ณผ๊ฑฐ 23 ์„œ๋ฒ„ ์ฃผ์†Œ์™€ ์‚ญ์ œ๋œ ๊ฒฝ๋กœ๊ฐ€ ๋‚จ์•„ ์žˆ๋‹ค + +- 24 ์„œ๋ฒ„ `.env` ํ™•์ธ ๊ฒฐ๊ณผ, ์•„๋ž˜ ์„œ๋น„์Šค๋“ค์ด ์•„์ง `192.168.219.45`๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•œ๋‹ค. + - `rb8001`: `DATABASE_URL`, `TEST_DATABASE_URL`, `METRICS_DATABASE_URL`, `POSTGRES_CONNECTION_STRING`, `GATEWAY_URL`, `AUTH_SERVER_URL` + - `robeing-monitor`: `DATABASE_URL` + - `skill_email`: `DATABASE_URL`, `POSTGRES_CONNECTION_STRING`, `TEST_DATABASE_URL` + - `skill_news`: `DATABASE_URL`, `TEST_DATABASE_URL` + - `skill-slack`: `DATABASE_URL` + - `skill-rag-file`: `DATABASE_URL` + - `skill-calendar`: `DATABASE_URL` +- 24 ์„œ๋ฒ„ compose/workflow์—๋„ ๊ณผ๊ฑฐ๊ฐ’์ด ๋‚จ์•„ ์žˆ๋‹ค. + - `skill_email/docker-compose.yml`: `AUTH_SERVER_URL` fallback์ด `http://192.168.219.45:9000` + - `skill-calendar/docker-compose.yml`: `DATABASE_URL` fallback์ด `postgresql://...@192.168.219.45:5432/main_db` + - `skill-embedding/docker-compose.yml`: ONNX ๋ชจ๋ธ ๋งˆ์šดํŠธ๊ฐ€ `/home/admin/ivada_project/onnx_models` + - 24 ์„œ๋ฒ„ `skill-embedding/.gitea/workflows/deploy.yml`: `/home/admin/ivada_project/skill-embedding` + - 24 ์„œ๋ฒ„ `skill-publish/.gitea/workflows/deploy.yml`: `/home/admin/ivada_project/skill-publish` +- `ivada_project`๋Š” ์ด๋ฏธ ์šด์˜ ๊ฒฝ๋กœ์—์„œ ์ œ๊ฑฐ๋œ ์ƒํƒœ์ด๋ฏ€๋กœ, ์œ„ ๊ฒฝ๋กœ๋Š” 24 ์‹ค์„œ๋น„์Šค ์ „ํ™˜์— ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค. + +### 7. 24 ์„œ๋ฒ„์˜ `infra-config` ๊ธฐ์ค€ ํŒŒ์ผ์ด ํ˜„์žฌ ์—†๋‹ค + +- 24 ์„œ๋ฒ„์—์„œ ๋‹ค์Œ ๊ฒฝ๋กœ ํ™•์ธ ๊ฒฐ๊ณผ: + - `MISSING:/home/admin/infra-config` + - `MISSING:/home/admin/infra-config/runtime.env` + - `MISSING:/home/admin/infra-config/secrets.env` +- ๊ทธ๋Ÿฐ๋ฐ 24 ์„œ๋ฒ„ `robeing-monitor/docker-compose.yml`์€ `env_file`๋กœ `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env`, `.env`๋ฅผ ํ•จ๊ป˜ ์š”๊ตฌํ•œ๋‹ค. +- ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์ƒํƒœ ๊ทธ๋Œ€๋กœ๋ผ๋ฉด 24์—์„œ `robeing-monitor`๋Š” ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ์ด์ „ ๋‹จ๊ณ„์—์„œ ํ™˜๊ฒฝ ํŒŒ์ผ ๊ฒฝ๋กœ ๋ฌธ์ œ์— ๊ฑธ๋ฆด ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. + +### 8. 24์—์„œ 23์œผ๋กœ ํ–ฅํ•˜๋Š” ์˜์กด ํฌํŠธ๋Š” ์ผ๋ถ€๋งŒ ์—ด๋ ค ์žˆ๋‹ค + +- 24 ์„œ๋ฒ„์—์„œ 23 ์„œ๋ฒ„ `192.168.0.100`์œผ๋กœ TCP ํ™•์ธ ๊ฒฐ๊ณผ: + - `9000 ok` + - `9200 ok` + - `8100 ok` + - `5432 fail` + - `7687 fail` +- 23 ์„œ๋ฒ„ ํ˜„์žฌ UFW ๊ทœ์น™์€ `5432/tcp`๋ฅผ `192.168.219.52`์™€ `172.16.0.0/12`์—๋งŒ ํ—ˆ์šฉํ•œ๋‹ค. +- 23 ์„œ๋ฒ„ ํ˜„์žฌ UFW ๊ทœ์น™์€ `7687`์„ `192.168.219.0/24`, `172.19.0.0/16`, `172.17.0.0/16`์—๋งŒ ํ—ˆ์šฉํ•œ๋‹ค. +- 23 ์„œ๋ฒ„ `ss -tlnp` ๊ฒฐ๊ณผ `5432`๋Š” `0.0.0.0`์— ์—ด๋ ค ์žˆ์ง€๋งŒ, `7687`์€ `127.0.0.1`์—์„œ๋งŒ ๋ฆฌ์Šจ ์ค‘์ด๋‹ค. +- ์ฆ‰ 24๊ฐ€ ํ˜„์žฌ IP `192.168.0.106`๋กœ ๋Œ์•„์˜จ ๋’ค์—๋Š”, DB์™€ Neo4j ์˜์กด์„ฑ์— ๋Œ€ํ•ด ๊ธฐ์กด ํ—ˆ์šฉ ๊ทœ์น™์ด ๋” ์ด์ƒ ๋งž์ง€ ์•Š๋Š”๋‹ค. + +### 9. 24 ์„œ๋ฒ„์˜ ์ €์žฅ ์ž์‚ฐ๊ณผ SSHFS ๋งˆ์šดํŠธ๋Š” ์กด์žฌํ•œ๋‹ค + +- 24 ์„œ๋ฒ„์— `robeing/onnx_models`, `/mnt/51123data`, `/mnt/51123logs`๊ฐ€ ์กด์žฌํ•œ๋‹ค. +- ๋”ฐ๋ผ์„œ `skill-rag-file`์˜ ๋ฌธ์„œ ๊ฒฝ๋กœ์™€ `skill-embedding`์˜ ๋ชจ๋ธ ๊ฒฝ๋กœ๋Š” ์ž์‚ฐ ์ž์ฒด๊ฐ€ ์—†์–ด์„œ ๋ง‰ํžˆ๋Š” ์ƒํ™ฉ์€ ์•„๋‹ˆ๋‹ค. +- ๋‹ค๋งŒ `skill-embedding` compose๊ฐ€ ์‹ค์ œ ์กด์žฌ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ญ์ œ๋œ `ivada_project` ๊ฒฝ๋กœ๋ฅผ ๋ณด๊ณ  ์žˆ์–ด, ๊ตฌ์„ฑ๊ฐ’ ๊ต์ •์ด ํ•„์š”ํ•˜๋‹ค. + +### 10. ํ˜„์žฌ ๋ฆฌ์„œ์น˜ ๋ฌธ์„œ `24์„œ๋ฒ„ ๋กœ๋น™ ์šด์˜ ์ž๋ฃŒ ์ˆ˜์ง‘`์€ ์‹คํ–‰ ์ „ํ™˜ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๋‹ซ๋Š” ๋ฌธ์„œ๊ฐ€ ์•„๋‹ˆ๋‹ค + +- ํ•ด๋‹น ๋ฌธ์„œ๋Š” ๋ฌธ์„œ/์ž์‚ฐ/์ฐธ๊ณ  ์ˆœ์„œ๋ฅผ ๋ชจ์€ ์ž๋ฃŒ ์ˆ˜์ง‘ ๋ฌธ์„œ๋‹ค. +- ์‹ค์ œ ์ฐจ๋‹จ ์š”์ธ์ธ `23 ๋Œ€์ƒ ์ž๋™๋ฐฐํฌ`, `24 ๋Ÿฐํƒ€์ž„์˜ ๊ณผ๊ฑฐ IP`, `24 missing infra-config`, `23 UFW/Neo4j ๋ฏธ๊ฐœ๋ฐฉ`, `24 ๊ฒฝ๋กœ ๋ถˆ์ผ์น˜`๋ฅผ ์‹คํ–‰ ์ˆœ์„œ๋กœ ๊ณ ์ •ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. +- ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ๋ฌธ์ œ๋ฅผ ๋‹ซ๋Š” ๊ธฐ์ค€ ๋ฆฌ์„œ์น˜๋Š” ๋ณ„๋„๋กœ ํ•„์š”ํ•˜๋‹ค. + +## Interpretation + +- ์ง€๊ธˆ ํ’€๊ณ  ์žˆ๋Š” ์ •ํ™•ํ•œ ๋ฌธ์ œ๋Š” `24 ์„œ๋ฒ„๋ฅผ ์ผค ์ˆ˜ ์žˆ๋А๋ƒ`๊ฐ€ ์•„๋‹ˆ๋ผ, `23 ์ž„์‹œ์šด์˜ ์ค‘์— ๊ตณ์–ด์ง„ ๋ฐฐํฌ/๋Ÿฐํƒ€์ž„/๋ฐฉํ™”๋ฒฝ ๊ธฐ์ค€์„ 24 ํ”„๋กœ๋•์…˜ ๊ตฌ์กฐ๋กœ ๋‹ค์‹œ ๋งž์ถ”๋Š” ๊ฒƒ`์ด๋‹ค. +- ํ˜„์žฌ ์ „ํ™˜์ด ์•ˆ ๋˜๋Š” ์ด์œ ๋Š” ๋‹จ์ผ ์›์ธ์ด ์•„๋‹ˆ๋‹ค. `๋ฐฐํฌ ๋Œ€์ƒ์ด ์•„์ง 23`, `24 ๋Ÿฐํƒ€์ž„์€ ๊ตฌ 23 IP๋ฅผ ์ฐธ์กฐ`, `24 ํ•„์ˆ˜ env ํŒŒ์ผ ๋ถ€์žฌ`, `23 ์ธํ”„๋ผ ์˜์กด ํฌํŠธ๊ฐ€ ์ƒˆ 24 IP์— ์—ด๋ ค ์žˆ์ง€ ์•Š์Œ`, `์ผ๋ถ€ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์‚ญ์ œ๋œ ivada_project ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉ`์ด ๋™์‹œ์— ๊ฒน์ณ ์žˆ๋‹ค. +- ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ๊ณ„ํš ๋ฌธ์„œ๋Š” `24์— docker compose๋ฅผ ํ•œ ๋ฒˆ ์˜ฌ๋ฆฌ๋Š” ์ ˆ์ฐจ`๊ฐ€ ์•„๋‹ˆ๋ผ, `๋ฐฐํฌ SSOT -> 24 ๋Ÿฐํƒ€์ž„ SSOT -> 23 ์ธํ”„๋ผ ํ—ˆ์šฉ ๊ทœ์น™ -> ์„œ๋น„์Šค๋ณ„ ๊ธฐ๋™ ์ˆœ์„œ -> 23 ์ž„์‹œ ์ปจํ…Œ์ด๋„ˆ ํ•ด์ œ`๋ฅผ ํ•œ ๋ฌถ์Œ์œผ๋กœ ๋‹ค๋ค„์•ผ ํ•œ๋‹ค. + +## Unresolved + +- `skill-publish`๋ฅผ ์ด๋ฒˆ 1์ฐจ ์ „ํ™˜ ๋ฒ”์œ„์— ํฌํ•จํ• ์ง€, ์‹คํ–‰๊ณ„ ์„œ๋น„์Šค 1์ฐจ๊ตฐ(`rb8001`, `robeing-monitor`, `skill-email`, `skill-calendar`, `skill-news`, `skill-slack`, `skill-rag-file`, `skill-embedding`) ์ดํ›„ 2์ฐจ๊ตฐ์œผ๋กœ ๋‘˜์ง€๋Š” ์šด์˜ ์šฐ์„ ์ˆœ์œ„ ํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค. +- 23 ๊ฒŒ์ดํŠธ์›จ์ด์—์„œ 24์˜ `rb8001`๊ณผ `robeing-monitor`๋กœ ํ–ฅํ•˜๋Š” upstream ์ตœ์ข…๊ฐ’์ด ํ˜„์žฌ ์–ด๋–ค ํŒŒ์ผ์—์„œ ๊ด€๋ฆฌ๋˜๋Š”์ง€ ์ด๋ฒˆ ๋ฆฌ์„œ์น˜์—์„œ๋Š” ๋‹ค์‹œ ์—ด์–ด๋ณด์ง€ ์•Š์•˜๋‹ค. ๋‹ค๋งŒ `260304` ๋ฌธ์„œ์ƒ ์›๋ณต ์‹œ ์žฌ์ ๊ฒ€ ๋Œ€์ƒ์ž„์€ ํ™•์ธ๋œ๋‹ค. + +## ํ•œ ์ค„ ๊ฒฐ๋ก  + +- ์ด๋ฒˆ ๋ฌธ์ œ๋Š” `24 ์„œ๋ฒ„ ๋ณต๊ตฌ`๊ฐ€ ์•„๋‹ˆ๋ผ `23 ์ž„์‹œ ํ”„๋กœ๋•์…˜์„ ๋๋‚ด๊ณ  24 ์‹ค์„œ๋น„์Šค ์šด์˜ ๊ธฐ์ค€์„ ๋‹ค์‹œ ์„ธ์šฐ๋Š” ์ „ํ™˜`์ด๋ฉฐ, ์ด๋ฅผ ๋ง‰๋Š” ์ฐจ๋‹จ ์š”์ธ์€ ์ด๋ฏธ `๋ฐฐํฌ ๋Œ€์ƒ`, `๋Ÿฐํƒ€์ž„ ๊ตฌ IP`, `missing infra-config`, `23 ์ธํ”„๋ผ ํฌํŠธ`, `ivada_project ์ž”์กด ๊ฒฝ๋กœ`๋กœ ์ขํ˜€์กŒ๋‹ค.