ADX๊ฐ ๋น ๋ฅธ 3๊ฐ์ง ์ด์
Azure Data Explorer(ADX)๋ ๋๊ท๋ชจ ๋ก๊ทธ·์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์์ด ๋ง์ ๋ถ์ํ ์ ์๋ ์๋น์ค์ด๋ค.
์์ต ~ ์์กฐ ํ ๋ฐ์ดํฐ๋ฅผ ์ด๋ ๊ฒ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ ์ด์ ๋ ํฌ๊ฒ 3๊ฐ์ง์ด๋ค.
| ํต์ฌ | ์ค๋ช |
| ๋ถ์ฐ ์ฒ๋ฆฌ | ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ปดํจํฐ(๋ ธ๋)์ ๋๋ ์ ์ฅํ๊ณ , ๋์์ ์ฒ๋ฆฌ |
| ์ด(Column) ๊ธฐ๋ฐ ์ ์ฅ | ํ์ํ ์ปฌ๋ผ๋ง ์ฝ์ด์ I/O ์ต์ํ |
| ์๋ ์์ถ | ๊ฐ์ ํ์ ์ ๋ฐ์ดํฐ๊ฐ ๋ชจ์ฌ์์ด ์์ถ๋ฅ ์ด ๋๊ณ , ์ฝ๋ ์์ด ์ค์ด๋ฆ |
๐ก ๋น์
MSSQL์ ํผ์์ ์ํ์ง 100์ฅ์ ์ฑ์ ํ๋ ์ ์๋์ด๊ณ , ADX๋ ์ ์๋ 4๋ช ์ด 25์ฅ์ฉ ๋๋ ์ ๋์์ ์ฑ์ ํ๋ ๊ตฌ์กฐ์ด๋ค!

ADX ํด๋ฌ์คํฐ ๊ตฌ์กฐ
ADX์ ๋ด๋ถ๋ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋์ด์๋ค.
๊ฐ์ฅ ๋ฐ๊นฅ์ด ํด๋ฌ์คํฐ, ๊ทธ ์์ ๋
ธ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ
์ด๋ธ, ๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ฆฌ์ ์ ์ฅ ๋จ์์ธ Extent๊ฐ ์๋ค.

| ๊ฐ๋ | ๋น์ | ์ค๋ช |
| ํด๋ฌ์คํฐ (Cluster) | ๐ข ํ๊ต ๊ฑด๋ฌผ ์ ์ฒด | ADX ์๋น์ค์ ์ต์์ ๋จ์. ์ฌ๋ฌ ๋ ธ๋์ ๋ฌถ์ |
| ๋ ธ๋ (Node) | ๐ซ ๊ต์ค ํ๋ | ์ค์ ์ฐ์ฐ์ ์ํํ๋ ์ปดํจํฐ 1๋ |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค | ๐ ๊ณผ๋ชฉ | ํด๋ฌ์คํฐ ์์์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋๋๋ ๋จ์ |
| ํ ์ด๋ธ | ๐ ๊ต๊ณผ์ | ์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๋จ์ |
| Extent (์ค๋) | ๐ ๊ต๊ณผ์์ ์ฑํฐ | ํ ์ด๋ธ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์กฐ๊ฐ. ๊ฐ ๋ ธ๋์ ๋ถ์ฐ ์ ์ฅ |
Extent - ADX์ ํต์ฌ ์ ์ฅ ๋จ์
Extent๋ ADX์์ ๋ฐ์ดํฐ๊ฐ ์ค์ ๋ก ์ ์ฅ๋๋ ๋ฌผ๋ฆฌ์ ์กฐ๊ฐ์ด๋ค.
ํ๋์ ํ
์ด๋ธ์ ์์ญ~์๋ง ๊ฐ์ Extent๋ก ๋๋์ด ์ฌ๋ฌ ๋
ธ๋์ ๋ถ์ฐ ์ ์ฅ๋๋ค.
๐ก ๋น์
๋์๊ด์ ์ฑ ์ด 1๋ง ๊ถ์ด ์์ ๋, ํ ์๊ฐ์ 1๋ง ๊ถ์ ๋ค ๊ฝ์ผ๋ฉด ์ฐพ๊ธฐ ํ๋ค๋ค.
๋์ 100๊ถ์ฉ ๋ฌถ์ด์ 100๊ฐ ์๊ฐ์ ๋ถ์ฐํด๋์ผ๋ฉด ์ฌ๋ฌ ์ฌ์๊ฐ ๋์์ ์ฐพ์ ์ ์๋ค!
Extent ๋ถ๋ฐฐ ๊ตฌ์กฐ

