Skip to content

Latest commit

Β 

History

History
126 lines (78 loc) Β· 7.59 KB

File metadata and controls

126 lines (78 loc) Β· 7.59 KB

κ²Œμ‹œ 및 배포

이 선택 μ„Έμ…˜μ—μ„œλŠ” ν”Όμž κ°€κ²Œ 앱을 μ• μ € μ•± μ„œλΉ„μŠ€μ— λ°°ν¬ν•©λ‹ˆλ‹€.

Azure 계정 λ§Œλ“€κΈ°

이 μ„Έμ…˜μ„ μ™„λ£Œν•˜λ €λ©΄ μ• μ € 계정 λ˜λŠ” ꡬ독이 ν•„μš”ν•©λ‹ˆλ‹€. 아직 μ• μ € 계정이 μ—†λŠ” 경우 μ§€κΈˆ Azure 계정 λ§Œλ“€κΈ°λ₯Ό 톡해 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

계정을 λ§Œλ“  ν›„μ—λŠ” 이 κ³„μ •μœΌλ‘œ Visual Studio에 λ‘œκ·ΈμΈν•΄μ•Ό Azure λ¦¬μ†ŒμŠ€μ— μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μƒˆλ‘œμš΄ Azure μ•± μ„œλΉ„μŠ€μ— κ²Œμ‹œν•˜κΈ°

Azure μ•± μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜λ©΄ ASP.NET Core μ›Ή 앱을 ν΄λΌμš°λ“œμ— μ‰½κ²Œ 배포할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ†”λ£¨μ…˜μ—μ„œ μ„œλ²„ ν”„λ‘œμ νŠΈλ₯Ό 마우슀 였λ₯Έμͺ½ λ²„νŠΌμœΌλ‘œ ν΄λ¦­ν•˜κ³  κ²Œμ‹œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€. ASP.NET Core Server ν”„λ‘œμ νŠΈλŠ” ν΄λΌμ΄μ–ΈνŠΈ λΈ”λ ˆμ΄μ € ν”„λ‘œμ νŠΈλ₯Ό μ°Έμ‘°ν•˜λ―€λ‘œ μ„œλ²„ ν”„λ‘œμ νŠΈλ₯Ό κ²Œμ‹œν•˜λ©΄ λΈ”λ ˆμ΄μ € λΆ€λΆ„κ³Ό κ·Έ 쒅속성이 ν¬ν•¨λ©λ‹ˆλ‹€.

Publish from VS

κ²Œμ‹œ λ§ˆλ²•μ‚¬μ—μ„œ "Azure"λ₯Ό μ„ νƒν•œ ν›„ λ‹€μŒμ„ μ„ νƒν•©λ‹ˆλ‹€.

Pick a publish target

배포 λŒ€μƒμ— λŒ€ν•΄ "Azure App Service(Windows)"λ₯Ό μ„ νƒν•œ λ‹€μŒ λ‹€μŒ λ‹€μŒμ„ μ„ νƒν•©λ‹ˆλ‹€.

Publish to App Service

ꡬ독이 λ‘œλ“œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ Έλ‹€κ°€ Azure μ•± μ„œλΉ„μŠ€μ— μ‚¬μš©ν•  ꡬ독을 μ„ νƒν•˜μ‹­μ‹œμ˜€. ꡬ독을 μ„ νƒν•œ ν›„ λŒ€ν™” μƒμž ν•˜λ‹¨μ—μ„œ "μƒˆ Azure μ•± μ„œλΉ„μŠ€ λ§Œλ“€κΈ°..."λ₯Ό μ„ νƒν•˜μ‹­μ‹œμ˜€.

Select existing or create new

"App Service: Create New" λŒ€ν™”μƒμžμ—μ„œ λ‹€μŒμ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

  • μƒˆ Azure μ•± μ„œλΉ„μŠ€μ— μ‚¬μš©ν•  μ˜¬λ°”λ₯Έ 계정이 였λ₯Έμͺ½ μƒλ‹¨μ˜ 계정 λ“œλ‘­λ‹€μš΄μ—μ„œ μ„ νƒλ˜μ—ˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
  • μ•±μ˜ κ³ μœ ν•œ 이름을 μ„ νƒν•©λ‹ˆλ‹€(μ•±μ˜ κΈ°λ³Έ URL의 일뢀가 λ©λ‹ˆλ‹€.)
  • λ¦¬μ†ŒμŠ€ κ·Έλ£Ή 및 ν˜ΈμŠ€νŒ… κ³„νšκ³Ό ν•¨κ»˜ μ‚¬μš©ν•  Azure μ„œλΈŒμŠ€ν¬λ¦½μ…˜μ„ μ„ νƒν•©λ‹ˆλ‹€.
    • λ¦¬μ†ŒμŠ€ 그룹은 Azureμ—μ„œ κ΄€λ ¨ λ¦¬μ†ŒμŠ€λ₯Ό κ·Έλ£Ήν™”ν•˜λŠ” νŽΈλ¦¬ν•œ λ°©λ²•μ΄λ―€λ‘œ ν”Όμž κ°€κ²Œ 앱에 맞게 μƒˆλ‘œ λ§Œλ“œλŠ” 것을 κ²€ν† ν•΄ λ³΄μ„Έμš”.
    • ν˜ΈμŠ€νŒ… κ³„νšμ˜ 경우 κΈ°λ³Έ 계측 ν˜ΈμŠ€νŒ… κ³„νš 이상을 선택해야 ν•©λ‹ˆλ‹€.

