Azure App Service ๊ตฌํ˜„

๋ชจ๋“  ํ”Œ๋žซํผ, ๋””๋ฐ”์ด์Šค์šฉ ์›น ์‚ฌ์ดํŠธ, ๋ชจ๋ฐ”์ผ ๋ฐฑ์—”๋“œ, ์›น API ๋“ฑ ๋ชจ๋‘ ์“ธ ์ˆ˜ ์žˆ์Œ. Windows, Linux ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ ์‰ฝ๊ฒŒ ์‹คํ–‰, ํ™•์žฅ ๊ฐ€๋Šฅํ•จ. App Service๋กœ ์—ฌ๋Ÿฌ ์ œํ’ˆ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ ๊ฐ€๋Šฅ.

App Service ๋น ๋ฅธ ์‹œ์ž‘์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น, ๋ชจ๋ฐ”์ผ ๋ฐ API ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์ œํ’ˆ์„ ๋ณด์—ฌ ์ฃผ๋Š” ์ผ๋Ÿฌ์ŠคํŠธ๋ ˆ์ด์…˜

App Service์˜ ์ด์ 

  • ์—ฌ๋Ÿฌ ์–ธ์–ด & ํ”„๋ ˆ์ž„์›Œํฌ
  • DevOps ์ตœ์ ํ™”
  • ๊ณ ๊ฐ€์šฉ์„ฑ ๊ฐ–์ถ˜ ๊ธ€๋กœ๋ฒŒ ๊ทœ๋ชจ
  • SaaS ํ”Œ๋žซํผ, ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ
  • ๋ณด์•ˆ, ๊ทœ์ • ์ค€์ˆ˜
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…œํ”Œ๋ฆฟ ์„ ํƒ ๊ฐ€๋Šฅ (Azure Marketplace)
  • Visual Studio ํ†ตํ•ฉ
  • API, ๋ชจ๋ฐ”์ผ ๊ธฐ๋Šฅ
  • ์„œ๋ฒ„๋ฆฌ์Šค ์ฝ”๋“œ

App Service๋กœ ์•ฑ ๋งŒ๋“ค๊ธฐ

Azure App Service์˜ Web Apps, Mobile Apps, API Apps ์‚ฌ์šฉ ๊ฐ€๋Šฅ. Azure Portal์—์„œ ์•ฑ ์ƒ์„ฑ ๊ฐ€๋Šฅ.

๊ตฌ์„ฑ ์„ค์ •์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

  • ์ด๋ฆ„
    • ๊ณ ์œ ํ•ด์•ผ ํ•จ
    • ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ์“ฐ๋ ค๋ฉด ์ด ์ด๋ฆ„๊ณผ ๋งคํ•‘ ๊ฐ€๋Šฅ
  • ๊ฒŒ์‹œ (ํ˜ธ์ŠคํŠธ)
    • ์ฝ”๋“œ || Docker ์ปจํ…Œ์ด๋„ˆ๋กœ ํ˜ธ์ŠคํŠธ ๊ฐ€๋Šฅ
  • ๋Ÿฐํƒ€์ž„ ์Šคํƒ
    • Azure App Service << ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์œผ๋กœ ์–ธ์–ด, SDK ๋ฒ„์ „ ํฌํ•จํ•ด ์•ฑ ์‹คํ–‰ํ•จ
    • Linux ์•ฑ || ์ปจํ…Œ์ด๋„ˆ ์•ฑ << ์„ ํƒ์  ์‹œ์ž‘ ๋ช…๋ น, ํŒŒ์ผ ์„ค์ • ๊ฐ€๋Šฅ
    • ์Šคํƒ << PHP, .NET Core, Node.js, Python ๋“ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • OS
    • Linux, Windows ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์ง€์—ญ
    • ๋ฌผ๋ฆฌ์ ์ธ ๊ทธ ์ง€์—ญ ์œ„์น˜ << App Service ์š”๊ธˆ์ œ์— ์˜ํ–ฅ ์คŒ
  • ๊ฐ€๊ฒฉ ์ฑ…์ • ๊ณ„ํš
    • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค, ๊ธฐ๋Šฅ, ์šฉ๋Ÿ‰ ์„ค์ • << ์•ฑ์„ Azure App Service ์š”๊ธˆ์ œ์™€ ์—ฐ๊ฒฐํ•ด์•ผ ํ•จ
    • ์„ ํƒํ•œ (๋ฌผ๋ฆฌ์ ) ์ง€์—ญ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ€๊ฒฉ ๊ณ„์ธต ์ค‘ ์„ ํƒ

๋งŒ๋“  ํ›„ ์„ค์ •

์•ฑ ์ƒ์„ฑ ํ›„ โ†’ Azure Potral์—์„œ ๋ฐฐํฌ ์˜ต์…˜, ๊ฒฝ๋กœ ๋งคํ•‘ ๋“ฑ์˜ ์„ค์ • ๊ฐ€๋Šฅ

