ansible ์‚ฌ์šฉ๊ธฐ

2025. 10. 10. 18:12ยท๊ธฐ๋ก์„ ์Šต๊ด€ํ™”ํ•˜๋Š” ๊ฐœ๋ฐœ์ž

๋ธ”๋กœ๊ทธ๋ฅผ ๋ฐฉ์น˜ํ•ด๋‘”์ง€ ๋‘๋‹ฌ์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค.

 

์ตœ๊ทผ์—๋Š” ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋ฅผ ๊ฒฐ์ œํ•ด์„œ ๋“ฃ๊ณ ์žˆ๋Š”๋ฐ์š”,

 

์—ฌ๊ธฐ์„œ Ansible์ด๋ผ๋Š” ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์ธํ”„๋ผ ๊ฐ•์˜๋„๊ตฌ์— ๋Œ€ํ•ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

 

Ansible์€ ์„œ๋ฒ„ ์„ค์ •, ๋ฐฐํฌ, ๊ด€๋ฆฌ ์ž‘์—…์„ ์ฝ”๋“œ๋กœ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.


์ฆ‰, ์‚ฌ๋žŒ์ด ์ผ์ผ์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋Œ€์‹ , ๋ฏธ๋ฆฌ ์ •์˜๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋ฅผ ํ•œ ๋ฒˆ์— ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š”

  • ๊ธฐ๋ณธ ๊ฐœ๋…(Playbook, Inventory ๋“ฑ)์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์ดํ•ด
  • ์‹ค์ œ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ์˜ ์‚ฌ์šฉ ํ›„๊ธฐ

์ด ๋‘ ๊ฐ€์ง€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ํ™” ๋„๊ตฌ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

Ansible ๊ธฐ๋ณธ ๊ฐœ๋…

Ansible์€ ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œ๋กœ ์ œ์–ดํ•˜๋Š” ์ž๋™ํ™” ๋„๊ตฌ๋กœ, Infrastructure as Code (IaC) ๊ฐœ๋…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์„ค์ •, ํŒจํ‚ค์ง€ ์„ค์น˜, ์„œ๋น„์Šค ๋ฐฐํฌ ๋“ฑ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ‘์Šคํฌ๋ฆฝํŠธ(Playbook)’๋กœ ์ •์˜ํ•˜๋ฉด, ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋™์‹œ์— ๋ช…๋ น์„ ์ „์†กํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Infrastructure as Code (IaC) ๊ตฌํ˜„
    → ์„œ๋ฒ„ ๊ด€๋ฆฌ์™€ ๋ฐฐํฌ ๊ณผ์ •์„ ์ฝ”๋“œ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • Python ๊ธฐ๋ฐ˜ ๋™์ž‘
    → ๋‚ด๋ถ€์ ์œผ๋กœ Python์„ ์ด์šฉํ•˜์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ Python ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹˜
  • ์ค‘์•™ ์ œ์–ด ๊ตฌ์กฐ
    → ํ•˜๋‚˜์˜ ์ œ์–ด ์„œ๋ฒ„(Control Node)์—์„œ ์—ฌ๋Ÿฌ ๋Œ€์ƒ ์„œ๋ฒ„(Managed Node)๋ฅผ ์ œ์–ด

 

๊ตฌ์„ฑ ๊ฐœ์š”

Ansible์€ Control Node ํ•œ ๋Œ€๋งŒ ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๋ช…๋ น์„ ๋ฐ›๋Š” Managed Node์—๋Š” Python 2.6 ์ด์ƒ๋งŒ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ญํ•  ์„œ๋ฒ„ ์ด๋ฆ„ ์„ค๋ช…
Control Node public-nat Ansible์ด ์„ค์น˜๋˜์–ด ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ์„œ๋ฒ„
Managed Node kafka01, kafka02, kafka03 ์ œ์–ด ๋Œ€์ƒ Kafka ์„œ๋ฒ„๋“ค

 

 

์‹ค์ œ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ์˜ ์‚ฌ์šฉ ํ›„๊ธฐ

AWS EC2์„œ๋ฒ„๋ฅผ ๋ฐ›์•„ ์‚ฌ์šฉํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

