Mesh Cloud Scripting 인프라 및 관리
개요
이 문서에서는 클라우드 스크립팅 프로젝트를 빌드하고 게시할 때 Azure 구독에 배포되는 서비스를 포함하여 Mesh Clouding 인프라 및 관리의 다양한 측면에 대해 알아봅니다.
배포된 리소스
Mesh Cloud Scripting은 . 클라우드에서 실행되는 NET 기반 앱입니다. 고객의 Azure 구독에 배포된 Mesh Cloud Scripting 클라우드 인프라에는 다음 Azure 리소스가 포함됩니다.
App Service 계획: 웹앱을 실행할 수 있는 컴퓨팅 클러스터를 나타냅니다. 하나 이상의 다른 웹앱을 실행할 수도 있습니다.
Azure VNet: App Service 인스턴스가 배포되어 서로 통신할 수 있는 가상 네트워크 리소스입니다.
Azure Web App Instance: 특정 VM에서 실행되는 웹앱의 인스턴스를 나타냅니다.
Azure Storage 계정: 게시된 콘텐츠 및 Azure 웹앱 인스턴스에 대한 정보를 보유합니다. 다음 두 가지 구성 요소로 세분화됩니다.
- Mesh Cloud Scripting Service Blob Storage: Mesh Uploader에서 업로드한 메시 클라우드 스크립팅 서비스 Blob을 보유합니다.
- Orleans 멤버 자격 테이블: Orleans Silo 인스턴스의 활동성에 대한 정보를 보유합니다.
Log Analytics 작업 영역: App Service에서 실행되는 Mesh Cloud Scripting Service에서 내보낸 로그를 보유합니다.
Application Insights: APM(애플리케이션 성능 모니터링) 기능을 제공합니다. APM 도구는 개발, 테스트 및 프로덕션으로 애플리케이션을 모니터링하는 데 유용합니다.
App Service 계획
App Service 계획은 웹앱을 실행할 수 있도록 하는 컴퓨팅 리소스 집합을 정의합니다.
특정 영역(예: 서유럽)에서 App Service 계획을 만들 때 해당 지역에서 해당 계획에 대한 컴퓨팅 리소스 세트를 만듭니다. App Service 계획에 정의된 대로 이 App Service 계획에 추가한 모든 앱은 이러한 컴퓨팅 리소스에서 실행됩니다. 각 App Service 계획은 다음을 정의합니다.
- 운영 체제(Windows, Linux)
- 지역(미국 서부, 미국 동부 등)
- VM 인스턴스 수
- VM 인스턴스 크기(소량, 중간, 대규모)
- 가격 책정 계층(무료, 공유, 기본, 표준, 프리미엄, 프리미엄V2, 프리미엄V3, 격리, 격리V2)
자세한 내용은 App Service 계획 문서를 참조 하세요.
App Service 계획에 대한 Mesh 도구 키트 기본 리소스 설정
- SKU 이름: P1v2
- SKU 계층: PremiumV2
- SKU 용량: 1
- 종류: Linux
- 예약됨: True
Mesh Cloud Scripting Services의 컨텍스트에서 App Service 계획은 컴퓨팅 구성 요소입니다. 자동으로 크기를 조정하고 서로 다른 인스턴스가 서로 통신하는 방식(네트워킹)을 처리할 수 있습니다. Mesh Cloud Scripting Services를 실행하고 관리하는 애플리케이션인 CloudHost는 현재 Docker 이미지로 제공되므로 Linux 기반 계획을 사용합니다. 프리미엄 플랜은 프로덕션 워크로드에 더 적합합니다.
기본값에 대한 자세한 내용은 App Service 계획 리소스에 대한 Bicep 및 ARM 템플릿 참조를 참조 하세요.
App Service
Azure App Service는 웹 애플리케이션, REST API 및 모바일 백 엔드를 호스트하는 HTTP 기반 서비스입니다. App Service는 보안, 부하 분산, 자동 스케일링, 자동화된 관리 등 Microsoft Azure의 기능을 애플리케이션에 추가합니다. App Service를 사용하면 Azure 컴퓨팅 리소스에 대한 비용을 지불하게 됩니다. 사용할 컴퓨팅 리소스는 앱을 실행하는 App Service 계획에 따라 결정됩니다.
자세한 내용은 App Service Docs를 참조하세요.
Mesh 도구 키트 기본 리소스 설정 - App Service
- httpsOnly: True
- alwaysOn: True
- vnetPrivatePorts 수: 2
- vnetRouteAllEnabled: True
- vnetName: 기본 Virtual Network 이름
기본값에 대한 자세한 내용은 App Service 계획 리소스에 대한 Bicep 및 ARM 템플릿 참조를 참조 하세요.
Virtual Network
Azure Virtual Network는 Azure의 개인 네트워크의 기본 구성 요소입니다. 가상 네트워크를 사용하면 Azure VM(Virtual Network) 같은 여러 형식의 Azure 리소스가 Azure 리소스, 인터넷, 온-프레미스 네트워크와 안전하게 통신할 수 있습니다. 가상 네트워크는 데이터 센터에서 운영하는 기존 네트워크와 비슷합니다. Azure Virtual Network는 크기 조정, 가용성 및 격리와 같은 Azure 인프라의 추가 혜택을 제공합니다.
자세한 내용은 Virtual Network 문서를 참조 하세요.
Mesh 도구 키트 기본 리소스 설정 - Virtual Network
- AddressSpace addressPrefixes: 10.0.0.0/16
- 서브넷 addressPrefix: 10.0.0.0/24
- 서브넷 위임 이름: 위임
- 서브넷 위임 serviceName: Microsoft.Web/serverFarms
기본값에 대한 자세한 내용은 Virtual Network 리소스에 대한 Bicep 및 ARM 템플릿 참조를 참조 하세요.
스토리지 계정
Azure Storage 계정에는 Blob, 파일, 큐, 테이블 및 디스크 등, 모든 Azure Storage 데이터 개체가 포함됩니다. 스토리지 계정은 HTTP 또는 HTTPS를 통해 전 세계 어디에서나 액세스할 수 있는 Azure Storage 데이터에 고유한 네임스페이스를 제공합니다. 스토리지 계정의 데이터는 지속적이고 가용성이 높으며 안전하고 대규모로 확장 가능합니다.
자세한 내용은 Storage 계정 문서를 참조 하세요.
Mesh 도구 키트 기본 리소스 설정 - Storage 계정
- SKU 이름: Standard_LRS
- 종류: StorageV2
기본값에 대한 자세한 내용은 스토리지 계정 리소스에 대한 Bicep 및 ARM 템플릿 참조를 참조 하세요.
Log Analytics 작업 영역
Log Analytics 작업 영역은 Azure Monitor와 Microsoft Sentinel 및 클라우드용 Microsoft Defender와 같은 다른 Azure 서비스의 로그 데이터를 위한 고유한 환경입니다. Azure Monitor 로그 저장소의 데이터에 대한 로그 쿼리를 편집하고 실행하는 데 사용되는 Azure Portal의 도구입니다.
자세한 내용은 Log Analytics 작업 영역 문서를 참조 하세요.
Mesh 도구 키트 기본 리소스 설정 - Log Analytics 작업 영역
- forceCmkForQuery: false
- retentionInDays: 30
- SKU 이름: PerGB2018
- dailyQuotaGb: 2GB
기본값에 대한 자세한 내용은 작업 영역 리소스에 대한 Bicep 및 ARM 템플릿 참조를 참조 하세요.
Application Insights
Application Insights는 Azure Monitor가 확장된 것으로서, 애플리케이션 성능 모니터링("APM") 기능이 있습니다. APM 도구는 다음과 같은 방법으로 개발, 테스트 및 프로덕션까지 애플리케이션을 모니터링하는 데 유용합니다.
애플리케이션의 성능을 사전에 파악합니다. 애플리케이션 실행 데이터를 사후에 검토하여 인시던트의 원인을 확인합니다. 애플리케이션 작업 및 상태를 설명하는 메트릭 및 원격 분석 데이터를 수집하는 것과 함께 Application Insights를 사용하여 애플리케이션 로그 추적 데이터를 수집하고 저장할 수 있습니다.
자세한 내용은 Application Insights 문서를 참조 하세요.
Mesh 도구 키트 기본 리소스 설정 - Application Insights
- 종류: 웹
- Request_Source: rest
- WorkspaceResourceId: 기본 Log Analytics 작업 영역 ID입니다.
기본값에 대한 자세한 내용은 Virtual Network 리소스에 대한 Bicep 및 ARM 템플릿 참조를 참조 하세요.
Mesh Cloud Scripting Services 인프라 다이어그램
트래픽은 각 구성 요소를 통해 흐릅니다.
클라이언트 <-> AppService 인스턴스: 클라이언트 요청/응답(연결 요청, 클라우드 스크립트 알림 등).
App Service 인스턴스: TCP ping 메시지를 사용하여 활동성을 확인합니다.
App Service 인스턴스 <-> LogAnalytics/AppInsights: 애플리케이션 원격 분석(애플리케이션 로그).
App Service 인스턴스 <-> 멤버 자격 테이블: 각 App Service 인스턴스에 대한 활동성 정보입니다.
App Service 인스턴스 <-> Blob Storage: 클라우드에서 실행되는 클라우드 스크립트의 zip입니다.
리소스 공급자 등록
등록할 서비스는 다음과 같습니다.
- Microsoft.Web
- Microsoft.Storage
- Microsoft.Network
- Microsoft.Insights
- Microsoft.OperationalInsights
참고
오류에 대한 도움이 필요한 경우 리소스 공급자 등록 오류를 참조 하세요.
Azure 설명서에 설명된 대로 서비스 등록은 구독 수준에서 수행됩니다. 즉, 다른 리소스 그룹에 대한 서비스를 등록할 필요가 없습니다.
Mesh Cloud Scripting Service 배포에 대한 액세스 제어
개발자는 배포에 사용할 수 있는 이메일 계정이 있어야 합니다. 새 계정 또는 기존 계정일 수 있습니다.
Azure 보안 그룹을 통해 액세스 제어를 관리하는 경우 이 그룹(예: "Mesh Cloud Scripting Services Developers")을 만듭니다. Microsoft 365 그룹 유형과 비교하여 Azure Security Group에 대한 자세한 내용은 그룹 및 그룹 멤버 자격에 대한 자세한 내용을 참조 하세요.
개발자가 Azure 구독에 액세스하는 방법을 결정합니다. 개발자가 디렉터리의 네이티브 멤버인지 게스트 사용자인지에 따라 결정됩니다.
- 액세스 제어를 쉽게 관리하려는 경우 위의 2단계에서 만든 Azure 보안 그룹에 네이티브 멤버를 추가할 수 있습니다.
- 게스트 사용자를 Azure 구독에 추가하거나 Azure 보안 그룹에 추가할 수 있습니다(위의 2단계 참조).
게스트 사용자에 대한 자세한 내용은 Azure Portal에서 B2B 협업 사용자 추가를 참조 하세요 .
액세스 제어에 대한 권장 사항
개발자에게 Azure에서 Mesh Cloud Scripting Services 클라우드 인프라를 프로비전할 수 있는 액세스 권한을 부여하는 방법에 대한 몇 가지 권장 사항은 다음과 같습니다. 이는 액세스 제어 정책이 얼마나 제한적인지에 따라 달라집니다.
Mesh Cloud Scripting Services 에 대해 프로비전된 전체 구독에 대해 개발자에게 기여자 역할을 부여합니다.
Mesh Cloud Scripting Services 클라우드 인프라 배포를 위한 전용 리소스 그룹을 만들고 개발자에게 이 리소스 그룹의 기여자 역할을 부여합니다. 두 번째 필수 구성 요소에서 만든 Azure 보안 그룹(즉, "Mesh Cloud Scripting Services Developers")을 통해 이 작업을 수행할 수 있습니다. 이렇게 하면 모든 리소스를 관리할 수 있는 모든 권한이 부여되지만 Azure RBAC에서 역할을 할당하거나, Azure Blueprints에서 할당을 관리하거나, 이미지 갤러리를 공유할 수는 없습니다.
Mesh Cloud Scripting Services 클라우드 인프라를 만들고 관리하는 데 필요한 최소 권한이 있는 사용자 지정 역할을 Azure에서 만듭니다.
두 번째 필수 구성 요소인 "Mesh Cloud Scripting Services Developers"에서 만든 Azure 보안 그룹에 이 역할을 직접 할당할 수 있습니다.
만드는 사용자 지정 역할에 대한 권장 권한은 다음과 같습니다.
업로드할 JSON 파일은 다음과 유사해야 합니다.**:
{ "id": "88888-8888-8888-888-8888888", "properties": { "roleName": "MeshCloudScriptingServiceDeployer", "description": "Grants access to Mesh Cloud Scripting Services resources", "assignableScopes": [ "/subscriptions/{subscriptionID}" ], "permissions": [ { "actions": [ "*/read", "Microsoft.Authorization/*/read", "Microsoft.ClassicCompute/virtualMachines/extensions/*", "Microsoft.ClassicStorage/storageAccounts/listKeys/action", "Microsoft.Compute/virtualMachines/extensions/*", "Microsoft.HybridCompute/machines/extensions/write", "Microsoft.Insights/alertRules/*", "Microsoft.Insights/autoscalesettings/*", "Microsoft.Insights/components/*", "Microsoft.Insights/diagnosticSettings/*", "Microsoft.Insights/generateLiveToken/read", "Microsoft.Insights/metricAlerts/*", "Microsoft.Insights/scheduledqueryrules/*", "Microsoft.Insights/topology/read", "Microsoft.Insights/transactions/read", "Microsoft.Insights/webtests/*", "Microsoft.Network/*", "Microsoft.OperationalInsights/*", "Microsoft.OperationsManagement/*", "Microsoft.ResourceHealth/availabilityStatuses/read", "Microsoft.Resources/deployments/*", "Microsoft.Resources/subscriptions/resourcegroups/deployments/*", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Storage/storageAccounts/*", "Microsoft.Support/*", "Microsoft.Web/certificates/*", "Microsoft.Web/hostingEnvironments/Join/Action", "Microsoft.Web/listSitesAssignedToHostName/read", "Microsoft.Web/serverFarms/join/action", "Microsoft.Web/serverFarms/*", "Microsoft.Web/sites/*" ], "notActions": [], "dataActions": [], "notDataActions": [] } ] } }
참고 항목
MeshCloudScriptingServiceDeployer 사용자 지정 역할은 사용자가 리소스 그룹을 만들 수 없습니다. 사용자가 리소스 그룹을 만들려면 Microsoft.Resources/subscriptions/resourcegroups/쓰기 권한도 필요합니다.
Mesh Cloud Scripting Services의 할당량 제한 사항
Mesh Cloud Scripting Services 인프라는 프리미엄 App Service Linux 계획(P1V2)을 활용합니다. Mesh Cloud Scripting Service를 배포하는 동안 발생할 수 있는 App Service 제한은 다음과 같습니다.
리소스 | 프리미엄(P1V2) |
---|---|
Azure 앱 Service 계획당 웹, 모바일 또는 API 앱 | 제한 없음 |
App Service 계획 | 리소스 그룹당 100 |
참고 항목
앱 및 스토리지 할당량은 달리 명시되지 않는 한 App Service 계획에 따라 다릅니다.
참고 항목
이러한 컴퓨터에서 호스트할 수 있는 실제 앱 수는 앱의 활동, 컴퓨터 인스턴스의 크기 및 해당 리소스 사용률에 따라 달라집니다.
"이 지역에는 구독에 대한 0개의 PremiumV2 인스턴스 할당량이 있습니다. 다른 지역 또는 SKU를 선택해 보세요." Azure 구독 제한 및 할당량을 참조 하세요.
부실 메시 클라우드 스크립팅 서비스 정리
부실하거나 사용하지 않는 Mesh Cloud Scripting 서비스가 있는 경우 다음 단계에 따라 Mesh Cloud Scripting 리소스를 찾아 제거합니다.
Azure Portal에 로그인합니다.
"모든 리소스" 탭으로 이동합니다.
"모든 리소스" 페이지에서 다음을 수행합니다.
a. 적합한 구독을 선택합니다.
b. EnvironmentName 태그 를 사용하여 필터를 추가합니다.
c. 삭제하려는 환경과 일치하는 리소스를 찾습니다.
3C단계에서 찾은 각 리소스의 이름 옆에 있는 줄임표를 클릭한 다음 드롭다운에서 삭제를 클릭하여 부실 메시 클라우드 스크립팅 서비스를 정리합니다. 또는 이 리소스 삭제 문서에 설명된 대로 Azure CLI를 사용하여 이름으로 리소스를 삭제할 수 있습니다.