Create new App Service

μ•± μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€λ €λ©΄ λ§Œλ“€κΈ°λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€. 이 μž‘μ—…μ€ λͺ‡ λΆ„ 정도 걸릴 수 μžˆμŠ΅λ‹ˆλ‹€.

μ•± μ„œλΉ„μŠ€κ°€ μƒμ„±λ˜λ©΄ ν•΄λ‹Ή μ„œλΉ„μŠ€κ°€ μ„ νƒλ˜μ—ˆλŠ”μ§€ ν™•μΈν•œ λ‹€μŒ κ²Œμ‹œ λŒ€ν™”μƒμžμ—μ„œ λ§ˆμΉ¨μ„ ν΄λ¦­ν•©λ‹ˆλ‹€

Finish Publish

μ•± μ„œλΉ„μŠ€κ°€ μƒμ„±λ˜λ©΄ κ²Œμ‹œ νŽ˜μ΄μ§€μ— κ²Œμ‹œ ν”„λ‘œν•„μ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

Publish profile

이 λ•Œ, 앱에 λŒ€ν•œ ν”„λ‘œλ•μ…˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 앱이 SQLiteλ₯Ό μ‚¬μš©ν•˜κ³  자체 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ°°ν¬ν•˜κΈ° λ•Œλ¬Έμ— λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ§Œλ“€ ν•„μš”λŠ” μ—†μ§€λ§Œ μ‹€μ œ μ•±μ˜ 경우 λ§Œλ“€κ²Œ 될 κ²ƒμž…λ‹ˆλ‹€.

앱은 κ²Œμ‹œν•˜μ˜€μ§€λ§Œ, μ„œλ²„κ°€ μ‹œμž‘μ— μ‹€νŒ¨ν•˜κ³  였λ₯˜κ°€ λ°˜ν™˜λ©λ‹ˆλ‹€. μ΄λŠ” λ¨Όμ € IdentityServer에 λŒ€ν•œ μ„œλͺ… ν‚€λ₯Ό ꡬ성해야 ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. κ°œλ°œν•˜λŠ” λ™μ•ˆ 개발 ν‚€(BlazingPizza.Server/appsettings.Development.json μ°Έμ‘°)λ₯Ό μ‚¬μš©ν–ˆμ§€λ§Œ μ‹€μ œ μš΄μ˜μ—μ„œλŠ” 토큰을 λ°œν–‰ν•˜κΈ° μœ„ν•œ μΈμ¦μ„œλ₯Ό ꡬ성해야 ν•©λ‹ˆλ‹€. 이 μž‘μ—…μ€ Azure Key Vaultλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

Azure Key Vaultλ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλͺ… μΈμ¦μ„œ μ„€μ •

κΈ°μ‘΄ ν‚€ 볼트λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλͺ… μΈμ¦μ„œλ₯Ό μƒμ„±ν•˜κ±°λ‚˜ μƒˆ μΈμ¦μ„œλ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

μƒˆλ‘­κ²Œ ν‚€ 볼트λ₯Ό λ§Œλ“€λ €λ©΄ μ•„λž˜μ™€ 같이 μ§„ν–‰ν•˜μ„Έμš”.

리뷰 μš”λ§

  • Azure ν¬νƒˆμ— 둜그인 ν•΄μ£Όμ„Έμš”.
  • 검색 μƒμžμ— Key Vaultλ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.
  • κ²°κ³Ό λͺ©λ‘μ—μ„œ Key vaultsλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  • ν‚€ 볼트 μ„Ήμ…˜μ—μ„œ μΆ”κ°€λ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  • ν‚€ 볼트 λ§Œλ“€κΈ° μ„Ήμ…˜μ—μ„œ λ‹€μŒ 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€:
    • Subscription: ꡬ독을 μ„ νƒν•©λ‹ˆλ‹€.
    • Resource group: ν‚€ 볼트의 λ¦¬μ†ŒμŠ€ 그룹을 μ„ νƒν•©λ‹ˆλ‹€.
    • Key vault name: κ³ μœ ν•œ 이름이 ν•„μš”ν•©λ‹ˆλ‹€.
    • Region ν’€λ‹€μš΄ λ©”λ‰΄μ—μ„œ μœ„μΉ˜λ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
    • λ‹€λ₯Έ μ˜΅μ…˜μ€ κΈ°λ³Έκ°’μœΌλ‘œ μœ μ§€ν•©λ‹ˆλ‹€.
  • μœ„μ˜ 정보λ₯Ό μ œκ³΅ν•œ ν›„ Review + createλ₯Ό μ„ νƒν•˜μ—¬ ν‚€ 볼트λ₯Ό λ§Œλ“­λ‹ˆλ‹€.