KQL ์ฟผ๋ฆฌ ์คํ ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ

์ด(Column) ๊ธฐ๋ฐ ์ ์ฅ
MSSQL๊ณผ ADX๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ด ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅด๋ค.
์ด ์ฐจ์ด๊ฐ ์ง๊ณ ์ฟผ๋ฆฌ ์๋์ ์ง์ ์ ์ธ ์ํฅ์ ์ค๋ค.

๐ก ๋น์
ํ ๊ธฐ๋ฐ์ ํ์ ์ฑ์ ํ๋ฅผ ํ์๋ณ๋ก ์ ๋ฆฌํ ๊ฒ์ด๊ณ , ์ด ๊ธฐ๋ฐ์ ๊ณผ๋ชฉ๋ณ๋ก ์ ๋ฆฌํ ๊ฒ์ด๋ค.
"์ํ ์ ์ฒด ํ๊ท "์ ๊ตฌํ๋ ค๋ฉด ๊ณผ๋ชฉ๋ณ ์ ๋ฆฌ(์ด ๊ธฐ๋ฐ)์ด ํจ์ฌ ๋น ๋ฅด๋ค!
| ๊ตฌ๋ถ | ํ ๊ธฐ๋ฐ (MSSQL) | ์ด ๊ธฐ๋ฐ (ADX) |
| ํน์ ์ปฌ๋ผ ์ง๊ณ | ๋ชจ๋ ์ปฌ๋ผ์ ์ฝ์ด์ผ ํจ (๋๋ฆผ) | ํด๋น ์ปฌ๋ผ๋ง ์ฝ์ (๋น ๋ฆ) |
| ํ ํ ์ ์ฒด ์กฐํ | ํ ๋ฒ์ ์ฝ์ (๋น ๋ฆ) | ์ฌ๋ฌ ์ปฌ๋ผ์ ํฉ์ณ์ผ ํจ |
| UPDATE / DELETE | ์์ ๋ก์ | ๊ฑฐ์ ๋ถ๊ฐ |
| ์์ถ ํจ์จ | ๋ณดํต | ๊ฐ์ ํ์ ์ด ๋ชจ์ฌ์์ด ์์ถ๋ฅ ๋์ |
ํซ ์บ์ vs ์ฝ๋ ์คํ ๋ฆฌ์ง
ADX๋ ๋ฐ์ดํฐ๋ฅผ ๋ ๊ณ์ธต์ผ๋ก ๋๋ ์ ์ ์ฅํ๋ค.
์์ฃผ ์กฐํํ๋ ์ต๊ทผ ๋ฐ์ดํฐ๋ ๋น ๋ฅธ ๊ณณ์, ์ค๋๋ ๋ฐ์ดํฐ๋ ์ ๋ ดํ ๊ณณ์ ๋ณด๊ดํ๋ ๊ตฌ์กฐ์ด๋ค.