์ €๋Š” ๋ฏธ๋ฆฌ kafka ์„œ๋ฒ„๋“ค๊ณผ public-nat ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ๋  ์ˆ˜ ์žˆ๋„๋ก AWS์—์„œ VPC์„ค์ •์„ ํ•œ ์ƒํƒœ์—์„œ ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ“ /etc/hosts ์„ค์ •

๋จผ์ € public-nat(Control Node)์„œ๋ฒ„์—์„œ /etc/hosts ํŒŒ์ผ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
์ด ํŒŒ์ผ์€ DNS ์„œ๋ฒ„ ์—†์ด๋„ ์„œ๋ฒ„ ์ด๋ฆ„์œผ๋กœ IP๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋กœ์ปฌ ๋ฃฉ์—… ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

$ sudo vi /etc/hosts
172.31.27.133 kafka01
172.31.32.153 kafka02
172.31.48.244 kafka03

 

๊ฐ ์„œ๋ฒ„์˜ ์‚ฌ์„คIP๋ฅผ ๋“ฑ๋กํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•ด๋‘๋ฉด, ์ดํ›„ ๋ช…๋ น์—์„œ kafka01์ฒ˜๋Ÿผ ์„œ๋ฒ„๋ช…์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Ansible ์„ค์น˜

๊ทธ๋ฆฌ๊ณ  ์ด์–ด์„œ ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

ec2-user$ pip install ansible==8.7.0
ec2-user$ ansible --version

 

๋ฒ„์ „์ด ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ๋˜๋ฉด ์„ค์น˜ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.

 

์ธ๋ฒคํ† ๋ฆฌ(Inventory) ์ž‘์„ฑ

Ansible์ด ์ œ์–ดํ•  ์„œ๋ฒ„ ๋ชฉ๋ก์„ ์ •์˜ํ•˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ๊ฒฝ๋กœ๋Š” /etc/ansible/hosts ์ž…๋‹ˆ๋‹ค.

ec2-user$ cd /etc
ec2-user$ sudo mkdir ansible
ec2-user$ sudo vi /etc/ansible/hosts

 

์ด ํŒŒ์ผ ์•ˆ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ œ์–ดํ•  ์„œ๋ฒ„๋ฅผ ๊ทธ๋ฃนํ™”ํ•ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

/etc/ansible/hosts

  • kafka01 ~03 -> /etc/hosts ํŒŒ์ผ์— ์จ๋‘์—ˆ๋˜ ์ด๋ฆ„์„ ์ธ์‹ํ•ด์„œ IP๋ฅผ ๋งคํ•‘
  • [kafka:vars] : variable ๊ด€๋ จํ•ด ๋ช‡๊ฐ€์ง€ ๋ณ€์ˆ˜ ๋“ฑ๋ก
  • ansible_user : ๋ช…๋ น์„ ์ „๋‹ฌ๋ฐ›์•„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณ„์ •
  • ansible_ssh_private_key_file : ์ ‘์†์— ํ•„์š”ํ•œ ํ‚ค ์ง€์ •

 

Ansible ๊ธฐ๋ณธ ์„ค์ • — ansible.cfg

Ansible์€ ๊ธฐ๋ณธ ์„ค์ •์„ ansible.cfg ํŒŒ์ผ์—์„œ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŒŒ์ผ์—๋Š” ์ „์—ญ์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ํ™˜๊ฒฝ ์„ค์ •(๋””ํดํŠธ ๊ฒฝ๋กœ, ํ‚ค ๊ฒ€์ฆ ์—ฌ๋ถ€, ์ž„์‹œ ํŒŒ์ผ ๊ถŒํ•œ ๋“ฑ)์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ec2-user$ sudo vi /etc/ansible/ansible.cfg
[defaults]
host_key_checking = False
allow_world_readable_tmpfiles = True
์˜ต์…˜ ์„ค๋ช… ๊ฐ’
host_key_checking Ansible์ด ์ฒ˜์Œ ์›๊ฒฉ ์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ, SSH ํ˜ธ์ŠคํŠธ ํ‚ค๋ฅผ ๋“ฑ๋กํ• ์ง€ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋„์šธ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ๋งค๋ฒˆ ์ž…๋ ฅ์ด ๋ฒˆ๊ฑฐ๋กœ์šฐ๋ฏ€๋กœ False๋กœ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. False
allow_world_readable_tmpfiles ์ž„์‹œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ์„ ๋ˆ„๊ตฌ๋‚˜ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ™˜๊ฒฝ์—์„œ๋Š” ๊ถŒํ•œ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ž„์‹œ ํŒŒ์ผ ์ ‘๊ทผ์ด ์ œํ•œ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด True๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. True

 

