728x90
반응형
C# ASP.NET MVC로 블로그 만들기 #1: CRUD 기본 기능 구현
C# ASP.NET MVC로 블로그 만들기 #1: CRUD 기본 기능 구현
ASP.NET MVC로 블로그 만들기: 실전 예제아래는 C# ASP.NET MVC로 간단한 블로그(게시글 CRUD) 기능을 구현하는 실전 예제입니다.Visual Studio에서 새 MVC 프로젝트를 만들고, 아래와 같이 따라 하면 블로그
rogi221.tistory.com
C# ASP.NET MVC로 블로그 만들기 #2: 고급 기능 구현 실전 가이드
C# ASP.NET MVC로 블로그 만들기 #2: 고급 기능 구현 실전 가이드
C# ASP.NET MVC로 블로그 만들기 #1: CRUD 기본 기능 구현 C# ASP.NET MVC로 블로그 만들기 #1: CRUD 기본 기능 구현ASP.NET MVC로 블로그 만들기: 실전 예제아래는 C# ASP.NET MVC로 간단한 블로그(게시글 CRUD) 기능
rogi221.tistory.com
C# ASP.NET MVC로 블로그 만들기 #3: 클라우드 배포 & CI/CD 파이프라인 구축
ASP.NET MVC 블로그를 클라우드에 배포하고 CI/CD 파이프라인을 구축하는 방법을 단계별로 설명합니다. 개발 환경에서 운영 서버까지 자동화된 배포 시스템을 구축해보세요!
1. 클라우드 배포 전략
1.1 Azure App Service 배포 (추천)
# Azure CLI 설치
winget install -e --id Microsoft.AzureCLI
# 로그인
az login
# 앱 서비스 생성
az webapp up --name myblog-2025 --resource-group BlogRG --sku B1 --runtime "DOTNET|6.0"
장점:
- 5분 내 배포 완료
- 자동 스케일링 지원
- .NET 최적화 환경
2. CI/CD 파이프라인 구축
2.1 Azure DevOps YAML 설정
# azure-pipelines.yml
trigger:
- main
variables:
buildConfiguration: 'Release'
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: 'windows-latest'
steps:
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '6.0.x'
- script: dotnet build --configuration $(buildConfiguration)
displayName: '빌드'
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
publishWebProjects: true
arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
- stage: Deploy
dependsOn: Build
jobs:
- deployment: DeployToAzure
environment: 'Production'
pool:
vmImage: 'windows-latest'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: 'AzureConnection'
appType: 'webApp'
appName: 'myblog-2025'
package: '$(Pipeline.Workspace)/drop/*.zip'
주요 기능:
- 코드 푸시시 자동 빌드
- 단계별 승인 프로세스
- 롤백 자동화
3. 고급 배포 기법
3.1 Blue-Green 배포
# 슬롯 교체 명령
az webapp deployment slot swap \
--resource-group BlogRG \
--name myblog-2025 \
--slot staging \
--target-slot production
장점:
- 무중단 배포 가능
- 이전 버전 즉시 복구
4. 모니터링 설정
4.1 Application Insights 연동
// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationInsightsTelemetry(Configuration["APPINSIGHTS_CONNECTIONSTRING"]);
}
수집 데이터:
- 실시간 성능 지표
- 사용자 행동 분석
- 오류 자동 추적
5. 보안 강화
5.1 Key Vault 통합
// Program.cs
builder.Configuration.AddAzureKeyVault(
new Uri("https://myblog-vault.vault.azure.net/"),
new DefaultAzureCredential());
보호 항목:
- 데이터베이스 연결 문자열
- API 키
- 인증서
6. 로컬 IIS 배포 방법
6.1 IIS 설정
# Windows 기능 켜기
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET45
6.2 프로젝트 배포
# 프로젝트 게시
dotnet publish --configuration Release --output "C:\Deploy\MyBlog"
6.3 IIS 사이트 구성
- 응용 프로그램 풀 생성
- .NET CLR 버전: 관리 코드 없음
- 관리 파이프라인 모드: 통합
- 사이트 추가
- 물리적 경로: C:\Deploy\MyBlog
- 바인딩: localhost:8080
- 권한 설정
icacls "C:\Deploy\MyBlog" /grant "IIS_IUSRS:(OI)(CI)F"
문제 해결 팁:
- 500.19 오류 → ASP.NET Core Hosting Bundle 설치
- 502.5 오류 → dotnet restore 실행 확인
마치며
이번 포스팅에서는 Azure 클라우드 배포, IIS 로컬 배포, CI/CD 파이프라인 구축을 종합적으로 다뤘습니다.
핵심 정리
- Azure vs IIS 선택 가이드
- Azure: 자동 스케일링, 무중단 배포(Blue-Green), 통합 모니터링(Application Insights)
- IIS: 내부 시스템 연계 용이, 로컬 테스트 환경 구축 간편, 초기 비용 절감
→ "내부용 시스템에는 IIS가 최적"
- 보안 강화 필수 사항
- Key Vault로 연결 문자열/API 키 암호화
- Blue-Green 배포로 다운타임 제거
- 성공적인 배포를 위한 체크리스트
- dotnet publish로 빌드 아티팩트 생성
- IIS 응용 프로그램 풀 버전 확인
- Azure DevOps 파이프라인 단계별 테스트
728x90
반응형
'C#' 카테고리의 다른 글
C# ASP.NET MVC에서 Service Layer로 비즈니스 로직 깔끔하게 분리하기 (0) | 2025.05.21 |
---|---|
C# 디자인 패턴 핵심 3가지: 싱글턴·팩토리·전략 패턴 완벽 가이드 (15) | 2025.05.20 |
C# ASP.NET MVC로 블로그 만들기 #2: 고급 기능 구현 실전 가이드 (2) | 2025.05.18 |
C# ASP.NET MVC로 블로그 만들기 #1: CRUD 기본 기능 구현 (0) | 2025.05.18 |
C# ASP.NET MVC 완전 정복: 문의(Enquiry) 페이지 실전 구현과 구조 해설 (6) | 2025.05.16 |