๐ก ๋น์
ํซ ์บ์๋ ์ฑ ์ ์์ ์ฌ๋ ค๋ ์๋ฅ - ๋ฐ๋ก ๊บผ๋ด ๋ณผ ์ ์๋ค.
์ฝ๋ ์คํ ๋ฆฌ์ง๋ ์ฐฝ๊ณ ์ ๋ณด๊ดํ ์๋ฅ - ์ฐพ์ผ๋ฌ ๊ฐ์ผ ํ์ง๋ง ๊ณต๊ฐ์ ํจ์ฌ ๋๊ณ ์ ๋ ดํ๋ค!
์ ์ฑ ์ค์ ๋ฐฉ๋ฒ
// ํซ ์บ์ ๊ธฐ๊ฐ ์ค์ (์ต๊ทผ 30์ผ๋ง ํซ ์บ์์ ๋ณด๊ด)
.alter table ServerMetrics policy caching hot = 30d
// ๋ณด์กด ๊ธฐ๊ฐ ์ค์ (365์ผ ์ดํ ๋ฐ์ดํฐ๋ ์๋ ์ญ์ )
.alter table ServerMetrics policy retention softdelete = 365d
| ๊ตฌ๋ถ | ํซ ์บ์ | ์ฝ๋ ์คํ ๋ฆฌ์ง |
| ์ ์ฅ ์์น | ๋ ธ๋์ SSD / ๋ฉ๋ชจ๋ฆฌ | Azure Blob Storage |
| ์กฐํ ์๋ | ๐ฅ ์ด๊ณ ์ | โ๏ธ ๋๋ฆผ (๊ทธ๋๋ ์กฐํ ๊ฐ๋ฅ) |
| ๋น์ฉ | ๋น์ (๋ ธ๋ ์์ ์ฌ์ฉ) | ์ ๋ ด (Blob ์๊ธ๋ง) |
| ์ฉ๋ | ์ต๊ทผ ๋ฐ์ดํฐ (์์ฃผ ์กฐํ) | ๊ณผ๊ฑฐ ๋ฐ์ดํฐ (๊ฐ๋ ์กฐํ) |
Ingestion - ๋ฐ์ดํฐ๊ฐ ADX์ ๋ค์ด๊ฐ๋ ๋ฐฉ๋ฒ
๐ก ๋น์
๊ณต์ฅ(ADX)์ ์์ฌ๋ฃ(๋ฐ์ดํฐ)๋ฅผ ๋ฃ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ํ ํธ๋ญ์ผ๋ก ํ๊บผ๋ฒ์ ๋ฐฐ๋ฌ(๋ฐฐ์น)ํ ์๋ ์๊ณ , ์ปจ๋ฒ ์ด์ด ๋ฒจํธ๋ก ์ค์๊ฐ ํฌ์ (์คํธ๋ฆฌ๋ฐ)ํ ์๋ ์๋ค.
| ๋ฐฉ์ | ๋น์ | ํน์ง | ์ฉ๋ |
| ๋ฐฐ์น Ingedtion | ๐ ๋ํ ํธ๋ญ ๋ฐฐ๋ฌ | ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ํ๊บผ๋ฒ์ ์ ์ฌ. ์ฝ๊ฐ์ ์ง์ฐ (์ ๋ถ) |
๋๋ถ๋ถ์ ๋ก๊ทธ ๋ฐ์ดํฐ |
| ์คํธ๋ฆฌ๋ฐ Ingestion | ๐ญ ์ปจ๋ฒ ์ด์ด ๋ฒจํธ | ๋ฐ์ ์ฆ์ ์ ์ฌ. ๊ฑฐ์ ์ค์๊ฐ |
์ค์๊ฐ ๋ชจ๋ํฐ๋ง / ์๋ฆผ |

โ ์ฐธ๊ณ
๋ฐฐ์น Ingestion์ด ๊ธฐ๋ณธ์ด๊ณ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์ ์ถฉ๋ถํ๋ค.
์คํธ๋ฆฌ๋ฐ์ "1์ด๋ผ๋ ๋นจ๋ฆฌ ๋ด์ผ ํ๋" ์ค์๊ฐ ๋์๋ณด๋ ๊ฐ์ ๊ณณ์ ์ฌ์ฉํ๋ค.
Extent์ ์์ ์ฃผ๊ธฐ
Extent๋ ๋จ์ํ ๋ง๋ค์ด์ง๊ณ ๋๋๋๊ฒ ์๋๋ค.
์์ฑ → ๋ณํฉ → ์ด๋ → ์ญ์ ๊น์ง ์์ ์ฃผ๊ธฐ๊ฐ ์๋ค.
๐ก ๋น์
Extent๋ ํ๋ฐฐ ์์์ด๋ค.
์ฒ์์ ์์ ์์๋ก ๋ค์ด์ค๋๋ฐ, ADX๊ฐ ์๋์ผ๋ก ์์ ์์๋ค์ ํฐ ์์๋ก ํฉ์น๊ณ , ์ค๋๋ ์์๋ ์ฐฝ๊ณ ๋ก ๋ณด๋ด๊ณ , ๊ธฐํ ์ง๋ ๊ฑด ํ๊ธฐํ๋ค.

