giip
SES Proposal
2 min read

๋น„์šฉ ๋ถ„์„ API ๋ ˆํผ๋Ÿฐ์Šค

GIIP ํ”Œ๋žซํผ์—์„œ ์ง‘๊ณ„๋œ ํด๋ผ์šฐ๋“œ ๋ฐ ์ธํ”„๋ผ ๋น„์šฉ ๋ฐ์ดํ„ฐ์™€ AI ์ตœ์ ํ™” ์ œ์•ˆ์„ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•œ API ์ƒ์„ธ ๋ช…์„ธ์ž…๋‹ˆ๋‹ค.

๐Ÿ“‹ ๊ฐœ์š”

๋น„์šฉ ๋ถ„์„ API๋Š” ์—ฌ๋Ÿฌ ํด๋ผ์šฐ๋“œ(Azure, AWS ๋“ฑ)์™€ ์˜จํ”„๋ ˆ๋ฏธ์Šค ์ž์›์˜ ๋น„์šฉ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์žฌ๋ฌด ์‹œ์Šคํ…œ๊ณผ์˜ ์—ฐ๋™์ด๋‚˜ ์ž๋™ ๋ฆฌํฌํŠธ ์ƒ์„ฑ์„ ์œ„ํ•ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โš ๏ธ ๊ตฌํ˜„ ์ƒํƒœ (๋จผ์ € ํ™•์ธ) ์•„๋ž˜์˜ ๋ฒ”์šฉ /cost/* ์—”๋“œํฌ์ธํŠธ(/cost/summary, /cost/breakdown, /cost/recommendations, https://api.giip.io/v3, x-giip-ak ํ—ค๋”)๋Š” ๊ณ„ํš/๋ฏธ๊ตฌํ˜„ ์ƒํƒœ์ž…๋‹ˆ๋‹ค โ€” ์•„์ง ํ˜ธ์ถœํ•˜์ง€ ๋งˆ์„ธ์š”. Azure ๋น„์šฉ์€ ์‹ค์ œ ๋ฐฐํฌ๋œ API azureCost / azureCostServers(https://giipfaw.azurewebsites.net/api, ์ธ์ฆ ํ—ค๋” x-api-key)๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋ณต์‚ฌยท์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ€ต์Šคํƒ€ํŠธ๋Š” Azure ๋น„์šฉ ๊ฐ€์ด๋“œ์˜ "๐Ÿค– AI/API ํ€ต์Šคํƒ€ํŠธ" ์ ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๊ตฌํ˜„๋จ: Azure ๋น„์šฉ API (x-api-key)

APIMethodURL
์„œ๋ฒ„ ๋ชฉ๋กGEThttps://giipfaw.azurewebsites.net/api/azureCostServers?csn={csn}
๋น„์šฉ ์ƒ์„ธGEThttps://giipfaw.azurewebsites.net/api/azureCost?csn={csn}&lssn={lssn}

์ธ์ฆ์€ x-api-key ํ—ค๋”๋กœ๋งŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค(ํ‚ค๋ฅผ URLยท๋ณธ๋ฌธ์— ๋„ฃ์ง€ ์•Š์Œ). ์š”์ฒญ/์‘๋‹ต ๊ณ„์•ฝ, ์˜ค๋ฅ˜ํ‘œ, cURL/PowerShell/Python ์˜ˆ์ œ๋Š” Azure ๋น„์šฉ ๊ฐ€์ด๋“œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” ์ฃผ์š” ์—”๋“œํฌ์ธํŠธ (๐Ÿšง ๊ณ„ํš/๋ฏธ๊ตฌํ˜„)

์•„๋ž˜ ์„ธ ์—”๋“œํฌ์ธํŠธ๋Š” ๊ณ„ํš ์ค‘์ธ ๋ฒ”์šฉ ๋น„์šฉ API ๋กœ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์„ค๊ณ„ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ๋‚จ๊ฒจ ๋‘๋ฉฐ, ์‹ค์ œ ์กฐํšŒ๋Š” ์œ„์˜ Azure ๋น„์šฉ API ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

1. ์ผ์ผ/์›”์ผ ๋น„์šฉ ์š”์•ฝ ์กฐํšŒ โ€” ๐Ÿšง ๊ณ„ํš/๋ฏธ๊ตฌํ˜„

ํŠน์ • ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ฐœ์ƒํ•œ ์ „์ฒด ๋น„์šฉ์˜ ํ•ฉ๊ณ„๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  • URL: GET /cost/summary
  • ์ฃผ์š” ํŒŒ๋ผ๋ฏธํ„ฐ:
    • date_from, date_to: ์กฐํšŒ ๊ธฐ๊ฐ„ ์„ค์ •
    • prj_isn (Integer): ํŠน์ • ํ”„๋กœ์ ํŠธ์˜ ๋น„์šฉ๋งŒ ์กฐํšŒ
  • ์‘๋‹ต ๋ฐ์ดํ„ฐ: ์ด ๊ธˆ์•ก, ํ†ตํ™”(Currency), ์ „์ผ ๋Œ€๋น„ ๋ณ€๋™๋ฅ  ๋“ฑ

2. ์ž์‚ฐ๋ณ„ ๋น„์šฉ ๋น„์ค‘ ์กฐํšŒ โ€” ๐Ÿšง ๊ณ„ํš/๋ฏธ๊ตฌํ˜„

์–ด๋–ค ์„œ๋ฒ„๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ€์žฅ ๋งŽ์€ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

  • URL: GET /cost/breakdown
  • ์‘๋‹ต ๋ฐ์ดํ„ฐ: ์ž์‚ฐ ํƒ€์ž…๋ณ„(VM, DB, Network ๋“ฑ) ๋น„์šฉ ๋ฆฌ์ŠคํŠธ

3. AI ๋น„์šฉ ์ตœ์ ํ™” ์ œ์•ˆ ์กฐํšŒ โ€” ๐Ÿšง ๊ณ„ํš/๋ฏธ๊ตฌํ˜„

AI๊ฐ€ ๋ถ„์„ํ•œ ์ž์› ์กฐ์ •(Rightsizing)์„ ํ†ตํ•œ ๋น„์šฉ ์ ˆ๊ฐ ์˜ˆ์ƒ์น˜๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

  • URL: GET /cost/recommendations
  • ์‘๋‹ต ๋ฐ์ดํ„ฐ: ๋Œ€์ƒ ์ž์‚ฐ, ํ˜„์žฌ ์‚ฌ์–‘, ์ถ”์ฒœ ์‚ฌ์–‘, ์˜ˆ์ƒ ์ ˆ๊ฐ์•ก

๐Ÿ› ๏ธ ํ™œ์šฉ ์˜ˆ์‹œ (cURL) โ€” Azure ๋น„์šฉ API (๊ตฌํ˜„๋จ)

# ํ‚ค๋ฅผ URL/๋ณธ๋ฌธ์— ๋„ฃ์ง€ ์•Š๊ณ  ํ™˜๊ฒฝ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉ
export GIIP_CSN=47
export GIIP_API_KEY=***your_key***

# ์„œ๋ฒ„ ๋ชฉ๋ก + ๊ธฐ๋ณธ ์„œ๋ฒ„
curl -s "https://giipfaw.azurewebsites.net/api/azureCostServers?csn=${GIIP_CSN}" \
     -H "x-api-key: ${GIIP_API_KEY}"

# ๋‹จ์ผ ์„œ๋ฒ„ ๋น„์šฉ ์ƒ์„ธ
curl -s "https://giipfaw.azurewebsites.net/api/azureCost?csn=${GIIP_CSN}&lssn=71197" \
     -H "x-api-key: ${GIIP_API_KEY}"

๐Ÿ›ก๏ธ Sk3(๊ณ ์„ฑ๋Šฅ ๋กœ๊น…) ํ™œ์šฉ

๋น„์šฉ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์˜ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ๊ณผ ์ƒ์„ธํ•œ ๊ฐ์‚ฌ ๋กœ๊ทธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ giipApiSk3 ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ์—”๋“œํฌ์ธํŠธ: https://giipfaw.azurewebsites.net/api/giipApiSk3
  • ํŠนํ•ฉ ์žฅ์ : ์ž๋™ ์—๋Ÿฌ ๋กœ๊น…, ํ˜ธ์ถœ์ž ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(IP ๋“ฑ) ์ถ”์ , jsondata ์น˜ํ™˜ ๊ธฐ๋Šฅ์„ ํ†ตํ•œ ๋ณต์žกํ•œ ์กฐํšŒ ์กฐ๊ฑด ์ตœ์ ํ™”.
  • ํ™œ์šฉ ํŒ: ๋Œ€๊ทœ๋ชจ ์ธํ”„๋ผ ๋น„์šฉ ๋ถ„์„ ์‹œ text ๋ช…๋ น๊ณผ jsondata๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์ฟผ๋ฆฌ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋ฉฐ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
401 ์ธ์ฆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ๋นˆ ์‘๋‹ต์ด ๋ฐ˜ํ™˜๋จx-api-key ํ—ค๋”๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ํ‚ค๊ฐ€ ์ž…๋ ฅ๋จ์š”์ฒญ ํ—ค๋”์˜ x-api-key ๊ฐ’์— ์œ ํšจํ•œ ํ‚ค๊ฐ€ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค(Azure ๋น„์šฉ API๋Š” x-giip-ak๊ฐ€ ์•„๋‹ˆ๋ผ x-api-key๋ฅผ ์‚ฌ์šฉ)
์‘๋‹ต์˜ RstVal์ด 200์ด ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•จ์ž˜๋ชป๋œ ํŒŒ๋ผ๋ฏธํ„ฐ ๋˜๋Š” ์กฐํšŒ ์กฐ๊ฑดAPI ๊ฒฐ๊ณผ ์ฝ”๋“œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์›์ธ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ต์ •ํ•ฉ๋‹ˆ๋‹ค
Sk3์˜ text ๋ช…๋ น ํ˜ธ์ถœ์ด ์‹คํŒจํ•จtext ๋ช…๋ น ์‹œ๊ทธ๋‹ˆ์ฒ˜๊ฐ€ ์ž˜๋ชป๋จtext ๋ช…๋ น๊ณผ jsondata์˜ ์กฐํ•ฉ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค
jsondata ์ „๋‹ฌ ์‹œ JSON ํŒŒ์‹ฑ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จjsondata ๋‚ด ๋”ฐ์˜ดํ‘œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ด์Šค์ผ€์ดํ”„๋˜์ง€ ์•Š์Œjsondata ๊ฐ’์˜ ๋”ฐ์˜ดํ‘œ๋ฅผ ์ •ํ™•ํžˆ ์ด์Šค์ผ€์ดํ”„ํ•˜์—ฌ ๋‹ค์‹œ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

๋ฒ„์ „: 1.1 ์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2026-04-10 ์†Œ์Šค ํŒŒ์ผ: giipv3/public/help/api-cost.ko.md


๊ด€๋ จ ๋ฌธ์„œ: