Azure Cloud Service에 Node.js 애플리케이션 빌드 및 배포(클래식)
Important
이제 Cloud Services(클래식)는 2024년 9월 1일부터 모든 고객을 대상으로 더 이상 사용되지 않습니다. 기존 실행 중인 배포는 Microsoft에서 중지 및 종료되며, 데이터는 2024년 10월부터 영구적으로 손실됩니다. 새 배포에서는 새로운 Azure Resource Manager 기반 배포 모델인 Azure Cloud Services(추가 지원)를 사용해야 합니다.
이 자습서에서는 Azure 클라우드 서비스에서 실행되는 Node.js 애플리케이션을 만드는 방법을 보여줍니다. Cloud Services는 Azure에서 확장 가능한 클라우드 애플리케이션의 구성 요소입니다. 이 클라우드 서비스는 애플리케이션의 프런트 엔드 및 백 엔드 구성 요소의 구분과 독립적인 관리 및 스케일 아웃을 허용합니다. Cloud Services는 각 역할을 안정적으로 호스팅할 수 있는 강력한 전용 가상 머신을 제공합니다.
팁
웹 사이트를 빌드하려는 경우 시나리오에 간단한 웹 사이트 프런트 엔드만 포함된 경우 간단한 웹앱 사용을 고려해 보십시오. 그러면 웹앱이 커지고 요구 사항이 변경될 때 클라우드 서비스로 쉽게 업그레이드할 수 있습니다.
이 자습서를 수행하여 웹 역할 내에서 호스트되는 웹 애플리케이션을 빌드합니다. 컴퓨팅 에뮬레이터를 사용하여 로컬에서 애플리케이션을 테스트한 다음, PowerShell 명령줄 도구를 사용하여 배포합니다.
애플리케이션은 "hello world" 애플리케이션입니다.
필수 조건
참고 항목
이 자습서는 Azure PowerShell을 사용하며,
- Azure PowerShell를 설치 및 구성합니다.
- [Azure SDK for .NET 2.7]을 다운로드 및 설치합니다. 설치 설정에서 다음을 선택합니다.
- MicrosoftAzureAuthoringTools
- MicrosoftAzureComputeEmulator
Azure 클라우드 서비스 프로젝트 만들기
기본 Node.js 스캐폴딩과 함께 새 Azure 클라우드 서비스 프로젝트를 만들려면 다음 작업을 수행하세요.
시작 메뉴 또는 시작 화면에서 관리자 권한으로 Windows PowerShell을 실행하고 Windows PowerShell을 검색합니다.
PowerShell을 연결 합니다.
프로젝트를 만들려면 다음 PowerShell cmdlet을 입력합니다.
New-AzureServiceProject helloworld
New-AzureServiceProject cmdlet은 클라우드 서비스에 Node.js 애플리케이션을 게시하기 위한 기본 구조를 생성합니다. 여기에는 Azure에 게시하는 데 필요한 구성 파일이 포함됩니다. 또한 이 cmdlet은 작업 디렉터리를 서비스에 대한 디렉터리로 변경합니다.
Cmdlet은 다음 파일을 만듭니다.
- ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg 및 ServiceDefinition.csdef는 애플리케이션을 게시하는 데 필요한 Azure 관련 파일입니다. 자세한 내용은 Azure에 대한 호스티드 서비스 만들기 개요(영문)를 참조하세요.
- deploymentSettings.json: Azure PowerShell 배포 cmdlet에 사용되는 로컬 설정이 저장됩니다.
다음 명령을 사용하여 새 웹 역할을 추가하려면
Add-AzureNodeWebRole
Add-AzureNodeWebRole cmdlet는 기본 Node.js 애플리케이션을 만듭니다. 또한 .csfg 및 .csdef 파일을 수정하여 새 역할에 대한 구성 항목을 추가합니다.
참고 항목
역할 이름을 지정하지 않으면 기본 이름이 사용됩니다. 첫번째 cmdlet 매개변수로 이름을 제공할 수 있습니다.
Add-AzureNodeWebRole MyRole
Node.js 앱은 웹 역할에 대한 디렉터리에 있는 server.js 파일에 정의됩니다(기본값은 WebRole1). 코드는 다음과 같습니다.
var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
}).listen(port);
이 코드는 클라우드 환경에서 지정된 포트 번호를 사용한다는 점을 제외하고 기본적으로 nodejs.org 웹사이트의 "Hello World" 예제와 동일합니다.
애플리케이션을 Azure에 배포합니다.
참고 항목
이 자습서를 완료하려면 Azure 계정이 필요합니다. MSDN 구독자 혜택을 활성화하거나 무료 계정을 등록할 수 있습니다.
Azure 게시 설정 다운로드
애플리케이션을 Azure에 배포하려면 먼저 Azure 구독에 대한 게시 설정을 다운로드해야 합니다.
다음 Azure PowerShell cmdlet를 실행합니다.
Get-AzurePublishSettingsFile
이 명령은 브라우저를 사용하여 게시 설정 다운로드 페이지로 이동합니다. Microsoft 계정으로 로그인하라는 메시지가 표시될 수 있습니다. 그럴 경우 Azure 구독과 연결된 계정을 사용합니다.
다운로드한 프로필을 쉽게 액세스할 수 있는 파일 위치에 저장합니다.
다음 Cmdlet를 실행하여 다운로드한 게시 프로필을 가져옵니다.
Import-AzurePublishSettingsFile [path to file]
참고 항목
게시 설정을 가져온 후, 다른 사용자가 계정에 액세스할 수 있는 정보가 포함되어 있으므로 다운로드한 .publishSettings 파일 삭제를 고려합니다.
애플리케이션 게시
게시하려면 다음 명령을 실행합니다.
$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName -Location "East US" -Launch
- -ServiceName은 배포에 대한 이름을 지정합니다. 이 값의 이름은 고유해야 합니다. 그렇지 않으면 게시 프로세스가 실패합니다. Get-Date 명령은 이름을 고유하게 만들어야 하는 날짜/시간 문자열을 추적합니다.
- -Location은 애플리케이션을 호스트하는 데이터센터를 지정합니다. 사용 가능한 데이터센터 목록을 보려면 Get-AzureLocation cmdlet을 사용하세요.
- -Launch는 브라우저 창을 열고 배포가 완료된 후 호스트된 서비스를 탐색합니다.
게시가 성공하면 스크린샷과 같은 응답이 표시됩니다.
참고 항목
애플리케이션이 처음 게시된 후 몇 분 지나야 배포되어 사용이 가능할 수도 있습니다.
배포가 완료되면 브라우저 창이 열리고 클라우드 서비스로 이동합니다.
이제 애플리케이션이 Azure에서 실행되고 있습니다.
Publish-AzureServiceProject cmdlet은 다음 단계를 수행합니다.
- 배포할 패키지를 만듭니다. 이 패키지에는 애플리케이션 폴더의 모든 파일이 포함됩니다.
- 스토리지 계정이 없는 경우 새 스토리지 계정을 만듭니다. Azure Storage 계정은 배포 중 애플리케이션 패키지를 저장하는 데 사용됩니다. 배포가 완료된 후에는 스토리지 계정을 삭제해도 안전합니다.
- 클라우드 서비스가 아직 없는 경우 새 클라우드 서비스를 만듭니다. 클라우드 서비스는 애플리케이션이 Azure에 배포될 때 호스트되는 컨테이너입니다. 자세한 내용은 Azure에 대한 호스티드 서비스 만들기 개요(영문)를 참조하세요.
- 배포 패키지를 Azure에 게시합니다.
애플리케이션 중지 및 삭제
애플리케이션을 배포한 후 사용하지 않도록 설정하여 추가 비용을 방지할 수 있습니다. Azure는 사용된 서버 시간의 시간당 웹 역할 인스턴스 요금을 청구합니다. 서버 시간은 애플리케이션이 배포된 다음에 사용되며 인스턴스가 실행되지 않고 중지된 상태인 경우에도 사용됩니다.
Windows PowerShell 창에서, 이전 섹션에서 만든 서비스 배포를 다음 cmdlet을 사용하여 중지합니다.
Stop-AzureService
서비스를 중지하려면 몇 분 정도 걸릴 수 있습니다. 서비스가 중지되면 서비스가 중지되었다는 메시지가 표시됩니다.
서비스를 삭제하려면 다음 cmdlet을 호출합니다.
Remove-AzureService
메시지가 표시되면 Y 를 입력하여 서비스를 삭제합니다.
서비스를 삭제하려면 몇 분 정도 걸릴 수 있습니다. 서비스를 삭제하면 서비스가 삭제되었음을 알리는 메시지가 표시됩니다.
참고 항목
서비스를 삭제해도 서비스가 처음 게시될 때 만들어진 스토리지 계정은 삭제되지 않으므로 사용된 스토리지에 대해 계속 요금이 청구됩니다. 스토리지를 전혀 사용하지 않으면 삭제하는 것이 좋습니다.
다음 단계
자세한 내용은 Node.js 개발자 센터를 참조하세요.