Visual Studio로 Azure에 ASP.NET Core 웹 응용 프로그램 배포하기
- 본 번역문서의 원문은 Deploy an ASP.NET Core web app to Azure using Visual Studio docs.asp.net 입니다.
- 본 번역문서는 Azure에 ASP.NET Core 웹 응용 프로그램 배포하기(Visual Studio) www.taeyo.net 에서도 함께 제공됩니다.
개발환경 설정하기
- 최신 Azure SDK for Visual Studio 2015 를 설치합니다. 만약 Visual Studio 2015가 설치되어 있지 않다면 SDK가 설치될 때 Visual Studio Community 2015 버전이 함께 설치됩니다.
노트
사용 중인 머신에 필요한 구성 요소들이 많이 설치되어 있지 않다면 SDK 설치에 30분 이상 걸릴 수도 있습니다.
- .NET Core + Visual Studio Tooling 을 설치합니다.
- 테스트에 사용할 Azure 계정을 확인합니다. 만약 계정이 없다면 무료 Azure 계정을 만들거나 Visual Studio 구독자 크레딧을 활성화시킬 수 있습니다.
웹 응용 프로그램 생성하기
Visual Studio의 시작 페이지에서 새 프로젝트(New Project) 링크 버튼을 클릭합니다.

또는 메뉴를 이용해서 새로운 프로젝트를 생성할 수도 있습니다. 파일(File) > 새로 만들기(New) > 프로젝트(Project)를 선택합니다.

새 프로젝트(New Project) 대화 상자의 항목들을 입력합니다:
- 좌측 패인에서 웹(Web) 노드를 선택합니다.
- 메인 패인에서 ASP.NET Core Web Application (.NET Core) 템플릿을 선택합니다.
- 확인(OK) 버튼을 누릅니다.

New ASP.NET Core Web Application (.NET Core) 대화 상자가 나타나면:
- 웹 응용 프로그램(Web Application) 템플릿을 선택합니다.
- 인증(Authentication) 항목이 개별 사용자 계정(Individual User Accounts)으로 설정되어 있는지 확인합니다.
- 클라우드의 호스트(Host in the cloud) 체크 상자가 해제되어 있는지 확인합니다.
- 확인(OK) 버튼을 누릅니다.

로컬에서 응용 프로그램 테스트하기
- Ctrl-F5 키를 눌러서 로컬에서 응용 프로그램을 실행합니다.
- About 링크와 Contact 링크를 클릭해봅니다. 사용 중인 장치의 크기에 따라서 이 링크들을 틀릭하려면, 먼저 탐색 아이콘을 클릭해야 할 수도 있습니다.

- 이번에는 Register 링크를 클릭해서 새로운 사용자를 등록해봅니다. 이때 가상의 전자메일 주소를 사용해도 무방합니다. 그러나 폼을 제출하면 다음과 같은 오류가 발생할 것입니다:

이 오류를 해결할 수 있는 방법은 두 가지가 존재합니다:
-
Apply Migrations 버튼을 클릭하고 잠시 기다리면 마이그레이션이 완료됩니다. 그러면 페이지를 새로 고침합니다. 또는
-
명령 프롬프트에서 프로젝트가 위치한 디렉터리로 이동한 다음, 다음 명령을 실행합니다:
dotnet ef database update
그러면 응용 프로그램이 새로운 사용자를 등록할 때 사용한 이메일 주소와 Log off 링크를 보여줄 것입니다.

Azure에 응용 프로그램 배포하기
마우스 오른쪽 버튼으로 솔루션 탐색기(Solution Explorer)에서 프로젝트를 클릭한 다음, 게시(Publish)를 선택합니다.

게시(Publish) 대화 상자가 나타나면 Microsoft Azure 앱 서비스(Microsoft Azure App Service) 버튼을 선택합니다.

새로 만들기(New) 버튼을 눌러서 새로운 리소스 그룹을 생성합니다. 이렇게 새로운 리소스 그룹을 생성해 놓으면 본 자습서에서 생성한 모든 Azure 리소스들을 손쉽게 삭제할 수 있습니다.

