giip
SES Proposal
1 min read

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API ๋ ˆํผ๋Ÿฐ์Šค

GIIP ํ”Œ๋žซํผ์— ๋“ฑ๋ก๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์‚ฐ์˜ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ API ์ƒ์„ธ ๋ช…์„ธ์ž…๋‹ˆ๋‹ค.

๐Ÿ”Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ํŽ˜์ด์ง€๋กœ ์ด๋™ โ†’

๐Ÿ“‹ ๊ฐœ์š”

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API๋ฅผ ํ†ตํ•ด GIIP๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” MariaDB, Azure SQL, MySQL ๋“ฑ์˜ ์ธ์Šคํ„ด์Šค ์ •๋ณด๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์š”์ฒญ์—๋Š” [API ๋ ˆํผ๋Ÿฐ์Šค ๊ฐœ์š”]์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ AK/SK๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” ์ฃผ์š” ์—”๋“œํฌ์ธํŠธ

1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชฉ๋ก ์กฐํšŒ

๋“ฑ๋ก๋œ ๋ชจ๋“  DB ์ธ์Šคํ„ด์Šค์˜ ๊ธฐ๋ณธ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  • URL: GET /database/list
  • ์ฃผ์š” ํŒŒ๋ผ๋ฏธํ„ฐ:
    • csn (Integer): ๊ณ ๊ฐ ๋ฒˆํ˜ธ ํ•„ํ„ฐ๋ง
    • prj_isn (Integer): ํŠน์ • ํ”„๋กœ์ ํŠธ ์†Œ์† DB๋งŒ ์กฐํšŒ
  • ์‘๋‹ต ์˜ˆ์‹œ:
    {
      "RstVal": 1,
      "Data": [
        { "isn": 101, "db_name": "Prod_DB", "engine": "AzureSQL", "status": "Running" }
      ]
    }

2. DB ์„ฑ๋Šฅ ์ง€ํ‘œ ์กฐํšŒ

ํŠน์ • DB์˜ ์‹ค์‹œ๊ฐ„ ๋˜๋Š” ๊ณผ๊ฑฐ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

  • URL: GET /database/metrics
  • ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ: db_isn (DB ๊ณ ์œ  ๋ฒˆํ˜ธ)
  • ์‘๋‹ต ๋ฐ์ดํ„ฐ: CPU ์‚ฌ์šฉ๋ฅ , ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ(IOPS), ์—ฌ์œ  ๊ณต๊ฐ„ ๋“ฑ

3. ํ˜„์žฌ ์—ฐ๊ฒฐ ์„ธ์…˜ ์กฐํšŒ

DB์— ์ ‘์† ์ค‘์ธ ์‹ค์‹œ๊ฐ„ ์„ธ์…˜ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  • URL: GET /database/sessions
  • ์šฉ๋„: ํŠน์ • IP์—์„œ์˜ ๊ณผ๋„ํ•œ ์ปค๋„ฅ์…˜ ๋ฐœ์ƒ ์—ฌ๋ถ€ ํ™•์ธ

๐Ÿ› ๏ธ ํ™œ์šฉ ์˜ˆ์‹œ (Python)

import requests

headers = {"x-giip-ak": "YOUR_AK"}
response = requests.get("https://api.giip.io/v3/database/list", headers=headers)
db_list = response.json()["Data"]

for db in db_list:
    print(f"DB: {db['db_name']} | Status: {db['status']}")

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์‚ฐ ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ์ƒ์„ธํ•œ ํ˜ธ์ถœ ์ด๋ ฅ์„ ๋‚จ๊ธฐ๋ ค๋ฉด giipApiSk3 ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

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

๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
401 ์ธ์ฆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜ํ™˜๋จx-giip-ak ํ—ค๋”๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ AK/SK ์‚ฌ์šฉ๋ฐœ๊ธ‰๋ฐ›์€ ์œ ํšจํ•œ AK/SK๋ฅผ ์š”์ฒญ ํ—ค๋”์— ํฌํ•จํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
/database/metrics ์‘๋‹ต์ด ๋น„์–ด ์žˆ์Œํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ db_isn ๋ˆ„๋ฝDB ๊ณ ์œ  ๋ฒˆํ˜ธ(db_isn)๋ฅผ ๋ฐ˜๋“œ์‹œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
RstVal์ด 1์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜๋จcsn/prj_isn ํ˜•์‹ ์˜ค๋ฅ˜ ๋˜๋Š” ๊ถŒํ•œ ๋ถ€์กฑํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ •์ˆ˜ํ˜•์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  API ๊ฒฐ๊ณผ ์ฝ”๋“œ ๊ฐ€์ด๋“œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
Sk3 ํ˜ธ์ถœ ์‹œ jsondata ํŒŒ์‹ฑ ์‹คํŒจJSON ์ด์Šค์ผ€์ดํ”„/์ธ์ฝ”๋”ฉ ์˜ค๋ฅ˜jsondata๋ฅผ ์œ ํšจํ•œ JSON์œผ๋กœ ์ด์Šค์ผ€์ดํ”„ํ•˜์—ฌ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

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


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