4 min read

ν™ˆ μ„œλ²„ κ΅¬μΆ•ν•˜κΈ° (2)

Table of Contents

ν™ˆ μ„œλ²„ κ΅¬μΆ•ν•˜κΈ° 1νŽΈμ—μ„œ μ΄μ–΄μ§€λŠ” κΈ€μž…λ‹ˆλ‹€.
μ•žμ—μ„œ ν™ˆ μ„œλ²„ 초기 μ„ΈνŒ…μ„ μ–΄λŠ 정도 μ™„λ£Œν–ˆκ³ , κ·Έλ™μ•ˆ μΆ”κ°€λ‘œ κ³ λ―Όν–ˆλ˜ 것은 파일 μ²˜λ¦¬μ™€ λͺ¨λ‹ˆν„°λ§μ΄μ—ˆμŠ΅λ‹ˆλ‹€.
κ·Έ 외에도 λͺ‡ κ°€μ§€ κ³ λ―Όν–ˆλ˜ μ£Όμ œλ“€μ„ 적어 보렀 ν•©λ‹ˆλ‹€.

νŒŒμΌμ„ 어디에 μ €μž₯ν• κΉŒ?

사싀 ν™ˆ μ„œλ²„λ₯Ό λ§Œλ“œλŠ” 김에 파일과 DBλ₯Ό λͺ¨λ‘ λ§₯λ―Έλ‹ˆμ— μ„ΈνŒ…ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  μš”μ†Œλ₯Ό ν™ˆ μ„œλ²„μ— μ„ΈνŒ…ν•΄ 보고 μ‹Άλ‹€λŠ” μš•μ‹¬μ΄μ—ˆλŠ”λ°μš”, ν•˜μ§€λ§Œ 크게 κ±Έλ¦¬λŠ” 점이 2κ°€μ§€κ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

  1. μž₯μ•  μƒν™©μ΄λ‚˜ 데이터가 날아갔을 λ•Œ λ¦¬μŠ€ν¬κ°€ 크닀고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. (특히 DB)
  2. κ·Έλž˜λ„ νŒŒμΌμ€ λ‘œμ»¬μ— μ €μž₯ν•΄ 보렀고 μ‹œλ„ν–ˆμ—ˆλŠ”λ°, λ§₯λ―Έλ‹ˆλ‘œ μ„œλ²„λ₯Ό κ΅¬μΆ•ν•˜λ‹€ λ³΄λ‹ˆ VMκ³Ό μ»¨ν…Œμ΄λ„ˆλ‘œ 겹겹이 싸인 ꡬ쑰가 λ˜μ–΄μ„œ 마운트 섀정도 μ—¬λŸ¬ 단계에 걸쳐야 ν•˜κ³ , κΆŒν•œ 문제 λ“± μ—¬λŸ¬ κ³΅μˆ˜λ„ μƒκ²ΌμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ DB와 파일 μ €μž₯μ†ŒλŠ” ν΄λΌμš°λ“œ μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ°λ‘œ ν•˜κ³ , μ½”λ“œλ„ λͺ¨λ‘ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
특히 파일 μ €μž₯μ†Œμ˜ 경우 Oracle Cloudλ₯Ό 톡해 20GBκΉŒμ§€ 무료둜 μ‚¬μš©ν•  수 μžˆμ–΄ μœ μš©ν•˜κ²Œ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œ λ§Œλ“€κΈ°

λͺ¨λ‹ˆν„°λ§μ€ ν™ˆ μ„œλ²„λ₯Ό μ‹œμž‘ν•˜κ²Œ 된 첫 번째 계기이기도 ν•©λ‹ˆλ‹€. μ•„μ£Ό κ°„λ‹¨ν•˜λ”λΌλ„, κ΄€λ ¨ κ²½ν—˜μ„ 늘리기 μœ„ν•΄ λ°˜λ“œμ‹œ 직접 ꡬ좕해 보고 μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ μ•„μ‰½κ²Œλ„ λ§₯λ―Έλ‹ˆλŠ” κ·Έλ ‡κ²Œ 사양이 λ†’μ§€ μ•Šκ³ , νŠΉνžˆλ‚˜ VM을 톡해 Kubernetesλ₯Ό κ΅¬μ„±ν•˜κΈ° λ•Œλ¬Έμ— 무거운 λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œμ„ 채택할 μˆ˜λŠ” μ—†μ—ˆμŠ΅λ‹ˆλ‹€.
ELKλŠ” μ‹œλ„ν•  엄두도 λ‚˜μ§€ μ•Šμ•˜κ³ , kube-prometheus-stack을 μ‹œλ„ν–ˆλ‹€κ°€ ν™ˆ μ„œλ²„κ°€ λ‹€μš΄λ˜κΈ°λ„ ν–ˆμŠ΅λ‹ˆλ‹€.