새로운 리소스 그룹과 응용 프로그램 서비스 계획을 생성합니다:
- 리소스 그룹(Resource Group) 우측의 새로 만들기(New) 버튼을 클릭하고 새로운 리소스 그룹의 이름을 입력합니다.
- 앱 서비스 계획(App Service Plan) 우측의 새로 만들기(New) 버튼을 클릭하고 여러분과 가까운 위치를 선택합니다. 기본적으로 생성된 이름을 그대로 사용해도 됩니다.
- 추가 Azure 서비스 탐색(Explore additional Azure services) 링크를 클릭해서 새로운 데이터베이스를 생성합니다.

- 녹색의 + 아이콘을 클릭해서 새로운 SQL Database를 생성합니다.

- SQL 데이터베이스 구성(Configure SQL Database) 대화 상자에서 새로 만들기(New) 버튼을 클릭해서 새로운 데이터베이스 서버를 생성합니다.

- 관리자의 사용자 이름과 비밀번호를 입력한 다음, 확인(OK) 버튼을 누릅니다. 이번 단계에서 생성한 사용자 이름과 비밀번호를 잊어버리면 안됩니다. 기본 서버 이름(Server Name)은 그대로 사용해도 무방합니다.

노트
관리자의 사용자 이름으로 "admin"은 허용되지 않습니다.
- SQL 데이터베이스 구성(Configure SQL Database) 대화 상자에서 확인(OK) 버튼을 누릅니다.

- 앱 서비스 만들기(Create App Service) 대화 상자에서 만들기(Create) 버튼을 누릅니다.

- 게시(Publish) 대화 상자에서 다음(Next) 버튼을 누릅니다.

-
게시(Publish) 대화 상자의 설정(Settings) 단계에서는:
- Databases 항목을 확장한 다음, Use this connection string at runtime 체크 상자를 체크합니다.
- Entity Framework Migrations 항목을 확장한 다음, Apply this migration on publish 체크 상자를 체크합니다.
- 게시(Publish) 버튼을 누르고 Visual Studio가 응용 프로그램의 배포를 마칠 때까지 잠시 대기합니다.

그러면 Visual Studio가 응용 프로그램을 배포한 다음, 브라우저에서 클라우드 응용 프로그램을 실행시켜줄 것입니다.
응용 프로그램 변경하기
-
다음 예제 코드와 같이
Views/Home/About.cshtml
뷰 파일을 편집해서 내용을 변경합니다:
@{
ViewData["Title"] = "About";
}
<h2>@ViewData["Title"].</h2>
<h3>@ViewData["Message"]</h3>
<p>My updated about page.</p>
- 다시 마우스 오른쪽 버튼으로 프로젝트를 클릭한 다음 게시(Publish)를 선택해서 배포합니다.

- 응용 프로그램이 배포되고 나면 Azure에 변경된 내용이 정상적으로 반영되었는지 확인해봅니다.
정리
응용 프로그램의 테스트를 모두 마쳤다면 Azure 포털에서 응용 프로그램을 삭제합니다.
- 리소스 그룹(Resource groups)을 선택한 다음, 본문에서 생성한 리소스 그룹을 선택합니다.

- 리소스 그룹(Resource group) 블레이드에서 삭제(Delete)를 누릅니다.

- 리소스 그룹의 이름을 입력하고 삭제(Delete)를 누릅니다. 그러면 본문에서 생성한 예제 응용 프로그램과 다른 리소스들이 Azure에서 모두 삭제됩니다.
- ASP.NET Core MVC와 Visual Studio를 이용한 첫 번째 Web API 구현 2016-07-22 08:00
- Visual Studio로 Azure에 ASP.NET Core 웹 응용 프로그램 배포하기 2016-07-25 08:00
- dotnet watch를 활용한 ASP.NET Core 응용 프로그램 개발 2016-07-29 08:00
- 나노 서버에 ASP.NET Core 응용 프로그램 배포하기 2016-08-01 08:00
- Swagger를 이용한 ASP.NET Web API 도움말 페이지 만들기 2016-09-13 08:00