์ ๋ณํฉ(Merge)๊ฐ ์ค์ํ๊ฐ?

๐ก ๋น์
ํธ์์ ์์ ๋ฌผ๊ฑด ์ฐพ์ ๋, ์์ ์์ 10๊ฐ๋ฅผ ๋ค์ง๋ ๊ฒ๋ณด๋ค ํฐ ์์ 3๊ฐ์์ ์ฐพ๋ ๊ฒ ๋น ๋ฅด๋ค.
๊ทธ๋์ ADX๊ฐ ์๋์ผ๋ก ์ ๋ฆฌํด์ฃผ๋ ๊ฑฐ๋ค!
์ฟผ๋ฆฌ ์คํ ๊ณผ์ ๊ณผ Extent Pruning
KQL ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ ธ์ ๋ ADX ๋ด๋ถ์์ ๋ฒ์ด์ง๋ ์ผ์ ์์ธํ๊ฒ ๋ณด์.

Extent Pruning - ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ํต์ฌ!
๊ฐ Extent์๋ "์ด Extent์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์๊ฐ ๋ฒ์" ๊ฐ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋์ด ์๋ค.
ADX๋ ์ด ์ ๋ณด๋ฅผ ๋ณด๊ณ ์ฟผ๋ฆฌ์ ๊ด๋ จ ์๋ Extent๋ฅผ ์์ ์ฝ์ง ์๋๋ค.

๐ก ๋น์
๋์๊ด์์ "์ด๋ฒ ์ฃผ์ ๋ค์ด์จ ์ฑ "์ ์ฐพ์ ๋, ์ ์ฒด ์๊ฐ๋ฅผ ๋ค ๋ค์ง๋ ๊ฒ ์๋๋ผ "์ ๊ฐ ์ฝ๋"๋ง ๋ณด๋ ๊ฒ๊ณผ ๊ฐ๋ค.
๐กKQL์์ where Time > ์กฐ๊ฑด์ ๊ฐ์ฅ ๋จผ์ ๊ฑฐ๋ ๊ฒ์ด ์ฑ๋ฅ ์ต์ ํ์ 1์์!
-- ์ข์ ํจํด - Time ํํฐ๊ฐ ์์ ์์ (Pruning ๊ฐ๋ฅ)
ServerMetrics
| where Time > ago(1d)
| where DeviceId == "SRV-01"
| summarize avg(CPU) by bin(Time, 1h)
-- ๋์ ํจํด - Time ํํฐ ์์ด ์ ์ฒด ์ค์บ
ServerMetrics
| where DeviceId == "SRV-01"
| summarize avg(CPU) by bin(Time, 1h)
ํํฐ์ ๋ ์ ์ฑ (Data Partitioning)
๊ธฐ๋ณธ์ ์ผ๋ก ADX๋ Ingestion ์๊ฐ์์ผ๋ก Extent๋ฅผ ์์ฑํ๋ค.
ํ์ง๋ง ํน์ ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก ์์ฃผ ์กฐํํ๋ค๋ฉด, ํด๋น ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก Extent๋ฅผ ๋๋ ์ ์๋ค.