Ping ํ…Œ์ŠคํŠธ

Ansible์ด ์ œ์–ดํ•  ์„œ๋ฒ„์™€ ์ œ๋Œ€๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ping ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด ํ…Œ์ŠคํŠธ๋Š” ์‹ค์ œ ๋„คํŠธ์›Œํฌ ping์ด ์•„๋‹ˆ๋ผ, SSH ์ ‘์† ํ›„ Ansible ๋ชจ๋“ˆ์ด ์ •์ƒ ์ž‘๋™ํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

 

ํŠน์ • ๊ทธ๋ฃน ๋Œ€์ƒ ํ…Œ์ŠคํŠธ

ansible kafka -m ping

 

→ kafka ๊ทธ๋ฃน(์˜ˆ: kafka01, kafka02, kafka03)์— ํฌํ•จ๋œ ์„œ๋ฒ„๋“ค์— ping ๋ช…๋ น ์‹คํ–‰

 

 

Ansible Playbook์ด๋ž€?

Ansible์—์„œ Playbook์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ช…๋ น์ด๋‚˜ ๋ชจ๋“ˆ์„ ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„๋กœ ๋ฌถ์–ด ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ์ฒ˜๋Ÿผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ž‘์„ฑ ํ˜•์‹ YAML ํŒŒ์ผ๋กœ ์ž‘์„ฑ (.yml ํ™•์žฅ์ž ์‚ฌ์šฉ)
์—ญํ•  ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์„ ์กฐํ•ฉํ•ด ํ•˜๋‚˜์˜ ‘์ž‘์—… ์‹œ๋‚˜๋ฆฌ์˜ค’๋ฅผ ๊ตฌ์„ฑ
์‹คํ–‰ ๋ช…๋ น ansible-playbook [ํŒŒ์ผ๋ช…].yml
๋Œ€ํ‘œ ํŠน์ง• ๋ฉฑ๋“ฑ์„ฑ(Idempotency) — ๊ฐ™์€ ๋ช…๋ น์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€์ง€ ์•Š์Œ

 

์˜ˆ๋ฅผ ๋“ค์–ด ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์ด Playbook์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด,
์ด๋ฏธ ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ ์ด๋ฏธ ์กฐ๊ฑด์ด ๋งŒ์กฑ๋จ์œผ๋กœ ํŒ๋‹จํ•˜๊ณ  ์—๋Ÿฌ ์—†์ด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ฉฑ๋“ฑ์„ฑ ๋•๋ถ„์—, Playbook์€ ์žฌ์‹คํ–‰ ์‹œ์—๋„ ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Playbook ์‚ฌ์šฉ ์˜ˆ์‹œ

์•„๋ž˜๋Š” AWS CodeDeploy Agent๋ฅผ ์„ค์น˜ํ•˜๋Š” Playbook์„ ์‹คํ–‰ํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด install_codedeploy-agent.yml์— ์ •์˜๋œ ๋ชจ๋“  ์ž‘์—…์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๋‹จ ํ•œ ์ค„์˜ ๋ช…๋ น์œผ๋กœ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋™์ผํ•œ ์„ค์ •์„ ์ž๋™์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ansible-playbook install_codedeploy-agent.yml

 

์•„๋ž˜๋Š” ์‹คํ–‰ yaml ํŒŒ์ผ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

