

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 타사 Git 리포지토리를 사용한 SageMaker AI MLOps 프로젝트 안내서
<a name="sagemaker-projects-walkthrough-3rdgit"></a>

**중요**  
2023년 11월 30일부터 이전 Amazon SageMaker Studio 환경이 이제 Amazon SageMaker Studio Classic으로 명명되었습니다. 다음 섹션은 Studio Classic 애플리케이션 사용에 관해 다룹니다. 업데이트된 Studio 환경 사용에 대한 자세한 내용은 [Amazon SageMaker Studio](studio-updated.md) 섹션을 참조하세요.  
Studio Classic은 기존 워크로드에 대해 유지 관리되지만 더 이상 온보딩에 사용할 수 없습니다. 기존 Studio Classic 애플리케이션만 중지하거나 삭제할 수 있으며 새 애플리케이션을 생성할 수는 없습니다. [워크로드를 새 Studio 환경으로 마이그레이션하는](studio-updated-migrate.md) 것이 좋습니다.

이 안내서에서는 템플릿 [CodePipeline을 사용해 타사 Git로 모델 구축, 훈련 및 배포를 하기 위한 MLOps 템플릿](sagemaker-projects-templates-sm.md#sagemaker-projects-templates-git-code-pipeline)으로 MLOps 프로젝트를 사용하여 모델을 구축, 훈련 및 배포하기 위한 CI/CD 시스템 생성 방법을 보여줍니다.

**사전 조건**

이 연습을 수행하려면 다음이 있어야 합니다.
+ Studio Classic에 로그인하기 위한 IAM 또는 IAM Identity Center 계정 자세한 내용은 [Amazon SageMaker AI 도메인 개요](gs-studio-onboard.md) 단원을 참조하세요.
+ SageMaker AI에서 제공하는 프로젝트 템플릿을 사용할 수 있는 권한. 자세한 내용은 [프로젝트를 사용하기 위해 SageMaker Studio 권한 부여](sagemaker-projects-studio-updates.md) 단원을 참조하세요.
+ Studio Classic 사용자 인터페이스 및 Jupyter Notebook에 대한 기본 지식 자세한 내용은 [Amazon SageMaker Studio Classic UI 개요](studio-ui.md) 단원을 참조하세요.
+ 빈 GitHub 리포지토리 2개. 이러한 리포지토리를 프로젝트 템플릿에 입력하면 모델 빌드 및 배포 코드와 함께 이러한 리포지토리가 시딩됩니다.

**Topics**
+ [1단계: GitHub 연결 설정](#sagemaker-proejcts-walkthrough-connect-3rdgit)
+ [2단계: 프로젝트 생성](#sagemaker-proejcts-walkthrough-create-3rdgit)
+ [3단계: 코드 변경](#sagemaker-projects-walkthrough-change-3rdgit)
+ [4단계: 모델 승인](#sagemaker-proejcts-walkthrough-approve-3rdgit)
+ [(선택 사항) 5단계: 프로덕션에 모델 버전 배포](#sagemaker-projects-walkthrough-prod-3rdgit)
+ [6단계: 리소스 정리](#sagemaker-projectcts-walkthrough-cleanup-3rdgit)

## 1단계: GitHub 연결 설정
<a name="sagemaker-proejcts-walkthrough-connect-3rdgit"></a>

이 단계에서는 [AWS CodeConnections 연결](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)을 사용하여 GitHub 리포지토리에 연결합니다. SageMaker AI 프로젝트는 이 연결을 사용하여 소스 코드 리포지토리에 액세스합니다.

**GitHub 연결을 설정하려면:**

1. [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)에서 CodePipeline 콘솔에 로그인합니다.

1. 탐색 창의 **설정**에서 **연결**을 선택합니다.

1. **연결 생성**을 선택합니다.

1. **공급자 선택**에서 **GitHub**를 선택합니다.

1. **연결 이름**에 이름을 입력합니다.

1. **GitHub에 연결**을 선택합니다.

1.  AWS Connector GitHub 앱이 이전에 설치되지 않은 경우 **새 앱 설치를** 선택합니다.

   그러면 액세스할 수 있는 모든 GitHub 개인 계정 및 조직의 목록이 표시됩니다.

1. SageMaker 프로젝트 및 GitHub 리포지토리와 함께 사용할 연결을 설정하려는 계정을 선택합니다.

1. **구성**을 선택합니다.

1. 선택적으로 특정 리포지토리를 선택하거나 **모든 리포지토리**를 선택할 수 있습니다.

1. **저장**을 선택합니다. 앱이 설치되면 **GitHub에 연결** 페이지로 리디렉션되고 설치 ID가 자동으로 채워집니다.

1. **연결**을 선택합니다.

1. 키 `sagemaker`와 값 `true`가 포함된 태그를 이 CodeConnections 연결에 추가합니다.

1. 연결 ARN을 복사하여 나중에 사용할 수 있도록 저장합니다. ARN을 프로젝트 생성 단계에서 파라미터로 사용합니다.

## 2단계: 프로젝트 생성
<a name="sagemaker-proejcts-walkthrough-create-3rdgit"></a>

이 단계에서는 SageMaker AI에서 제공하는 프로젝트 템플릿으로 모델을 구축, 훈련 및 배포하여 SageMaker AI MLOps 프로젝트를 생성합니다.

**SageMaker AI MLOps 프로젝트를 만드는 방법**

1. Studio에 로그인합니다. 자세한 내용은 [Amazon SageMaker AI 도메인 개요](gs-studio-onboard.md)섹션을 참조하세요.

1. Studio 사이드바에서 **홈** 아이콘(![](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. 메뉴에서 **배포**를 선택한 다음 **프로젝트**를 선택합니다.

1. **프로젝트 생성**을 선택합니다.

   **프로젝트 생성** 탭이 나타납니다.

1. **SageMaker AI 프로젝트 템플릿**의 경우 **CodePipeline을 사용하여 타사 Git 리포지토리로 모델 구축, 훈련 및 배포**를 선택하세요.

1. **다음**을 선택합니다.

1. **모델 빌드 코드 리포지토리 정보**에서 다음 파라미터를 입력합니다.
   + **브랜치**의 경우 Git 리포지토리에서 파이프라인 활동에 사용할 브랜치를 입력합니다.
   + **전체 리포지토리 이름**의 경우 Git 리포지토리 이름을 {{사용자 이름/리포지토리 이름}} 또는 {{조직/리포지토리 이름}} 형식으로 입력합니다.
   + **Code Connection ARN**의 경우 1단계에서 생성한 CodeConnections 연결의 ARN을 입력합니다.

1. **모델 배포 코드 리포지토리 정보**에서 다음 파라미터를 입력합니다.
   + **브랜치**의 경우 Git 리포지토리에서 파이프라인 활동에 사용할 브랜치를 입력합니다.
   + **전체 리포지토리 이름**의 경우 Git 리포지토리 이름을 {{사용자 이름/리포지토리 이름}} 또는 {{조직/리포지토리 이름}} 형식으로 입력합니다.
   + **Code Connection ARN**의 경우 1단계에서 생성한 CodeConnections 연결의 ARN을 입력합니다.

1. **프로젝트 생성**을 선택합니다.

프로젝트가 **생성됨** **상태**로 **프로젝트** 목록에 나타납니다.

## 3단계: 코드 변경
<a name="sagemaker-projects-walkthrough-change-3rdgit"></a>

이제 모델을 빌드하는 파이프라인 코드를 변경하고 변경 내용을 커밋하여 새 파이프라인 실행을 시작합니다. 파이프라인 실행은 새 모델 버전을 등록합니다.

**코드를 변경하려면**

1. 모델 빌드 GitHub 리포지토리에서 `pipelines/abalone`폴더로 이동합니다. `pipeline.py`를 두 번 클릭하여 코드 파일을 엽니다.

1. `pipeline.py` 파일에서 훈련 인스턴스 유형을 설정하는 줄을 찾습니다.

   ```
   training_instance_type = ParameterString(
           name="TrainingInstanceType", default_value="ml.m5.xlarge"
   ```

   편집할 파일을 열고 `ml.m5.xlarge`에서 `ml.m5.large`로 변경한 다음 커밋합니다.

코드 변경을 커밋한 후 MLOps 시스템은 새 모델 버전을 생성하는 파이프라인 실행을 시작합니다. 다음 단계에서는 새 모델 버전을 승인하여 프로덕션에 배포합니다.

## 4단계: 모델 승인
<a name="sagemaker-proejcts-walkthrough-approve-3rdgit"></a>

이제 이전 단계에서 생성한 새 모델 버전을 승인하여 SageMaker AI 엔드포인트에 모델 버전 배포를 시작합니다.

**모델 버전을 승인하려면**

1. Studio Classic 사이드바에서 **홈** 아이콘(![](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. 메뉴에서 **배포**를 선택한 다음 **프로젝트**를 선택합니다.

1. 첫 단계에서 만든 프로젝트 이름을 찾고 두 번 클릭하여 프로젝트의 프로젝트 탭을 엽니다.

1. 프로젝트 탭에서 **모델 그룹**을 선택한 다음 나타나는 모델 그룹의 이름을 두 번 클릭합니다.

   모델 그룹 탭이 나타납니다.

1. 모델 그룹 탭에서 **버전 1**을 두 번 클릭합니다. **버전 1** 탭이 열립니다. **상태 업데이트**를 선택합니다.

1. 모델 **모델 버전 상태 업데이트** 대화 상자의 **상태** 드롭다운 목록에서 **승인**을 선택한 다음 **상태 업데이트**를 선택합니다.

   모델 버전을 승인하면 MLOps 시스템이 모델을 스테이징에 배포합니다. 엔드포인트를 보려면 프로젝트 탭에서 **엔드포인트** 탭을 선택합니다.

## (선택 사항) 5단계: 프로덕션에 모델 버전 배포
<a name="sagemaker-projects-walkthrough-prod-3rdgit"></a>

이제 모델 버전을 프로덕션 환경에 배포할 수 있습니다.

**참고**  
이 단계를 완료하려면 Studio Classic 도메인의 관리자여야 합니다. 관리자가 아닌 경우 이 단계를 건너뜁니다.

**모델 버전을 프로덕션 환경에 배포하려면**

1. [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)에서 CodePipeline 콘솔에 로그인합니다.

1. **파이프라인**을 선택한 다음, **sagemaker-{{projectname}}-{{projectid}}-modeldeploy**라는 이름의 파이프라인을 선택합니다.여기서 {{projectname}}은 프로젝트 이름이고 {{projectid}}는 프로젝트 ID입니다.

1. **배포 스테이징 단계**에서 **검토**를 선택합니다.

1. **검토** 대화 상자에서 **승인**을 선택합니다.

   **배포 스테이징** 단계를 승인하면 MLOps 시스템이 모델을 프로덕션에 배포합니다. 엔드포인트를 보려면 Studio Classic의 프로젝트 탭에서 **엔드포인트** 탭을 선택합니다.

## 6단계: 리소스 정리
<a name="sagemaker-projectcts-walkthrough-cleanup-3rdgit"></a>

비용이 발생하지 않도록 하려면 이 안내서에서 생성된 리소스를 정리합니다.

**참고**  
 CloudFormation 스택과 Amazon S3 버킷을 삭제하려면 Studio Classic의 관리자여야 합니다. 관리자가 아닌 경우 관리자에게 해당 단계를 완료해 달라고 요청하세요.

1. Studio Classic 사이드바에서 **홈** 아이콘(![](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. 메뉴에서 **배포**를 선택한 다음 **프로젝트**를 선택합니다.

1. 대상 드롭다운 목록에서 대상 프로젝트를 선택합니다. 프로젝트가 보이지 않는 경우 프로젝트 이름을 입력하고 필터를 적용하여 프로젝트를 찾습니다.

1. 프로젝트를 선택하여 기본 패널에서 세부 정보를 확인합니다.

1. **작업** 메뉴에서 **삭제**를 선택합니다.

1. **프로젝트 삭제** 창에서 **삭제**를 선택하여 선택을 확인합니다.

   이렇게 하면 프로젝트에서 생성한 서비스 카탈로그 프로비저닝 제품이 삭제됩니다. 여기에는 프로젝트용으로 생성된 CodeCommit, CodePipeline, CodeBuild 리소스가 포함됩니다.

1. 프로젝트가 생성한 CloudFormation 스택을 삭제합니다. 두 개의 스택이 있습니다.하나는 스테이징용이고 다른 하나는 프로덕션용입니다. 스택의 이름은 **sagemaker-{{projectname}}-{{project-id}}-deploy-staging** 및 **sagemaker-{{projectname}}-{{project-id}}-deploy-prod**입니다.여기서 {{projectname}}은 프로젝트 이름이고 {{project-id}}는 프로젝트 ID입니다.

    CloudFormation 스택을 삭제하는 방법에 대한 자세한 내용은 *CloudFormation 사용 설명서*[의 CloudFormation 콘솔에서 스택 삭제](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)를 참조하세요.

1. 프로젝트에서 생성한 Amazon S3 버킷을 삭제합니다. 버킷 이름은 **sagemaker-project-{{project-id}}**이고, 여기서 {{projt-id}}는 프로젝트 ID입니다.