Azure Portal์˜ App Service๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์˜ต์…˜์„ ๋ณด์—ฌ์ฃผ๋Š” ์Šคํฌ๋ฆฐ์ƒท.

์ผ๋ถ€ ์„ค์ •์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ์—์„œ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์„ค์ •์€ ์•ฑ์—์„œ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•จ. ์•„๋ž˜๋Š” ์˜ˆ์‹œ์ž„.

  • Always On
    • ํŠธ๋ž˜ํ”ฝ ์—†์–ด๋„ ์•ฑ ๋กœ๋“œ๋œ ์ƒํƒœ๋กœ ์œ ์ง€.
    • (WebJobs || CRON ์–ธ์–ด ์‹์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” WebJobs)์— ํ•„์š”
  • ์„ธ์…˜ ์„ ํ˜ธ๋„
    • ๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค ๋ฐฐํฌ์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ธ์…˜ ์ˆ˜๋ช… ๋™์•ˆ ๊ฐ™์€ ์ธ์Šคํ„ด์Šค๋กœ ๋ผ์šฐํŒ… ๋˜๋Š”์ง€ ํ™•์ธ ๊ฐ€๋Šฅ
  • HTTPS Only
    • ์„ค์ • ์‹œ ๋ชจ๋“  HTTP ํŠธ๋ž˜ํ”ฝ์ด HTTPS๋กœ ๋ฆฌ๋””๋ ‰์…˜ ๋จ

CI / CD

๊ฐœ๋ฐœ ๋จธ์‹  โ†’ (Azure DevOps Services, GitHub, BitBucket, FTP ๋“ฑ) CI / CD ์ œ๊ณต App Service๊ฐ€ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™” ํ•ด์คŒ. Azure DevOps ์‚ฌ์šฉ ์‹œ, ๊ณ ์œ  ๋นŒ๋“œ && ๋ฆด๋ฆฌ์ฆˆ ํ”„๋กœ์„ธ์Šค ์ •์˜ ๊ฐ€๋Šฅ. ์ปค๋ฐ‹ํ•  ๋•Œ ๋งˆ๋‹ค ์ปดํŒŒ์ผ, ํ…Œ์ŠคํŠธ, ๋ฆฌ๋ฆฌ์Šค ๋นŒ๋“œ, ๋ฐฐํฌํ•จ. ์‚ฌ๋žŒ ์—†์ด ์ž๋™์œผ๋กœ ๋‹ค ๋จ << ๊ฐœ๊ฟ€

Azure App Service ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ๋œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์ผ GitHub ์›๋ณธ์„ ๊ณต์œ ํ•˜๋Š” ๋‘ ๊ฐœ๋ฐœ์ž๋ฅผ ๋ณด์—ฌ ์ฃผ๋Š” ๊ทธ๋ฆผ

CI, ์ˆ˜๋™ ๋ฐฐํฌ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

๋ฐฐํฌ ์„ผํ„ฐ ์„ค์ • ์˜ต์…˜์˜ ์Šคํฌ๋ฆฐ์ƒท.

CD || ์ˆ˜๋™ ๋ฐฐํฌ ์„ ํƒ ๊ฐ€๋Šฅ. App Service์˜ ๋ฐฐํฌ ์„ผํ„ฐ์—์„œ ์„ค์ • ๊ฐ€๋Šฅ.

CI/CD << ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฏธ์น˜๋Š” ์˜ํ–ฅ ์ตœ์†Œํ™”. Azure์—์„œ๋„ ๋‹น์—ฐํžˆ ์ง€์›ํ•จ.

  • GitHub
    • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ Azure์— ์—ฐ๊ฒฐํ•˜๋ฉด ๋ชจ๋“  ๋ณ€๊ฒฝ ๋‚ด์šฉ ์ž๋™ ๋ฐฐํฌ๋จ
  • Bitbucket
    • GitHub์™€ ์œ ์‚ฌ
  • ๋กœ์ปฌ Git
    • App Service Web Apps << ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ถ”๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ˜„์ง€ URL ์ œ๊ณต
  • Azure Repos
    • ๋ฒ„์ „ ์ œ์–ด ๋„๊ตฌ ์„ธํŠธ์ž„
    • ํฌ๊ธฐ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ฒ„์ „ ์ œ์–ด ๊ฐ€๋Šฅ

์ˆ˜๋™ ๋ฐฐํฌ ์‚ฌ์šฉ ์‹œ Azure์— ์ˆ˜๋™์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅ.

  • ์›๊ฒฉ Git
    • App Service Web Apps ๊ธฐ๋Šฅ์œผ๋กœ ์›๊ฒฉ Git URL ์ œ๊ณตํ•จ
  • OneDrive
    • MS ํŒŒ์ผ ์ €์žฅ ๋“œ๋ผ์ด๋ธŒ ๋‹˜๋“ค์ด ์•„๋Š”๊ฑฐ
  • Dropbox: ์ƒ๋žต

๋ฐฐํฌ ์Šฌ๋กฏ ๋งŒ๋“ค๊ธฐ

Azure App Service์— ๋ฐฐํฌ ์‹œ, ๊ธฐ๋ณธ ํ”„๋กœ๋•์…˜ ์Šฌ๋กฏ ๋Œ€์‹  ๋ณ„๋„์˜ ๋ฐฐํฌ ์Šฌ๋กฏ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

๋ฐฐํฌ ์Šฌ๋กฏ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

  • ๋ฐฐํฌ ์Šฌ๋กฏ << ์ž์ฒด ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๊ฐ–์ถ˜ ๋ผ์ด๋ธŒ ์•ฑ
  • (ํ‘œ์ค€, ํ”„๋ฆฌ๋ฏธ์—„, ๊ฒฉ๋ฆฌ) ๊ฐ€๊ฒฉ ๊ณ„์ธต์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ์œ„ ๊ณ„์ธต๋“ค์€ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜์˜ ๋ฐฐํฌ ์Šฌ๋กฏ ์ œ๊ณตํ•จ.
  • ์•ฑ ์ฝ˜ํ…์ธ , ๊ตฌ์„ฑ์š”์†Œ << ํ”„๋กœ๋•์…˜ ํฌํ•จํ•œ ๋‘ ๋ฐฐํฌ ์Šฌ๋กฏ ๊ฐ„ ๊ตํ™˜ ๊ฐ€๋Šฅ

Azure Portal์—์„œ ๋ฐฐํฌ ์Šฌ๋กฏ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ์Šคํฌ๋ฆฐ์ƒท.

๊ณ ๋ ค ์‚ฌํ•ญ

  • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ณ ๋ ค
    • ํ”„๋กœ๋•์…˜ ์Šฌ๋กฏ์œผ๋กœ ๋ณ€๊ฒฝ๋‚ด์šฉ ํ‘ธ์‹œ ์ „์—, ์Šคํ…Œ์ด์ง• ๋ฐฐํฌ ์Šฌ๋กฏ์—์„œ ๋ณ€๊ฒฝ๋‚ด์šฉ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ฐ€๋Šฅ
  • ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„ ์ค„์ด๊ธฐ ๊ณ ๋ ค
    • ์Šฌ๋กฏ์œผ๋กœ ์•ฑ ๋ฐฐํฌ ํ›„์— ํ”„๋กœ๋•์…˜์œผ๋กœ ๊ตํ™˜ํ•จ
    • ๋”ฐ๋ผ์„œ ํ”„๋กœ๋•์…˜์— ์˜ฌ๋ผ์˜ค๊ธฐ ์ „์—๋Š” ์ค€๋น„๋œ ์ƒํƒœ์ž„
    • ์ค€๋น„๋œ ์ƒํƒœ ์˜ต์…˜ ์„ ํƒ << ์•ฑ ๋ฐฐํฌ ์‹œ ๊ฐ€๋™ ์ค‘์ง€ X
    • ํŠธ๋ž˜ํ”ฝ ๋ฆฌ๋””๋ ‰์…˜ ์ค‘๋‹จ X, ํ”„๋กœ๋•์…˜์œผ๋กœ ๊ตํ™˜ ์ค‘ ๋ˆ„๋ฝ๋˜๋Š” ์š”์ฒญ X
    • ์ „ํ™˜ ์ „ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ•  ํ•„์š” ์—†๋‹ค๋ฉด โ€œ์ž๋™ ์ „ํ™˜โ€ ๊ตฌ์„ฑํ•˜์—ฌ ์ „์ฒด ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™” ๊ฐ€๋Šฅ
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์ข‹์€ ์‚ฌ์ดํŠธ๋กœ ๋ณต์› ๊ณ ๋ ค
    • ์Šคํ…Œ์ด์ง•์—์„œ ํ”„๋กœ๋•์…˜์œผ๋กœ ์•ฑ์ด ์˜ฌ๋ผ๊ฐ„๋‹ค๊ณ  ํ–ˆ์ฃ ?
    • ๊ทธ๋Ÿผ ์›๋ž˜ ํ”„๋กœ๋•์…˜ ์ž๋ฆฌ์— ์žˆ๋˜ ์•ฑ์ด ์Šคํ…Œ์ด์ง•์œผ๋กœ ๋‚ด๋ ค๊ฐ
    • ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅผ ๊ฒฝ์šฐ์—๋Š” ๊ตํ™˜ ์ž‘์—… ์ฆ‰์‹œ ์‹คํ–‰ํ•จ
    • โ‡’ ์ด์ „์— ํ”„๋กœ๋•์…˜์— ์žˆ๋˜ ์•ฑ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ.
    • ์ด์ „์— ํ”„๋กœ๋•์…˜์— ์žˆ๋˜ ์•ฑ = ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์ข‹์€ ์‚ฌ์ดํŠธ
      • ๋Œ€์ถฉ ์ด์ „์˜ stableํ•œ ๋ฒ„์ „์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค๋Š” ๋œป์œผ๋กœ ํ•ด์„๋จ.
  • ์ž๋™ ์ „ํ™˜ ๊ณ ๋ ค
    • ์ž๋™ ์ „ํ™˜ << ๊ฐ€๋™ ์ค‘์ง€ ์—†์ด ์ง€์†์  ์•ฑ ๋ฐฐํฌ ์œ„ํ•œ Azure Pipeline ์‹œ๋‚˜๋ฆฌ์˜ค ๊ฐ„์†Œํ™”
    • ํ”„๋กœ๋•์…˜ ์Šฌ๋กฏ์œผ๋กœ ์ž๋™ ๊ตํ™˜๋˜๋ฉด ๋ณ€๊ฒฝ๋‚ด์šฉ ํ‘ธ์‹œํ•  ๋•Œ ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๊ตํ™˜ํ•ด ์คŒ.
    • ํ˜„์žฌ Linux ์›น ์•ฑ์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š์Œ

๋ฐฐํฌ ์Šฌ๋กฏ ์ถ”๊ฐ€

Azure Portal์—์„œ ํ•  ์ˆ˜ ์žˆ์Œ. ๋ฐฐํฌ ์Šฌ๋กฏ ์‚ฌ์ด์—์„œ ์•ฑ ์ฝ˜ํ…์ธ , ๊ตฌ์„ฑ ์š”์†Œ ๊ตํ™˜ ๊ฐ€๋Šฅ.

๋ฐฐํฌ ์Šฌ๋กฏ ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

  • ์ƒˆ ๋ฐฐํฌ ์Šฌ๋กฏ << ๋น„์–ด์žˆ์Œ || ๋ณต์ œ ๊ฐ€๋Šฅ
  • ๋ฐฐํฌ ์Šฌ๋กฏ ์„ค์ •์˜ ์„ธ ๊ฐ€์ง€ ๋ฒ”์ฃผ
    • ์Šฌ๋กฏ ๋ณ„ ์•ฑ ์„ค์ •, ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด (ํ•ด๋‹น๋˜๋Š” ๊ฒฝ์šฐ)
    • CD(Continuous Deploy) ์„ค์ • (์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ)
    • Azure App Service ์ธ์ฆ ์„ค์ • (์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ)
  • ๋‹ค๋ฅธ ๋ฐฐํฌ ์Šฌ๋กฏ์—์„œ ๊ตฌ์„ฑ ๋ณต์ œํ•  ๋•Œ, ๋ณต์ œ๋œ๊ฑฐ ํŽธ์ง‘ ๊ฐ€๋Šฅ
    • ํŽธ์ง‘ํ•œ ๊ฑฐ ๋ง๊ณ  ๋‹ค๋ฅธ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์›๋ณธ ์œ ์ง€

๊ตํ™˜๋œ ์„ค์ •๊ณผ ์Šฌ๋กฏ๋ณ„ ์„ค์ • ๋น„๊ต

๋Œ€์ถฉ ์ด๋Ÿฐ๊ฒŒ ์žˆ๊ตฌ๋‚˜ ํ•˜์ž

(* ์„ค์ •์€ ์Šฌ๋กฏ๋ณ„๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์Œ) (** ๊ธฐ๋Šฅ์€ ํ˜„์žฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ)

App Service ์•ฑ ๋ณดํ˜ธ

App Service << ๊ธฐ๋ณธ ์ œ๊ณต ์ธ์ฆ, ๊ถŒํ•œ ๋ถ€์—ฌ ์ง€์›ํ•จ. ์›น ์•ฑ, API, ๋ฐฑ์—”๋“œ, Azure Functions ์•ฑ์—์„œ ์ฝ”๋“œ ์ตœ์†Œ ์‚ฌ์šฉ์œผ๋กœ ๋กœ๊ทธ์ธ, ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ฐ€๋Šฅ.

์•ˆ์ „ํ•œ ์ธ์ฆ, ๊ถŒํ•œ ๋ถ€์—ฌ ์œ„ํ•ด์„œ๋Š” ๋ณด์•ˆ์„ ์ž˜ ์•Œ์•„์•ผ๊ฒ ์ง€. App Service๊ฐ€ ๋„์™€์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๋Š” ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๋” ์ค‘์š”ํ•œ ์ผ์— ์‹ ๊ฒฝ์“ฐ๋ฉด ๋จ.

์ธ์ฆ, ์Šน์ธ ๋•Œ๋ฌธ์— Azure App Service ์“ธ ํ•„์š”๋Š” ์—†์Œ

App Service ์‚ฌ์šฉ ์‹œ ์•ฑ ๋ณด์•ˆ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

  • ์ธ์ฆ, ๊ถŒํ•œ ๋ถ€์—ฌ ๋ณด์•ˆ ๋ชจ๋“ˆ << ์ฝ”๋“œ์™€ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ๋ณ„๋„๋กœ ์‹คํ–‰๋จ
  • ๋ณด์•ˆ ๋ชจ๋“ˆ << ์•ฑ ์„ค์ •์œผ๋กœ ๊ตฌ์„ฑ๋จ. ์ฝ”๋“œ ๋ณ€๊ฒฝ ๋ถˆํ•„์š”
  • ๋ณด์•ˆ ๋ชจ๋“ˆ ์‚ฌ์šฉ << HTTP ์š”์ฒญ์ด ์•ฑ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋ชจ๋“ˆ๋ถ€ํ„ฐ ํ†ต๊ณผํ•จ
  • ๋ณด์•ˆ ๋ชจ๋“ˆ์ด ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋“ค
    • ์ง€์ •๋œ ๊ณต๊ธ‰์ž(๊ตฌ๊ธ€๋กœ๊ทธ์ธ ๋“ฑ)๋กœ ์‚ฌ์šฉ์ž ์ธ์ฆ
    • ํ† ํฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ์ €์žฅ, ์ƒˆ๋กœ๊ณ ์นจ
    • ์ธ์ฆ๋œ ์„ธ์…˜ ๊ด€๋ฆฌ
    • ์š”์ฒญ ํ—ค๋”์— ID ์ •๋ณด ์‚ฝ์ž…

์•ฑ ๋ณด์•ˆ์— App Service ์‚ฌ์šฉ ์‹œ ๊ณ ๋ ค์‚ฌํ•ญ

  • ์ต๋ช… ์š”์ฒญ ํ—ˆ์šฉ

    • ์ธ์ฆ๋˜์ง€ ์•Š์€ ๊ถŒํ•œ ๋ถ€์—ฌ ์—ฐ๊ธฐ
    • ์ธ์ฆ๋์œผ๋ฉด HTTP ํ—ค๋”์˜ ์ธ์ฆ ์ •๋ณด ๋˜ํ•œ ์ „๋‹ฌ
    • ์ต๋ช… ์š”์ฒญ์˜ ์œ ์—ฐํ•œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
    • ์—ฌ๋Ÿฌ ๋กœ๊ทธ์ธ ๊ณต๊ธ‰์ž ์ œ๊ณต ๊ฐ€๋Šฅ
  • ์ธ์ฆ๋œ ์š”์ฒญ๋งŒ ํ—ˆ์šฉ

    • ๋ชจ๋“  ์ต๋ช… ์š”์ฒญ์„ /.auth/login/<provider>๋กœ ๋ฆฌ๋””๋ ‰์…˜
    • <provider>๋กœ ๋กœ๊ทธ์ธ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Œ
    • ์ด ๊ธฐ๋Šฅ ์‚ฌ์šฉ โ†’ ์•ฑ์—์„œ ์ธ์ฆ์ฝ”๋“œ ์ž‘์„ฑ ํ•„์š” X
    • ์ต๋ช… ์š”์ฒญ์ด ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋ฐ”์ผ ์•ฑ์—์„œ ์˜ค๋Š” ๊ฒฝ์šฐ
      • HTTP 401 Unauthorized ๋ฐ˜ํ™˜

    ์ธ์ฆ๋œ ์š”์ฒญ๋งŒ ํ—ˆ์šฉ << ๋ชจ๋“  ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œํ•œํ•จ. ์ด๋Š” ๊ณต์šฉ ํ™ˆํŽ˜์ด์ง€ ์“ฐ๋Š” ๊ฒฝ์šฐ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ.

  • ๋กœ๊น… ๋ฐ ์ถ”์ 

    • ๋กœ๊ทธ ํŒŒ์ผ์—์„œ ์ง์ ‘ ์ธ์ฆ, ๊ถŒํ•œ๋ถ€์—ฌ ์ถ”์ 
    • ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ๋ชจ๋“  ์„ธ๋ถ€ ์ •๋ณด ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ
    • ์ถ”์  ๋กœ๊ทธ์—์„œ EasyAuthModule_32/64 ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ฐธ์กฐ ์ฐพ์„ ๊ฒƒ

์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ์ด๋ฆ„ ๋งŒ๋“ค๊ธฐ

์ƒ์„ฑํ•œ ์›น ์•ฑ์€ azurewebsites.net์˜ ํ•˜์œ„ ๋„๋ฉ”์ธ์— ํ• ๋‹น๋จ. ์›น ์•ฑ ์ด๋ฆ„์ด consoto์ผ ๋•Œ, URL์€ consoto.azurewebsites.net์ด ๋จ. ๋˜ํ•œ ๊ฐ€์ƒ IP Addr์ด ํ• ๋‹น๋จ. ํ”„๋กœ๋•์…˜ ์›น ์•ฑ(์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌ๋˜๋Š” ์›น)์˜ ๊ฒฝ์šฐ๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ์ด๋ฆ„ ํ‘œ์‹œ ๊ฐ€๋Šฅํ•จ.

์•ฑ์˜ ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‹จ๊ณ„