---
- name: install codeDeploy Agent
  hosts: kafka
  tasks:
    - name: install packages
      apt:
        update_cache: true                        # update_cache -> apt update ์™€ ๋™์ผ
        pkg:
          - 'ruby-full'
          - 'wget'
      become: yes
    - name: create directory
      file:
        path: /src/code-deploy
        state: directory
        owner: ubuntu
        group: ubuntu
      become: yes

    - name: download codedeploy install file from S3
      get_url:
        url: 'https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install'
        dest: /src/code-deploy

    - name: add execute privilege                 # ์‹คํ–‰ ๊ถŒํ•œ ์ถ”๊ฐ€
      file:
        path: /src/code-deploy/install
        state: file
        mode: u+x

    - name: run install
      command:
        cmd: /src/code-deploy/install auto
      become: yes

    - name: start code deploy service
      systemd_service:
        state: started
        name: codedeploy-agent
        enabled: true

 

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Ansible์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ์„ค์ •, ๊ทธ๋ฆฌ๊ณ  Playbook์˜ ๊ธฐ์ดˆ๊นŒ์ง€ ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค.


์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๋‹ˆ ๋‹จ์ˆœํžˆ ๋ช…๋ น์„ ์ž๋™ํ™”ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๋„˜์–ด, ์ธํ”„๋ผ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ๊ธฐ๋กํ•˜๋Š” ์Šต๊ด€์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋„๊ตฌ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

 

์•ž์œผ๋กœ๋„ ์ด๋Ÿฐ ์ž๋™ํ™”์˜ ํž˜์„ ๋” ๊นŠ์ด ์ดํ•ดํ•˜๊ณ  ์‹ค๋ฌด์— ๋…น์—ฌ๊ฐ€๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

 

๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

๊ฐ•์˜ ์ถœ์ฒ˜ : https://www.inflearn.com/course/kafka-spark-realtime-datalake/dashboard

'๊ธฐ๋ก์„ ์Šต๊ด€ํ™”ํ•˜๋Š” ๊ฐœ๋ฐœ์ž' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฆฌํŠธํ—ˆ๋ธŒ ๊นƒํ—ˆ๋ธŒ ์ €์žฅ ํด๋” ๊ฒฝ๋กœ ์ˆ˜์ •ํ•˜๊ธฐ  (0) 2025.10.24
ํด๋กœ๋“œ์— AWS MCP Servers ๋“ฑ๋กํ•˜๊ธฐ  (0) 2025.05.14
ํด๋กœ๋“œ MCP ์„œ๋ฒ„ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ (์ดˆ๊ธฐ์„ธํŒ…)  (1) 2025.05.12
github๋กœ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ• (git-flow)  (0) 2025.05.09
๊นƒํ—ˆ๋ธŒ ๊พธ๋ฏธ๊ธฐ (๊นƒ๊พธ)  (1) 2025.05.05
'๊ธฐ๋ก์„ ์Šต๊ด€ํ™”ํ•˜๋Š” ๊ฐœ๋ฐœ์ž' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋ฆฌํŠธํ—ˆ๋ธŒ ๊นƒํ—ˆ๋ธŒ ์ €์žฅ ํด๋” ๊ฒฝ๋กœ ์ˆ˜์ •ํ•˜๊ธฐ
  • ํด๋กœ๋“œ์— AWS MCP Servers ๋“ฑ๋กํ•˜๊ธฐ
  • ํด๋กœ๋“œ MCP ์„œ๋ฒ„ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ (์ดˆ๊ธฐ์„ธํŒ…)
  • github๋กœ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ• (git-flow)
์„ค์‹๊ฐ„
์„ค์‹๊ฐ„
๊ธฐ์ˆ  ๋ธ”๋กœ๊ฑฐ๋ฅผ ์ง€๋งํ•˜๋Š” ๋ธ”๋กœ๊ฑฐ
  • ์„ค์‹๊ฐ„
    I can't help it! ๐Ÿ˜‚
    ์„ค์‹๊ฐ„
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (32)
      • ๊ธฐ๋ก์„ ์Šต๊ด€ํ™”ํ•˜๋Š” ๊ฐœ๋ฐœ์ž (6)
      • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (4)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค (11)
      • ๊ธฐํƒ€ (11)
        • MAC ์„ธํŒ… (5)
        • ๐Ÿ“š ๋…์„œ (1)
        • KNIME (3)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์„ค์‹๊ฐ„
ansible ์‚ฌ์šฉ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”