| ์ข ๋ฅ | ์ฉ๋ | ์ค๋ช |
| Hash | ๊ณ ์ ID ๊ธฐ์ค ์กฐํ๊ฐ ๋ง์ ๋ | DeviceId, UserId ๋ฑ์ผ๋ก ๊ท ๋ฑ ๋ถ๋ฐฐ |
| UniformRange | ์๊ฐ/์ซ์ ๋ฒ์ ์กฐํ๊ฐ ๋ง์ ๋ | ๋ ์ง ๋ฒ์, ์ซ์ ๊ตฌ๊ฐ ๊ธฐ์ค ๋ถ๋ฐฐ |
โ ๏ธ ์ฃผ์
ํํฐ์ ๋์ ์๋ฌด ๋๋ ์ฐ๋ฉด ์๋๋ค!
๋ฐ์ดํฐ๊ฐ ์์ญ์ต ํ ์ด์์ด๊ณ , ํน์ ์ปฌ๋ผ ํํฐ ์ฟผ๋ฆฌ๊ฐ ๋งค์ฐ ์์ฃผ ์ฌ์ฉ๋ ๋๋ง ํจ๊ณผ์ ์ด๋ค.
๋ฐ์ดํฐ๊ฐ ํฌ์ง ์๊ฑฐ๋ ๊ธฐ๋ณธ Pruning์ผ๋ก ์ถฉ๋ถํ ๋น ๋ฅด๋ค๋ฉด ์คํ๋ ค ๋ถํ์ํ ์ค๋ฒํค๋๋ง ์๊ธด๋ค.
๐ก ๋น์
ํํฐ์ ๋์ ๋์๊ด์ ์๊ฐ๋ฅผ ์ฅ๋ฅด๋ณ๋ก ๋ถ๋ฅํ๋ ๊ฒ์ด๋ค.
์ฅ๋ฅด๋ณ ๊ฒ์์ด ์ฆ์ผ๋ฉด ํจ๊ณผ์ ์ด์ง๋ง, ์ด๋ฏธ ์๊ฐ๊ฐ ์์ผ๋ฉด ๋ถ๋ฅํ๋ ๋น์ฉ์ด ๋ ํด ์๋ ์๋ค!
Materialized View (๊ตฌ์ฒดํ๋ ๋ทฐ)
์์ฃผ ์ฐ๋ ์ง๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ๊ณ์ฐํด์ ์ ์ฅํด๋๋ ๊ธฐ๋ฅ์ด๋ค.
๐ก ๋น์
๋งค์ผ ์์นจ ์ถ๊ทผํด์ "์ด์ ์๋ฒ๋ณ ํ๊ท CPU"๋ฅผ ํ์ธํ๋ค๊ณ ์น์.
๋งค๋ฒ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ์ฒ์๋ถํฐ ๊ณ์ฐํ๋ ๊ฒ ์ผ๋ฐ ์ฟผ๋ฆฌ๋ผ๋ฉด, ๋ฏธ๋ฆฌ ๊ณ์ฐํด์ ์์ฝ๋ณธ์ ๋ง๋ค์ด๋๋ ๊ฒ Materialized View์ด๋ค.
// Materialized View ์์ฑ
.create materialized-view ServerMetricsHourly on table ServerMetrics
{
ServerMetrics
| summarize avg(CPU), max(Memory) by DeviceId, bin(Time, 1h)
}
| ๊ตฌ๋ถ | ์ผ๋ฐ ์ฟผ๋ฆฌ | MATERIALIZED VIEW |
| ์คํ ๋ฐฉ์ | ๋งค๋ฒ ์๋ณธ๋ถํฐ ์ง๊ณ | ๋ฏธ๋ฆฌ ์ง๊ณ๋ ๊ฒฐ๊ณผ ์กฐํ |
| ์๋ | ๋ฐ์ดํฐ ๋ง์ผ๋ฉด ๋๋ฆผ | ํญ์ ๋น ๋ฆ |
| ๋ฐ์ดํฐ ์ต์ ์ฑ | ํญ์ ์ต์ | ๊ฑฐ์ ์ค์๊ฐ (์ฝ๊ฐ์ ์ง์ฐ ๊ฐ๋ฅ) |
| ์ถ๊ฐ ๋น์ฉ | ์์ | ์ ์ฅ ๊ณต๊ฐ + ์ฐ์ฐ ๋น์ฉ |
์ฅ์ ๋์ - ๋ณต์ (Replication)
๋
ธ๋ ํ๋๊ฐ ์ฃฝ์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ๊น?
์๋๋ค! ADX๋ Extent๋ฅผ ์ฌ๋ฌ ๋
ธ๋์ ๋ณต์ ํด์ ๋ณด๊ดํ๋ค.
Extent ๋ณต์ ๊ตฌ์กฐ

