DevOps 도구와 Azure Machine Learning 통합

완료됨

기계 학습 프로젝트에서 데이터 과학 팀과 함께 작업한다고 상상해 보세요. 팀은 Azure DevOps나 GitHub를 사용하여 작업을 계획하고, 코드 리포지토리를 저장하고, 워크플로를 자동화할 수 있습니다.

어느 쪽 도구 집합을 사용하더라도 일반적으로 두 가지 역할이 존재합니다.

  • 관리자: DevOps 환경을 설정하고 도구를 관리합니다.
  • 최종 사용자: 개발 관련 공동 작업을 통해 프로젝트에 기여합니다. 도구는 사용할 수 있지만 DevOps 환경의 구성에는 액세스할 수 없습니다.

관리자는 Azure Machine Learning을 Azure DevOps나 GitHub에 연결할 책임이 있습니다. Azure Machine Learning과의 통합을 설정하는 방법을 이해하기 위해, 관리자가 Azure Machine Learning을 Azure DevOps와 GitHub에 안전하게 연결하는 방법을 살펴보겠습니다.

Azure DevOps 설정

Azure DevOps를 Azure Machine Learning에 연결하려면 먼저 조직과 프로젝트를 만들어야 합니다. 조직은 프로젝트를 그룹화하고 관리하는 용도로 사용합니다.

먼저 Microsoft 또는 GitHub 계정으로 Azure DevOps에 로그인합니다.

로그인한 후에는 조직을 만들 수 있습니다.

New organization in Azure DevOps

조직 내에서 여러 프로젝트를 만들 수 있습니다.

New project in Azure DevOps

각 프로젝트에서 Boards, ReposPipelines 같은 도구에 액세스하여 DevOps 원칙을 프로젝트에 적용할 수 있습니다.

Azure DevOps를 Azure Machine Learning에 연결

Azure DevOps에서 Azure Machine Learning 작업 영역에 안전하게 액세스하려면 서비스 연결을 만들어야 합니다.

서비스 연결을 만들 때, Azure DevOps를 다른 서비스에 연결하도록 인증하는 방법을 정의합니다. Azure Machine Learning을 사용할 때는 Azure DevOps에서 서비스 주체를 생성하는 것이 좋습니다.

서비스 주체Microsoft Entra ID에서 ID로 만들어집니다. Azure DevOps에서는 팀 구성원의 자격 증명을 사용하여 Azure Machine Learning 연결하는 대신, 서비스 주체의 자격 증명을 사용합니다.

Azure DevOps 프로젝트를 만들 때 기존 Azure Machine Learning 작업 영역에 연결할 수 있습니다.

  1. 프로젝트 내에서 프로젝트 설정으로 이동합니다.
  2. 서비스 연결을 선택하고 새 서비스 연결을 만듭니다.
  3. Azure Resource Manager를 선택합니다.
  4. 자동 서비스 주체를 사용한 인증을 선택합니다.
  5. 범위 수준을 Machine Learning 작업 영역으로 설정하고, 액세스할 수 있는 기존 Azure Machine Learning 작업 영역에 연결합니다.
  6. 모든 파이프라인에 액세스 권한 부여
  7. 서비스 연결에 이름을 지정합니다. 이 이름은 Azure Machine Learning 작업 영역을 관리하기 위해 Azure DevOps 인증해야 할 때마다 사용합니다.

New service connection in Azure DevOps

서비스 연결이 생성되면 새로 만든 서비스 주체에 Azure Machine Learning 작업 영역에 대한 기여자 액세스 권한이 있음을 확인하게 됩니다.

GitHub 설정

GitHub Azure Machine Learning을 연결하려면 먼저 GitHub 리포지토리를 만들어야 합니다.

GitHub에 로그인합니다.

GitHub에 로그인하면 개인으로서 리포지토리를 소유할지 GitHub 조직에서 리포지토리를 소유해야 하는지를 선택할 수 있습니다.

New repo in GitHub

GitHub를 Azure Machine Learning에 연결

GitHub를 사용하여 기계 학습 워크플로를 자동화하려면 GitHub의 Azure Machine Learning 연결을 인증해야 합니다. 안전한 연결을 설정하려면 다음을 수행해야 합니다.

  • Azure에서 서비스 주체를 만듭니다.
  • 리포지토리의 비밀에 서비스 주체의 자격 증명을 추가합니다.

서비스 주체를 만들려면 Azure CLI를 사용하면 됩니다. CLI를 사용하는 한 가지 방법은 Azure Cloud Shell에서 명령을 제출하는 것입니다.

다음 명령을 사용하여 Azure Machine Learning 작업 영역에 대한 기여자 액세스 권한을 부여받을 github-aml-sp라는 서비스 주체를 만들 수 있습니다.

az ad sp create-for-rbac --name "github-aml-sp" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name> \
                            --sdk-auth

서비스 주체가 생성되면 Azure 리소스 그룹에 연결해야 하는 자격 증명 GitHub가 포함된 JSON 텍스트가 출력으로 반환됩니다. JSON 텍스트를 복사하고 다음 단계를 위해 저장합니다.

이러한 자격 증명을 GitHub 저장하려면 다음을 수행해야 합니다.

  1. 리포지토리의 설정으로 이동합니다.
  2. 비밀 페이지로 이동합니다.
  3. Actions를 선택합니다.
  4. 새 리포지토리 비밀을 추가합니다.
  5. AZURE_CREDENTIALS를 이름으로 입력합니다.
  6. 출력 JSON에 자격 증명을 붙여넣고 비밀을 추가합니다.

New secret in GitHub

GitHub에 비밀이 추가되면, 리소스 그룹의 모든 리소스를 작업하기 위해 GitHub를 인증해야 할 때마다 AZURE_CREDENTIALS 비밀을 사용할 수 있습니다.

GitHub를 Azure Machine Learning에 통합하는 방법을 계속 알아보고 GitHub Actions를 Azure Machine Learning과 함께 사용하는 방법을 살펴보세요. 이 자습서에서는 AZURE_CREDENTIALS 비밀을 사용하여 Azure에 연결합니다.