자습서: Azure의 클러스터에 Service Fabric 애플리케이션 배포
이 자습서는 시리즈의 2부입니다. Azure의 새 클러스터에 Azure Service Fabric 애플리케이션을 배포하는 방법을 알아봅니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- 클러스터 생성
- Visual Studio를 사용하여 원격 클러스터에 애플리케이션 배포
이 자습서 시리즈에서는 다음을 수행하는 방법을 보여 줍니다.
- .NET Service Fabric 애플리케이션 빌드
- 원격 클러스터에 애플리케이션 배포(이 자습서)
- ASP.NET Core 프런트 엔드 서비스에 HTTPS 엔드포인트 추가
- Azure Pipelines를 사용하여 CI/CD 구성
- 애플리케이션에 대한 모니터링 및 진단 설정
필수 조건
이 자습서를 시작하기 전에:
- Azure 구독이 없는 경우 무료 계정을 만드세요.
- Azure 개발 워크로드 및 ASP.NET 및 웹 개발 워크로드를 포함하여 Visual Studio 2019를 설치합니다.
- Service Fabric SDK를 설치합니다.
참고 항목
체험 계정은 가상 머신을 만들기 위한 요구 사항을 충족하지 못할 수 있습니다. 자습서를 완료하려면 가상 머신을 만들어야 합니다. 또한 회사 또는 학교 계정이 아닌 계정은 클러스터와 연결된 키 자격 증명 모음에 인증서를 만들 때 사용 권한 문제가 발생할 수 있습니다. 인증서를 만들 때 오류가 발생하는 경우 Azure Portal을 사용하여 클러스터를 대신 만듭니다.
투표 애플리케이션 샘플 다운로드
이 자습서 시리즈의 1부에서 투표 애플리케이션 샘플을 빌드하지 않은 경우 다운로드할 수 있습니다. 명령 창에서 다음 코드를 실행하여 로컬 컴퓨터에 샘플 애플리케이션 리포지토리를 복제합니다.
git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart
관리자 권한으로 실행 옵션을 사용하여 Visual Studio를 엽니다. 애플리케이션을 연 다음 애플리케이션을 빌드합니다.
클러스터 생성
이제 해당 애플리케이션이 준비되면 Service Fabric 클러스터를 만든 다음, 클러스터에 애플리케이션을 배포합니다. Service Fabric 클러스터는 마이크로 서비스를 배포하고 관리하는 네트워크에 연결된 가상 머신 또는 물리적 컴퓨터 집합입니다.
이 자습서에서는 Visual Studio IDE(통합 개발 환경)에서 새 3노드 테스트 클러스터를 만든 다음 해당 클러스터에 애플리케이션을 게시합니다. 프로덕션 클러스터를 만드는 방법에 대한 자세한 내용은 클러스터 만들기 및 관리를 참조하세요. Azure Portal, Azure PowerShell, Azure CLI 스크립트 또는 Azure Resource Manager 템플릿을 사용하여 이전에 만든 기존 클러스터에 애플리케이션을 배포할 수도 있습니다.
참고 항목
투표 애플리케이션은 다른 여러 애플리케이션처럼 Service Fabric 역방향 프록시를 사용하여 서비스 간에 통신합니다. Visual Studio를 사용하여 만든 클러스터에는 기본적으로 역방향 프록시가 사용하도록 설정되어 있습니다. 기존 클러스터에 배포하는 경우 투표 애플리케이션을 작동하도록 하려면 클러스터에서 역방향 프록시를 사용하도록 설정해야 합니다.
VotingWeb 서비스 엔드포인트 찾기
투표 애플리케이션의 프런트 엔드 웹 서비스는 특정 포트에서 수신합니다(이 자습서 시리즈의 1부의 단계를 따른 경우 포트 8080). 애플리케이션이 Azure에서 클러스터를 배포하는 경우 클러스터와 애플리케이션 모두 Azure 부하 분산 장치 뒤에서 실행됩니다. 규칙을 사용하여 Azure 부하 분산 장치에서 애플리케이션 포트를 열어야 합니다. 규칙은 부하 분산 장치를 통해 웹 서비스로 인바운드 트래픽을 보냅니다. 포트는 Endpoint
요소의 /VotingWeb/PackageRoot/ServiceManifest.xml 파일에서 설정됩니다.
<Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="8080" />
이후 단계에서 사용하는 서비스 엔드포인트를 기록해 둡니다. 기존 클러스터에 배포하는 경우 Azure PowerShell 스크립트를 통하거나 Azure Portal에서 이 클러스터에 대한 부하 분산 장치를 통해 Azure 부하 분산 장치에서 부하 분산 규칙 및 프로브를 만들어 이 포트를 엽니다.
Azure에서 테스트 클러스터 만들기
솔루션 탐색기에서 투표를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다.
연결 엔드포인트에서 새 클러스터 만들기를 선택합니다. 기존 클러스터에 배포하는 경우 목록에서 클러스터 엔드포인트를 선택합니다. Service Fabric 클러스터 만들기 대화 상자가 열립니다.
클러스터 탭에서 클러스터 이름(예: mytestcluster)을 입력하고, 구독을 선택하고, 클러스터에 대한 지역을 선택하고(예: 미국 중남부), 클러스터 노드의 수를 입력하고(테스트 클러스터에 대해 3개의 노드 권장), 리소스 그룹을 입력합니다(예: mytestclustergroup
). 다음을 선택합니다.
인증서 탭에서 클러스터 인증서에 대한 암호 및 출력 경로를 입력합니다. 자체 서명된 인증서는 PFX(개인 정보 교환) 파일로 만들어지고 지정된 출력 경로에 저장됩니다. 인증서는 노드-노드 및 클라이언트-노드 보안에 사용됩니다. 자체 서명된 인증서를 프로덕션 클러스터에 대해서는 사용하지 마세요. Visual Studio는 이 인증서를 사용하여 클러스터를 인증하고 애플리케이션을 배포합니다.
인증서 가져오기 확인란을 선택하여 컴퓨터의 CurrentUser\내 인증서 저장소에 PFX를 설치합니다. 그런 후에 다음을 선택합니다.
VM 세부 정보 탭에서 클러스터 관리자 계정에 대한 사용자 이름 및 암호를 입력합니다. 클러스터 노드에 대해 가상 머신 이미지 값과 각 클러스터 노드에 대해 가상 머신 크기 값을 선택합니다.
고급 탭을 선택합니다. 포트에서 이전 단계의 VotingWeb 서비스 엔드포인트를 입력합니다(예: 8080). 클러스터가 만들어지면 이러한 애플리케이션 포트는 클러스터에 트래픽을 전달하도록 Azure 부하 분산 장치에서 열립니다.
만들기를 선택하여 클러스터를 만듭니다. 이 프로세스는 몇 분 정도 걸립니다.
애플리케이션을 클러스터에 게시
새 클러스터가 준비되면 Visual Studio에서 직접 투표 애플리케이션을 배포할 수 있습니다.
솔루션 탐색기에서 투표를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다. 게시 대화 상자가 나타납니다.
연결 엔드포인트의 경우 이전 단계에서 만든 클러스터의 엔드포인트를 선택합니다. 예들 들어 mytestcluster.southcentralus.cloudapp.azure.com:19000
입니다. 고급 연결 매개 변수를 선택하는 경우 인증서 정보가 자동으로 채워집니다.
게시를 선택합니다.
애플리케이션이 배포된 후 브라우저를 열고 :8080
앞에 클러스터 주소를 입력합니다. 또는 구성된 다른 포트가 있는 경우 해당 포트를 입력할 수 있습니다. 예제는 http://mytestcluster.southcentralus.cloudapp.azure.com:8080
입니다. 애플리케이션이 Azure의 클러스터에서 실행되고 있습니다. 투표 웹 페이지에서 투표 옵션을 추가하고 삭제합니다.
다음 단계
다음 자습서를 진행합니다.