μ΅œμ’…μ μœΌλ‘œ μ±„νƒν•œ 것은 loki-stack 기반의 PLG μŠ€νƒμž…λ‹ˆλ‹€. PLG μŠ€νƒμ€ 둜그의 메타데이터λ₯Ό 인덱싱 ν•˜κΈ° λ•Œλ¬Έμ— ELK에 λΉ„ν•΄ λ©”λͺ¨λ¦¬μ™€ μ €μž₯ 곡간을 적게 μ‚¬μš©ν•˜κ³ , μ‹€μ œλ‘œλ„ 맀우 κ°€λ²Όμ› μŠ΅λ‹ˆλ‹€. Grafana, Prometheusλ₯Ό ν¬ν•¨ν•œ ν•„μˆ˜ 도ꡬ듀을 Helm chart ν•˜λ‚˜λ‘œ λ™μ‹œμ— μ„€μ •ν•  수 μžˆμ–΄ 배포도 μ‹ κ²½ μ“Έ 뢀뢄이 μ μ—ˆμŠ΅λ‹ˆλ‹€.

배포 ν›„ Grafana μ„œλΉ„μŠ€λ₯Ό μ™ΈλΆ€λ‘œ λ…ΈμΆœμ‹œν‚€κ³ , μ™ΈλΆ€ ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜μ—¬ ν΄λŸ¬μŠ€ν„° μƒνƒœμ™€ 둜그λ₯Ό μ‘°νšŒν•  수 μžˆλ„λ‘ κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” μ œκ°€ μ‚¬μš©ν•œ λŒ€μ‹œλ³΄λ“œ ν…œν”Œλ¦Ώμž…λ‹ˆλ‹€.

Grafana

Argo CDλ₯Ό 쑰금 더 λ˜‘λ˜‘ν•˜κ²Œ μ‚¬μš©ν•˜κΈ°

사싀 이 뢀뢄은 1νŽΈμ„ μ§„ν–‰ν•  λ•Œλ„ μžˆμ—ˆλŠ”λ°, 쑰금 더 λ‹€λ“¬μœΌλ©΄μ„œ μ΄λ²ˆμ— μ •λ¦¬ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

개인적으둜 Argo CDλŠ” UIκ°€ 정말 잘 λ˜μ–΄ μžˆλŠ” 편이라 μƒκ°ν•˜κ³ , μ‹€μ œλ‘œ 이전에 Argo CDλ₯Ό μ‚¬μš©ν–ˆλ˜ νšŒμ‚¬μ—μ„œλ„ UIλ₯Ό 톡해 섀정을 ν•˜λŠ” κ²½μš°κ°€ 맀우 λ§Žμ•˜μŠ΅λ‹ˆλ‹€.
ν•˜μ§€λ§Œ μ €λŠ” 쑰금 더 μ½”λ“œ μ€‘μ μ μœΌλ‘œ λ¦¬μ†ŒμŠ€λ₯Ό κ΄€λ¦¬ν•˜κ³  μ‹Άμ—ˆκ³ , UIμ—μ„œλŠ” κΈ°λŠ₯이 λ‹€μ†Œ μ œν•œλ˜μ–΄ μžˆλ‹€λŠ” 점도 μ•„μ‰¬μ› μŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ μ œκ°€ μ„ νƒν•œ 방식은 App of Apps νŒ¨ν„΄μž…λ‹ˆλ‹€. 배포할 Application λ¦¬μ†ŒμŠ€λ“€μ„ 폴더에 λ”°λ‘œ λͺ¨μ•„ 두고, ν•΄λ‹Ή ν΄λ”λ§Œ λ™κΈ°ν™”μ‹œν‚€λ©΄ λͺ¨λ“  ν•˜μœ„ λ¦¬μ†ŒμŠ€λ“€μ΄ 섀정에 따라 λ°°ν¬λ©λ‹ˆλ‹€.
이 κ³Όμ •μ—μ„œ κ°œλ³„ λ¦¬μ†ŒμŠ€ 섀정을 μ½”λ“œλ₯Ό 톡해 관리할 수 있고, UIμ—μ„œ μ‚¬μš©ν•  수 μ—†λŠ” Multi-source μ„€μ • 같은 것도 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— μœ μ—°μ„±μ΄ λ†’μ•„μ‘ŒμŠ΅λ‹ˆλ‹€.