์‚ฌ์šฉ์ž ์ง€์ • DNS ์ด๋ฆ„์„ ์›น์— ๋งคํ•‘ํ•˜๋ ค๋ฉด App Service ์š”๊ธˆ์ œ ์œ ๋ฃŒ ๊ณ„์ธต์ด ํ•„์š”ํ•จ. ์•„๋ฌดํŠผ ์ด๊ฑฐ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์„ธ ๋‹จ๊ณ„๊ฐ€ ์žˆ์Œ.

Azure Portal์˜ ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ ์ฃผ๋Š” ์Šคํฌ๋ฆฐ์ƒท.

  1. ๋„๋ฉ”์ธ ์ด๋ฆ„ ์˜ˆ์•ฝ
    • ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•: Azure Portal์—์„œ ์ง์ ‘ ๊ตฌ์ž… (\*.azurewebsites.net์ด ์•„๋‹˜)
    • ํƒ€์‚ฌ ์‚ฌ์ดํŠธ๋กœ ๊ฐ€๋Š” ๋Œ€์‹  Azure Portal์—์„œ ์›น์•ฑ ๋„๋ฉ”์ธ ์ด๋ฆ„ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
  2. DNS ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ
    • ๋„๋ฉ”์ธ์„ Azure ์›น ์•ฑ์˜ IP Addr์— ๋งคํ•‘
    • DNS ๋ ˆ์ฝ”๋“œ์˜ ์œ ํ˜•
      • ์›น ์•ฑ์˜ ๊ฒฝ์šฐ A๋ ˆ์ฝ”๋“œ || CNAME(Canonical name) ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ
        • A๋ ˆ์ฝ”๋“œ - ๋„๋ฉ”์ธ ์ด๋ฆ„ IP Addr ๋งคํ•‘
        • CNAME ๋ ˆ์ฝ”๋“œ - ๋„๋ฉ”์ธ๊ณผ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ๋งคํ•‘
          • DNS๋Š” ๋‘๋ฒˆ์งธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด ์ฃผ์†Œ ์กฐํšŒ
          • ์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฒซ ๋ฒˆ์งธ ๋„๋ฉ”์ธ ๋ด„
          • contoso.com์„ webapp.azurewebsites.net URL๋กœ ๋งคํ•‘
      • IP Addr ๋ณ€๊ฒฝ๋˜๋ฉด CNAME์€ ์œ ํšจํ•˜์ง€๋งŒ A๋ ˆ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ ํ•ด์•ผํ•จ
      • ์ผ๋ถ€ ๋„๋ฉ”์ธ ๋“ฑ๋ก ๊ธฐ๊ด€์€ ๋ฃจํŠธ ๋„๋ฉ”์ธ || ์™€์ผ๋“œ์นด๋“œ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ CNAME ๋ ˆ์ฝ”๋“œ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ โ†’ A๋ ˆ์ฝ”๋“œ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ
  3. ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ์‚ฌ์šฉ
    • ๋„๋ฉ”์ธ ์žˆ๊ณ , DNS ๋ ˆ์ฝ”๋“œ ๋งŒ๋“ค๊ณ , Azure Portal๋กœ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ›„ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
    • ๊ฒŒ์‹œ ์ „ ๋„๋ฉ”์ธ ํ…Œ์ŠคํŠธ ํ•„์š”

App Service ์•ฑ ๋ฐฑ์—… ๋ฐ ๋ณต์›

(์ˆ˜๋™ || ์ผ์ •)์— ๋”ฐ๋ผ ๋ฐฑ์—… ์ƒ์„ฑ ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅํ•จ. (ํŠน์ • ๊ธฐ๊ฐ„ || ๋ฌด๊ธฐํ•œ) ๋ณด์กด๋˜๋„๋ก ๋ฐฑ์—… ๊ตฌ์„ฑ ๊ฐ€๋Šฅ. (๊ธฐ์กด ๋ฎ์–ด์“ฐ๊ธฐ || ๋‹ค๋ฅธ ์•ฑ or ์‚ฌ์ดํŠธ๋กœ ๋ณต์› || ์ด์ „ ์Šค๋ƒ…์ƒท์œผ๋กœ ๋ณต์›) ๊ฐ€๋Šฅ

