빠른 시작 템플릿을 이용해 Azure Cloud Shell을 가상 네트워크(VNet)에 배포하려면 먼저 몇 가지 필수 조건을 충족해야 합니다. 구독에 대한 소유자 역할을 할당받아야 합니다. 역할을 보고 할당하는 방법은 구독 소유자 목록을 참조하세요.
이 문서에서는 Azure Cloud Shell을 가상 네트워크에 구성하고 배포하는, 다음과 같은 단계를 안내합니다.
- 리소스 공급자를 등록합니다.
- 필요한 정보를 수집합니다.
- Azure Cloud Shell - VNet Azure Resource Manager 템플릿(ARM 템플릿)을 사용하여 가상 네트워크를 만듭니다.
- Azure Cloud Shell - VNet 스토리지 ARM 템플릿을 사용하여 가상 네트워크 스토리지 계정을 만듭니다.
- 가상 네트워크에서 Cloud Shell을 구성하고 사용합니다.
1. 리소스 공급자 등록
Cloud Shell이 특정 Azure 리소스에 액세스할 수 있어야 합니다. 리소스 공급자를 통해 해당 액세스를 제공합니다. 다음 리소스 공급자가 구독에 등록되어 있어야 합니다.
- Microsoft.CloudShell
- Microsoft.ContainerInstance
- Microsoft.Relay
테넌트가 생성된 시기에 따라, 이러한 공급자 중 일부가 이미 등록되어 있을 수 있습니다.
모든 리소스 공급자와 구독 등록 상태를 보려면 다음을 수행해야 합니다.
- Azure Portal에 로그인합니다.
- Azure Portal 메뉴에서 구독을 검색합니다. 사용 가능한 옵션에서 선택합니다.
- 보려는 구독을 선택합니다.
- 왼쪽 메뉴의 설정에서 리소스 공급자를 선택합니다.
- 검색 상자에
cloudshell을 입력해 리소스 공급자를 검색합니다. - 공급자 목록에서 Microsoft.CloudShell 리소스 공급자를 선택합니다.
- 등록을 선택하고 상태가 미등록에서 등록됨으로 변경될 때까지 기다립니다.
- Microsoft.ContainerInstance 및 Microsoft.Relay 리소스 공급자를 대상으로 이전 단계를 반복합니다.
2. 필수 정보 수집
Cloud Shell을 배포하려면 먼저 다양한 정보를 수집해야 합니다.
기본 Cloud Shell 인스턴스를 이용해 필수 정보를 수집하고 필수 리소스를 만들 수 있습니다. Cloud Shell 가상 네트워크 배포에 사용하는 전용 리소스를 만들어야 합니다. 모든 리소스는 동일한 Azure 지역 및 동일한 리소스 그룹에 있어야 합니다.
다음 값을 작성합니다.
- 구독: Cloud Shell 가상 네트워크 배포를 위한 리소스 그룹이 포함된 구독의 이름입니다.
- 리소스 그룹: Cloud Shell 가상 네트워크 배포를 위한 리소스 그룹의 이름입니다.
- 지역: 리소스 그룹의 위치입니다.
- 가상 네트워크: Cloud Shell 가상 네트워크의 이름입니다.
-
서브넷 주소 범위 - 이 배포는 서브넷 3개를 만듭니다. 각 서브넷의 주소 범위를 계획해야 합니다.
- 컨테이너 서브넷 - 사용해야 하는 동시 세션 수를 지원하기에 충분한 수의 IP 주소가 필요합니다.
- 릴레이 서브넷 - 릴레이 서브넷을 위한 IP 주소가 하나 이상 필요합니다.
- 스토리지 서브넷 이름 - 사용해야 하는 동시 세션 수를 지원하기에 충분한 수의 IP 주소가 필요합니다.
- Azure 컨테이너 인스턴스 OID - 리소스 그룹을 위한 Azure 컨테이너 인스턴스의 ID입니다.
- Azure Relay 네임스페이스 - 템플릿을 이용해 생성한 Azure Relay 리소스에 할당할 이름입니다.
리소스 그룹 생성하기
Azure CLI, PowerShell 또는 Azure Portal을 이용해 리소스 그룹을 만들 수 있습니다. 자세한 내용은 다음 문서를 참조하세요.
- Azure Portal을 이용해 Azure 리소스 그룹 관리
- Azure CLI를 이용해 Azure 리소스 그룹 관리
- Azure PowerShell을 이용해 Azure 리소스 그룹 관리
가상 네트워크 만들기
Azure Portal, Azure CLI 또는 Azure PowerShell을 이용해 가상 네트워크를 만들 수 있습니다. 자세한 내용은 다음 문서를 참조하세요.
참고
Cloud Shell 서브넷의 컨테이너 서브넷 주소 접두사를 설정할 때는 동시에 실행해야 하는 Cloud Shell 세션 수를 반드시 고려해야 합니다. Cloud Shell 세션 수가 컨테이너 서브넷의 사용 가능한 IP 주소 수를 초과하면, 해당 세션 사용자는 Cloud Shell에 연결할 수 없습니다. 자신의 구체적인 요구 사항을 충족할 수 있도록 컨테이너 서브넷 범위를 늘리세요. 자세한 내용은 가상 네트워크 서브넷 추가, 변경 또는 삭제의 "서브넷 설정 변경" 단원을 참조하세요.
Azure 컨테이너 인스턴스 ID 얻기
Azure 컨테이너 인스턴스 ID는 각 테넌트에 대한 고유한 값입니다. 빠른 시작 템플릿에서 이 식별자를 사용하여 Cloud Shell을 위한 가상 네트워크를 구성합니다. 명령줄에서 ID를 가져오는 방법은 Azure Container Instance ID를 얻는 다른 방법을 참조하세요.
Azure Portal에 로그인합니다. 홈페이지에서 Microsoft Entra ID를 선택합니다. 아이콘이 표시되지 않는다면 위쪽 검색 창에
Microsoft Entra ID를 입력하세요.왼쪽 메뉴에서 개요를 선택합니다. 그런 다음 검색 창에
azure container instance service를 입력합니다.결과에 있는 엔터프라이즈 애플리케이션에서 Azure 컨테이너 인스턴스 서비스를 선택합니다.
Azure 컨테이너 인스턴스 서비스의 개요 페이지에서, 속성 아래에 나열된 개체 ID 값을 찾습니다.
이 ID는 가상 네트워크를 위한 빠른 시작 템플릿에서 사용합니다.
3. ARM 템플릿을 이용해 필수 네트워크 리소스 만들기
가상 네트워크에서 Cloud Shell 리소스를 만들려면 Azure Cloud Shell - VNet이라는 ARM 템플릿을 사용해야 합니다. 이 템플릿은 이전에 만든 가상 네트워크 아래에 서브넷 3개를 만듭니다. 제공된 서브넷 이름을 변경할 수 있고 기본값을 사용할 수도 있습니다.
참고
ACI(Azure Container Instances) 네트워크 프로필 은 더 이상 사용되지 않습니다. 2026년 중반부터 가상 네트워크에서 Cloud Shell을 배포할 때 네트워크 프로필이 더 이상 필요하지 않습니다. 기존 사용자는 Cloud Shell에서 일회성 안내 환경을 통해 가상 네트워크 구성 및 컨테이너 서브넷을 확인할 수 있습니다. 추가 고객 작업은 필요하지 않습니다.
가상 네트워크와 서브넷에는 유효한 IP 주소를 할당해야 합니다. 다음 리소스를 지원할 수 있는 충분한 수의 주소가 필요합니다.
- 릴레이 서브넷를 위한 하나 이상의 IP 주소
- 컨테이너 서브넷에는 사용해야 하는 동시 세션 수를 지원하기에 충분한 수의 IP 주소가 있어야 합니다.
ARM 템플릿에는 이전에 생성한 리소스에 대한 특정 정보와 새 리소스의 명명 정보가 필요합니다. 이 정보는 양식에 미리 입력된 정보를 이용해 입력됩니다.
템플릿에는 다음과 같은 정보가 필요합니다.
- 구독: Cloud Shell 가상 네트워크를 위한 리소스 그룹이 포함된 구독의 이름입니다.
- 리소스 그룹: 기존 리소스 그룹 또는 새로 만든 리소스 그룹의 이름입니다.
- 지역: 리소스 그룹의 위치입니다.
- 가상 네트워크: Cloud Shell 가상 네트워크의 이름입니다.
- 네트워크 보안 그룹: 템플릿을 이용해 만드는 NSG(네트워크 보안 그룹)에 할당할 이름입니다.
- Azure 컨테이너 인스턴스 OID - 리소스 그룹을 위한 Azure 컨테이너 인스턴스의 ID입니다.
다음 정보로 양식을 작성합니다.
| 프로젝트 세부 정보 | 값 |
|---|---|
| 구독 | 기본값은 현재 구독 컨텍스트입니다. 이 예시에서는 Contoso를 사용합니다. |
| Resource group | 필수 조건 정보에서 리소스 그룹의 이름을 입력합니다. 이 예시에서는 rg-cloudshell-eastus를 사용합니다. |
| 인스턴스 세부 정보 | 값 |
|---|---|
| 지역 | 기본 지역이 미리 입력되어 있습니다. 이 예시에서는 East US를 사용합니다. |
| 기존 VNET 이름 | 수집한 필수 조건 정보의 값을 입력합니다. 이 예시에서는 vnet-cloudshell-eastus를 사용합니다. |
| 릴레이 네임스페이스 이름 | 템플릿을 이용해 만드는 릴레이 리소스에 할당할 이름을 만듭니다. 이 예시에서는 arn-cloudshell-eastus를 사용합니다. |
| Nsg 이름 | NSG의 이름을 입력합니다. 배포는 이 NSG를 만들고 NSG에 액세스 규칙을 할당합니다. |
| Azure Container Instance OID | 수집한 필수 조건 정보의 값을 입력합니다. 이 예시에서는 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb를 사용합니다. |
| 컨테이너 서브넷 이름 | 기본값은 cloudshellsubnet입니다. 컨테이너에 사용할 서브넷 이름을 입력합니다. |
| 컨테이너 서브넷 주소 접두사 | 이 문서에 나오는 예시에서는 Cloud Shell 인스턴스에 대해 254개의 IP 주소를 제공하는 10.0.1.0/24를 사용합니다. |
| 릴레이 서브넷 이름 | 기본값은 relaysubnet입니다. 릴레이가 포함된 서브넷의 이름을 입력합니다. |
| 릴레이 서브넷 주소 접두사 | 이 예시에서는 10.0.2.0/24를 사용합니다. |
| 스토리지 서브넷 이름 | 기본값은 storagesubnet입니다. 스토리지가 포함된 서브넷의 이름을 입력합니다. |
| 스토리지 서브넷 주소 접두사 | 이 예시에서는 10.0.3.0/24를 사용합니다. |
| 프라이빗 엔드포인트 이름 | 기본값은 cloudshellRelayEndpoint입니다. 컨테이너가 포함된 서브넷의 이름을 입력합니다. |
| 태그 이름 | 기본값은 {"Environment":"cloudshell"}입니다. 그대로 두거나 태그를 더 추가합니다. |
| 위치 | 기본값은 [resourceGroup().location]입니다. 변경하지 않고 그대로 유지합니다. |
양식 작성이 완료되면 검토 + 만들기를 선택하고 네트워크 ARM 템플릿을 구독에 배포합니다.
4. ARM 템플릿을 이용해 가상 네트워크 스토리지 만들기
가상 네트워크에서 Cloud Shell 리소스를 만들려면 Azure Cloud Shell - VNet 스토리지라는 ARM 템플릿을 사용해야 합니다. 템플릿은 스토리지 계정을 만들고 이 계정을 프라이빗 가상 네트워크에 할당합니다.
ARM 템플릿에는 이전에 생성한 리소스에 대한 특정 정보와 새 리소스의 명명 정보가 필요합니다.
템플릿에는 다음과 같은 정보가 필요합니다.
- 구독: Cloud Shell 가상 네트워크를 위한 리소스 그룹이 포함된 구독의 이름입니다.
- 리소스 그룹: 기존 리소스 그룹 또는 새로 만든 리소스 그룹의 이름입니다.
- 지역: 리소스 그룹의 위치입니다.
- 기존 가상 네트워크 이름: 이전에 생성한 가상 네트워크의 이름입니다.
- 기존 스토리지 서브넷 이름: 네트워크 빠른 시작 템플릿을 이용해 만든 스토리지 서브넷의 이름입니다.
- 기존 컨테이너 서브넷 이름: 네트워크 빠른 시작 템플릿을 이용해 만든 컨테이너 서브넷의 이름입니다.
다음 정보로 양식을 작성합니다.
| 프로젝트 세부 정보 | 값 |
|---|---|
| 구독 | 기본값은 현재 구독 컨텍스트입니다. 이 예시에서는 Contoso를 사용합니다. |
| Resource group | 필수 조건 정보에서 리소스 그룹의 이름을 입력합니다. 이 예시에서는 rg-cloudshell-eastus를 사용합니다. |
| 인스턴스 세부 정보 | 값 |
|---|---|
| 지역 | 기본 지역이 미리 입력되어 있습니다. 이 예시에서는 East US를 사용합니다. |
| 기존 VNET 이름 | 이 예시에서는 vnet-cloudshell-eastus를 사용합니다. |
| 기존 스토리지 서브넷 이름 | 네트워크 템플릿을 이용해 만든 리소스의 이름을 입력합니다. |
| 기존 컨테이너 서브넷 이름 | 네트워크 템플릿을 이용해 만든 리소스의 이름을 입력합니다. |
| 스토리지 계정 이름 | 새 스토리지 계정의 이름을 만듭니다. 이 예시에서는 myvnetstorage1138를 사용합니다. |
| 파일 공유 이름 | 기본값은 acsshare입니다. 생성할 파일 공유의 이름을 입력합니다. |
| 리소스 태그 | 기본값은 {"Environment":"cloudshell"}입니다. 그대로 두거나 태그를 더 추가합니다. |
| 위치 | 기본값은 [resourceGroup().location]입니다. 변경하지 않고 그대로 유지합니다. |
양식 작성이 완료되면 검토 + 만들기를 선택하고 네트워크 ARM 템플릿을 구독에 배포합니다.
5. 가상 네트워크를 사용하도록 Cloud Shell을 구성
프라이빗 Cloud Shell 인스턴스를 배포한 후에는, 모든 Cloud Shell 사용자가 새 프라이빗 인스턴스를 사용하도록 구성을 변경해야 합니다.
프라이빗 인스턴스를 배포하기 전에 기본 Cloud Shell 인스턴스를 사용했다면, 사용자 설정을 초기화해야 합니다.
Cloud Shell을 엽니다.
메뉴 모음에서 Cloud Shell 설정을 선택합니다.
사용자 설정 초기화를 선택한 다음 초기화를 선택합니다. 사용자 설정을 초기화하면 최초 사용자 환경이 트리거됩니다.
선호하는 셸 환경(Bash 또는 PowerShell)을 선택합니다.
시작 대화 상자에서 다음을 수행합니다.
- 스토리지 계정 탑재를 선택합니다.
- 스토리지 계정 구독 드롭다운 목록에서 구독을 선택합니다.
- 기존 프라이빗 가상 네트워크 사용 확인란을 선택합니다.
적용을 선택하여 계속합니다.
가상 네트워크 구성 선택 대화 상자에서 이 배포를 위해 만든 리소스를 선택합니다.
선택을 클릭하여 계속합니다.
Azure 컨테이너 인스턴스 ID를 가져오는 다른 방법
Azure PowerShell이 설치되어 있는 경우, 다음 명령을 이용해 Azure 컨테이너 인스턴스 ID를 가져올 수 있습니다.
(Get-AzADServicePrincipal -DisplayNameBeginsWith 'Azure Container Instance').Id
d5f227bb-ffa6-4463-a696-7234626df63f
Azure CLI가 설치되어 있는 경우, 다음 명령을 이용해 Azure 컨테이너 인스턴스 ID를 가져올 수 있습니다.
az ad sp list --display-name 'Azure Container Instance' --query "[].id"
[
"d5f227bb-ffa6-4463-a696-7234626df63f"
]
다음 단계
새 프라이빗 Cloud Shell 인스턴스를 사용해야 하는 모든 사용자를 대상으로 Cloud Shell 구성 단계를 완료해야 합니다. 여러 사용자가 동일한 스토리지 리소스를 사용할 수 있도록 Cloud Shell 인스턴스를 구성하는 방법도 있습니다. 자세한 내용은 여러 사용자가 단일 스토리지 계정 및 파일 공유를 사용하도록 허용을 참조하세요.
보안을 강화하기 위해 프라이빗 엔드포인트를 사용하도록 스토리지 계정을 구성할 수도 있습니다. 자세한 내용은 Azure 프라이빗 엔드포인트를 이용해 스토리지 계정에 연결을 참조하세요.