Argo CD - App of Apps

κ·Έ μ™Έ

  • 1νŽΈμ—μ„œ μ–ΈκΈ‰ν–ˆλ˜ μ•„ν‚€ν…μ²˜μ— λ”°λ₯Έ λΉŒλ“œ 문제λ₯Ό 이후에도 κ²½ν—˜ν–ˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜λ„ λ‹€λ₯Έ μ–Έμ–΄λ“€μ˜ 경우 Rust보닀 과정도 쉽고, μ°Έκ³ μžλ£ŒλŠ” λ§Žμ•„μ„œ λ‹€ν–‰νžˆ μ‰½κ²Œ λ„˜μ–΄κ°„ 것 κ°™λ„€μš”.
  • 파일 μ—…λ‘œλ“œ κ³Όμ •μ—μ„œ μš©λŸ‰ μ œν•œ μ΄μŠˆκ°€ μžˆμ—ˆλŠ”λ°, λ°±μ—”λ“œλΏ μ•„λ‹ˆλΌ Ingressμ—μ„œλ„ 좔가적인 섀정이 ν•„μš”ν–ˆμŠ΅λ‹ˆλ‹€.
  • λ°±μ—”λ“œλ₯Ό λ„μš°λŠ” 것은 큰 λ¬Έμ œκ°€ μ—†μ—ˆκ³  이제 배치 μž‘μ—…μ„ ꡬ성해야 ν•˜λŠ”λ°, νŠΉμ„±μƒ κ°•μ œ μˆ˜μž‘μ—…μ΄ ν•„μš”ν•œ 단계도 있고 주기도 1μ£Ό μ΄μƒμœΌλ‘œ κΈ΄ νŽΈμ΄λΌμ„œ 아직 κ³ λ―Ό μ€‘μž…λ‹ˆλ‹€.

마치며

μ΄λ‘œμ„œ ν™ˆ μ„œλ²„λ₯Ό κ΅¬λ§€ν•˜λ©΄μ„œ ν•΄ 보고 μ‹Άμ—ˆλ˜ 큰 그림은 κ΅¬ν˜„ν•΄ λ³΄μ•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν˜„μž¬ 단계에 μ ‘μ–΄λ“€κ³  λ‚˜μ„œλŠ” ν™•μ‹€νžˆ 배포가 κ°„λ‹¨ν•˜κ³  νŽΈν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. 였히렀 μ΅œκ·Όμ—λŠ” ν™ˆ μ„œλ²„μ— λ„μšΈ λ°±μ—”λ“œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³ , μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλ₯Ό κ°œνŽΈν•˜λŠ” 데 더 λ§Žμ€ μ‹œκ°„μ„ 듀이고 μžˆμŠ΅λ‹ˆλ‹€.

졜근 정신없이 ν•˜λ£¨ν•˜λ£¨λ₯Ό 보내고 μžˆμ–΄ 진행이 λŠ¦μ–΄μ§ˆ 것 κ°™μ§€λ§Œ, 당뢄간은 이전에 μ–ΈκΈ‰ν•œ λŒ€λ‘œ ν˜„μž¬ 운영 쀑인 μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλ₯Ό μ „λΆ€ μ΄κ΄€ν•˜λŠ” 것이 λͺ©ν‘œμž…λ‹ˆλ‹€.
λ˜ν•œ μ˜¬ν•΄λΆ€ν„° νšŒμ‚¬μ—μ„œ DevOps 업무λ₯Ό μ‘°κΈˆμ”© ν•˜κ²Œ λ˜λ©΄μ„œ μ‹€λ¬΄μ—μ„œλ§Œ κ²½ν—˜ν•  수 μžˆλŠ” 것듀도 보이고, μœ„μ—μ„œ μ–ΈκΈ‰ν•œ 문제 쀑 νšŒμ‚¬μ—μ„œ ν•΄κ²°ν•΄μ•Ό ν•  κ³Όμ œλ„ μžˆμŠ΅λ‹ˆλ‹€. μ΅œλŒ€ν•œ μ£Όμ–΄μ§„ ν™˜κ²½μ„ μ„±μž₯의 기회둜 잘 ν™œμš©ν•˜κ³ , ν™ˆ μ„œλ²„μ—λ„ μ μš©ν•  수 μžˆλŠ” 점이 μžˆλ‹€λ©΄ λ„μž…ν•˜λ©΄μ„œ ν™ˆ μ„œλ²„λ₯Ό κ°€κΎΈμ–΄ λ‚˜κ°€λ €κ³  ν•©λ‹ˆλ‹€.

참고 자료