๋ฐฑ์—… ๋ฐ ๋ณต์›์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

  • (ํ‘œ์ค€ || ํ”„๋ฆฌ๋ฏธ์—„) ๊ณ„์ธต์˜ App Service ์š”๊ธˆ์ œ ํ•„์š”
  • ๋ฐฑ์—…ํ•  ์•ฑ๊ณผ ๋™์ผํ•œ ๊ตฌ๋…์— Azure Storage ๊ณ„์ •, ์ปจํ…Œ์ด๋„ˆ ํ•„์š”
  • Azure Storage ๊ณ„์ •, ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฑ์—… ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋“ค
    • ์•ฑ ๊ตฌ์„ฑ ์„ค์ •
    • ํŒŒ์ผ ์ฝ˜ํ…์ธ 
    • ์•ฑ์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  DB (SQL DB ๋“ฑ)
  • ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ •์—์„œ ๋ฐฑ์—…์€ Zip, XML ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋จ
    • Zip - ์•ฑ, ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ๋ฐฑ์—… ๋ฐ์ดํ„ฐ ํฌํ•จ
    • XML - Zip ํŒŒ์ผ ์ฝ˜ํ…์ธ ์˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ
  • ์ˆ˜๋™ || ์ผ์ •์— ๋”ฐ๋ฅธ ๋ฐฑ์—…
  • ๊ธฐ๋ณธ๊ฐ’ - ์ „์ฒด ๋ฐฑ์—…
  • ๋ถ€๋ถ„ ๋ฐฑ์—… ์ง€์›๋จ - ์„ค์ •์—์„œ ๋ฐฑ์—… ์ œ์™ธํ•  ํŒŒ์ผ, ํด๋” ์ง€์ • ๊ฐ€๋Šฅ
  • ๋ถ€๋ถ„ ๋ฐฑ์—… ๋ณต์› ๋ฐฉ๋ฒ• = ์ •๊ธฐ ๋ฐฑ์—… ๋ณต์› ๋ฐฉ๋ฒ•
  • ์ตœ๋Œ€ 10GB ์•ฑ, DB์ฝ˜ํ…์ธ  ์ €์žฅ ๊ฐ€๋Šฅ
  • Azure Portal์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ •, ์ปจํ…Œ์ด๋„ˆ ํŽ˜์ด์ง€์— ๋ฐฑ์—… ํ‘œ์‹œ๋จ

๋ฐฑ์—… ๋งŒ๋“ค๊ณ  ๋ณต์› ์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ

  • ์ „์ฒด ๋ฐฑ์—… ๊ณ ๋ ค
    • ๋ชจ๋“  ์„ค์ •๊ณผ ์ฝ˜ํ…์ธ  ์ €์žฅ
    • ๋ณต์› ์‹œ ๋ฐฑ์—…์˜ ํ•ญ๋ชฉ๋“ค๋กœ ๋ชจ๋‘ ๋Œ€์ฒด๋จ
    • ์‚ฌ์ดํŠธ์— ์žˆ๊ณ  ๋ฐฑ์—…์— ์—†๋Š” ํŒŒ์ผ์€ ์‚ญ์ œ๋จ
  • ๋ถ€๋ถ„ ๋ฐฑ์—… ๊ณ ๋ ค
    • ๋ฐฑ์—… ํŒŒ์ผ ์„ ํƒ ์œ„ํ•ด ๋ถ€๋ถ„ ๋ฐฑ์—… ์ง€์ •
    • ์ œ์™ธ๋œ ํด๋”, ํŒŒ์ผ์˜ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚จ์•„์žˆ์Œ
  • ๋ฐฑ์—… ํŒŒ์ผ ๊ฒ€์ƒ‰ ๊ณ ๋ ค
    • Zip, XML ํŒŒ์ผ ์ฐพ์•„ ๋ฐฑ์—…์— ์•ก์„ธ์Šค
    • ๋ณต์› ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ ๋„ ์ฝ˜ํ…์ธ  ์กฐํšŒ ๊ฐ€๋Šฅ
  • ๋ฐฑ์—… ๋Œ€์ƒ์˜ ๋ฐฉํ™”๋ฒฝ ๊ณ ๋ ค
    • ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ •์ด ๋ฐฉํ™”๋ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ • ๋œ ๊ฒฝ์šฐ - ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ •์€ ๋ฐฑ์—… ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์—†์Œ

Azure Application Insights ์‚ฌ์šฉ

Azure Application Insights << Azure Monitor์˜ โ€œ๋ผ์ด๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ€๋Šฅํ•œโ€ ๊ธฐ๋Šฅ. ์•ฑ์—์„œ ์„ฑ๋Šฅ ์ด์ƒ ์ž๋™ ๊ฒ€์ƒ‰ํ•˜๋„๋ก Application insights, App Service ํ†ตํ•ฉ ๊ฐ€๋Šฅ.

Application Insights << ์•ฑ ์„ฑ๋Šฅ, ์œ ์šฉ์„ฑ ์ง€์†์  ๊ฐœ์„  ๊ฐ€๋Šฅ. ๋ฌธ์ œ ์ง„๋‹จ, ์ˆ˜ํ–‰ํ•  ์ž‘์—… ์ดํ•ด์— ๋„์›€๋˜๋Š” ๋ถ„์„ ๋„๊ตฌ ์ œ๊ณต.

Application Insights์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

  • .NET, Nodejs, Java EE ๋“ฑ์˜ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™
  • ์˜จํ”„๋ ˆ๋ฏธ์Šค, ํ•˜์ด๋ธŒ๋ฆฌ๋“œ, ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ์—์„œ ํ˜ธ์ŠคํŒ… ๋˜๋Š” ๊ตฌ์„ฑ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • Azure pipeline ํ”„๋กœ์„ธ์Šค์™€ ํ†ตํ•ฉ๋จ + ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
  • Visual Studio App Center ํ†ตํ•ฉ โ†’ ๋ชจ๋ฐ”์ผ ์•ฑ์—์„œ ๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ถ„์„