Azure ν¬ν„Έμ—μ„œ ν‚€ 볼트λ₯Ό μ°Ύμ•„ Certificatesλ₯Ό μ„ νƒν•˜κ³  Generate/Importλ₯Ό μ„ νƒν•˜μ—¬ μƒˆ μΈμ¦μ„œλ₯Ό λ§Œλ“­λ‹ˆλ‹€.

Generate key vault certificate

μ„ νƒν•œ 이름과 μΌμΉ˜ν•˜λŠ” 제λͺ© 이름("CN="으둜 ꡬ뢄)을 μ‚¬μš©ν•˜μ—¬ 자체 μ„œλͺ…λœ μΈμ¦μ„œλ₯Ό μƒμ„±ν•˜κ³  Createλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

Create certificate

Azure ν¬ν„Έμ—μ„œ μ•± μ„œλΉ„μŠ€λ₯Ό μ°Ύμ•„ TLS/SSL Settings을 μ„ νƒν•˜κ³  Private Key Certificates (.pfx) 탭을 μ„ νƒν•œ λ‹€μŒ Import Key Vault Certificateλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

Import key vault certificate

쑰금 전에 λ§Œλ“  μΈμ¦μ„œλ₯Ό μ„ νƒν•˜μ—¬ μ•± μ„œλΉ„μŠ€λ‘œ κ°€μ Έμ˜΅λ‹ˆλ‹€.

Select certificate

κ°€μ Έμ˜¨ μΈμ¦μ„œλ₯Ό μ„ νƒν•˜κ³  μ§€λ¬Έ(thumbprint)을 λ³΅μ‚¬ν•©λ‹ˆλ‹€.

Copy certificate thumbprint

μ•± μ„œλΉ„μŠ€μ˜ μ™Όμͺ½ λ©”λ‰΄μ—μ„œ Configuration을 μ„ νƒν•©λ‹ˆλ‹€. 방금 λ³΅μ‚¬ν•œ μΈμ¦μ„œ μ§€λ¬Έ(thumbprint)에 값이 μ„€μ •λœ WEBSITE_LOAD_CERTIFICATES μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 섀정을 μΆ”κ°€ν•©λ‹ˆλ‹€. 이 섀정을 μ‚¬μš©ν•˜λ©΄ Windows μΈμ¦μ„œ μ €μž₯μ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ μΈμ¦μ„œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Load certificates setting

이제 μ„œλ²„ ν”„λ‘œμ νŠΈμ—μ„œ appsettings.jsonλ₯Ό μ—…λ°μ΄νŠΈν•˜μ—¬ μΈμ¦μ„œλ₯Ό ν”„λ‘œλ•μ…˜μ—μ„œ μ‚¬μš©ν•˜λ„λ‘ 앱을 κ΅¬μ„±ν•©λ‹ˆλ‹€.

"IdentityServer": {
  "Key": {
    "Type": "Store",
    "StoreName": "My",
    "StoreLocation": "CurrentUser",
    "Name": "CN=BlazingPizzaCertificate"
  },
  "Clients": {
    "BlazingPizza.Client": {
      "Profile": "IdentityServerSPA"
    }
  }
}

κ²Œμ‹œν•  μ€€λΉ„κ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€! κ²Œμ‹œλ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.

앱을 κ²Œμ‹œν•˜λŠ” 데 λͺ‡ λΆ„ 정도 걸릴 수 μžˆμŠ΅λ‹ˆλ‹€. 앱이 배포λ₯Ό 마치면 λΈŒλΌμš°μ €μ— μžλ™μœΌλ‘œ λ‘œλ“œλ©λ‹ˆλ‹€.

Published app

μΆ•ν•˜ν•©λ‹ˆλ‹€!

μ™„λ£Œλœ λΈ”λ ˆμ΄μ € 앱을 μΉœκ΅¬μ—κ²Œ μžλž‘ν•œ ν›„μ—λŠ” 더 이상 μœ μ§€ κ΄€λ¦¬ν•˜κ³  μ‹Άμ§€ μ•Šμ€ Azure λ¦¬μ†ŒμŠ€λ₯Ό 정리해야 ν•©λ‹ˆλ‹€.

원문 읽기 - Publish and deploy