๋ ธ๋ 2๊ฐ ์ฅ์ → ๋ ธ๋ 4์ Ext 2 ๋ณต์ ๋ณธ์ด ์์ผ๋๊น → ์ฌ์ฉ์๋ ์ฅ์ ๋ฅผ ๋๋ผ์ง ๋ชปํ๋ค!
| ์ค์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
| Extent ๋ณต์ ์ | 2 | ์๋ณธ 1 + ๋ณต์ ๋ณธ 1 = ํญ์ 2 ๊ณณ์ ์ ์ฅ |
| ๋ ธ๋ ์ฅ์ ์ | ์๋ failover | ๋ณต์ ๋ณธ์ด ์๋ ๋ ธ๋๊ฐ ๋์ ์ฒ๋ฆฌ |
| ๋ ธ๋ ๋ณต๊ตฌ ํ | ์๋ ์ฌ๊ท ํ | ๋ฐ์ดํฐ๊ฐ ๋ค์ ๊ณ ๋ฅด๊ฒ ๋ถ๋ฐฐ๋จ |
๐ก ๋น์
์ค์ํ ์๋ฅ๋ฅผ ์๋ณธ + ๋ณต์ฌ๋ณธ ๋ ๊ณณ์ ๋ณด๊ดํ๋ ๊ฒ์ด๋ค.
ํ ์ฌ๋ฌด์ค์ ๋ถ์ด ๋๋ ๋ค๋ฅธ ์ฌ๋ฌด์ค์ ๋ณต์ฌ๋ณธ์ด ์์ผ๋๊น ์ ๋ฌด๊ฐ ๋ฉ์ถ์ง ์๋๋ค!
MSSQL vs ADX ์ต์ข ๋น๊ต
| ๊ด์ | MSSQL | ADX |
| ์ํคํ ์ฒ | ๋จ์ผ ์๋ฒ (Scale-Up) | ๋ถ์ฐ ํด๋ฌ์คํฐ (Scale-Out) |
| ์ ์ฅ ๋ฐฉ์ | ํ(Row) ๊ธฐ๋ฐ | ์ด(Column) ๊ธฐ๋ฐ |
| ๋ฐ์ดํฐ ๋จ์ | ํ์ด์ง (8KB) | Extent (์๋ฐฑMB ~ ์GB) |
| ํ์ฅ ๋ฒ๋ฒ | ์๋ฒ ์ฌ์ ์ ๊ทธ๋ ์ด๋ | ๋ ธ๋ ์ถ๊ฐ |
| ์ฟผ๋ฆฌ ์ธ์ด | SQL | KQL |
| ๋ฐ์ดํฐ ์์ | โ CRUD ๋ชจ๋ ๊ฐ๋ฅ | โ ๊ฑฐ์ ์ถ๊ฐ(Append)๋ง |
| ์ ํํ ์ฉ๋ | ์๋น์ค ์ด์ DB, ํธ๋์ญ์ | ๋ก๊ทธ ๋ถ์, ์๊ณ์ด ๋ฐ์ดํฐ |
| ๋ฐ์ดํฐ ๊ท๋ชจ | ์์ฒ๋ง ~ ์์ต ํ | ์์ญ์ต ~ ์์กฐ ํ |
References
'๐ฆ Cloud > ๐๏ธ Azure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Azure] ์๋ ์ฌ๋ฌด์ค์์ ์์ํ๋ ํด๋ผ์ฐ๋.. Azure VM (0) | 2026.05.21 |
|---|