Application Insights๊ฐ€ ์›น ํŽ˜์ด์ง€, ํด๋ผ์ด์–ธํŠธ ์•ฑ ๋ฐ ์›น ์„œ๋น„์Šค์—์„œ ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ๊ฒฝ๊ณ , Power BI ๋ฐ Visual Studio๋กœ ์ „์†ก๋˜๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ.

Application Insights ์‚ฌ์šฉ ์‹œ ๊ณ ๋ ค ์‚ฌํ•ญ

  • ์š”์ฒญ ์†๋„, ์‘๋‹ต ์‹œ๊ฐ„, ์‹คํŒจ์œจ ๊ณ ๋ ค
    • ์–ด๋–ค ์‹œ๊ฐ„์— ์–ด๋–ค ์œ„์น˜์— ์–ด๋–ค ํŽ˜์ด์ง€๊ฐ€ ์ธ๊ธฐ์žˆ๋Š”์ง€ ํ™•์ธ
    • ์–ด๋–ค ํŽ˜์ด์ง€๊ฐ€ ์„ฑ๋Šฅ ์ข‹์€์ง€ ํ™•์ธ
    • ์š”์ฒญ ๋งŽ์€๋ฐ ์‹คํŒจ์œจ ๋†’์•„์ง€๋ฉด ๋ฌธ์ œ์žˆ๋Š”๊ฑฐ์ž„
  • ์ข…์†์„ฑ ๋น„์œจ, ์‘๋‹ต ์‹œ๊ฐ„, ์‹คํŒจ์œจ ๊ณ ๋ ค
    • ์™ธ๋ถ€ ์„œ๋น„์Šค๊ฐ€ ์•ฑ ์„ฑ๋Šฅ ์ €ํ•˜์‹œํ‚ค๋Š”์ง€ ์กฐ์‚ฌ
  • ์˜ˆ์™ธ ๊ณ ๋ ค
    • ํ†ต๊ณ„ ๋ถ„์„, ์ธ์Šคํ„ด์Šค ์Šคํƒ ์ถ”์ , ๊ด€๋ จ ์š”์ฒญ ๋ถ„์„
    • ์„œ๋ฒ„, ๋ธŒ๋ผ์šฐ์ € ์˜ค๋ฅ˜ ์ „๋ถ€ ๋ณด๊ณ ๋จ
  • ํŽ˜์ด์ง€ ๋ณด๊ธฐ, ๋กœ๋“œ ์„ฑ๋Šฅ ๊ณ ๋ ค
    • ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ณด๊ณ ํ•œ ํŽ˜์ด์ง€ ๋ณด๊ธฐ ์ˆซ์ž ์ˆ˜์ง‘, ๋กœ๋“œ ์„ฑ๋Šฅ ๋ถ„์„
  • ์‚ฌ์šฉ์ž, ์„ธ์…˜ ์ˆ˜ ๊ณ ๋ ค
    • ์•ฑ์— ์—ฐ๊ฒฐ๋œ ์‚ฌ์šฉ์ž, ์„ธ์…˜ ์ˆ˜ ์ถ”์ ์— ๋„์›€ ๋  ์ˆ˜ ์žˆ์Œ
  • ์„ฑ๋Šฅ ์นด์šดํ„ฐ ๊ณ ๋ ค
    • Windows || Linux ์„œ๋ฒ„ PC์—์„œ Application insights ์„ฑ๋Šฅ ์นด์šดํ„ฐ ์ถ”๊ฐ€
    • CPU, MEM, Net ์‚ฌ์šฉ๋Ÿ‰ ๋“ฑ์˜ ์„ฑ๋Šฅ ์ถœ๋ ฅ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ํ˜ธ์ŠคํŠธ ์ง„๋‹จ ๊ณ ๋ ค
    • Docker, Azure์˜ ์ง„๋‹จ์„ Application Insights์— ํ†ตํ•ฉ
  • ์ง„๋‹จ ์ถ”์  ๋กœ๊ทธ ๊ณ ๋ ค
    • ์•ฑ์—์„œ ์ถ”์  ๋กœ๊ทธ ๊ตฌํ˜„
    • ์ถ”์  ์ด๋ฒคํŠธ, ์š”์ฒญ๊ณผ ์—ฐ๊ฒฐ
  • ์‚ฌ์šฉ์ž ์ง€์ • ์ด๋ฒคํŠธ, ๋ฉ”ํŠธ๋ฆญ ๊ณ ๋ ค
    • ์‚ฌ์šฉ์ž ์ง€์ • ์ด๋ฒคํŠธ, ๋ฉ”ํŠธ๋ฆญ ์ฃผ์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํด๋ผ์ด์–ธํŠธ or ์„œ๋ฒ„ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ
    • ํŒ๋งค๋œ ํ•ญ๋ชฉ ์ˆ˜ ๋“ฑ์˜ ์ด๋ฒคํŠธ ์ถ”์ 