Developer's Development

3.4.13 [클라우드] AWS AI 배포 및 활용 본문

AI 활용 애플리케이션 개발/클라우드

3.4.13 [클라우드] AWS AI 배포 및 활용

mylee 2025. 10. 28. 19:14
Amazon SageMaker

 

기계학습(ML) 모델의 개발, 학습, 배포를 위한 완전관리형 서비스이다.

개발자와 데이터 과학자가 머신러닝 파이프라인 전 과정을 클라우드 상에서 처리할 수 있도록 설계되었다.

 

👉🏻 주요 기능

- 데이터 준비, 모델 학습, 하이퍼파라미터 튜닝

- 모델 배포 및 호스팅 (Endpoint)

- 모니터링 및 자동 스케일링

 

  • Endpoint

학습된 모델을 서비스화하기 위해 Endpoint(엔드포인트)를 생성한다.

- Endpoint는 지속적으로 실행되는 API 인터페이스이며, 외부 애플리케이션이 이를 호출하여 예측 결과를 받을 수 있다.

 

👉🏻 기본 흐름

1. 모델 아티팩트(S3)와 컨테이너 이미지 지정

2. SageMaker 모델 객체 생성

3. Endpoint Configuration 설정

4. Endpoint 생성 및 활성화

5. 클라이언트에서 HTTP 요청 또는 SDK로 호출 

 

 

실습

 

  • AWS

Amazon SageMaker Sidebar > Amazon SageMaker AI > 시작하기 > SageMaker 도메인 설정 

- 단일 사용자용 설정(빠른 설정) 

- Ready 상태 되면 → side bar Applications and IDEs > Studio > Studio 열기 

- side bar JupyterLab > + Create Jupyterlab Space (Name: SageMakerTest, Share with my domain)

- Run space → (대기) → Open JupyterLab

- Python3 파일 생성 (test_serving.ipynb) 

from sagemaker.huggingface import HuggingFaceModel
from sagemaker import get_execution_role

role = get_execution_role()

hub = {
    "HF_MODEL_ID": 'google/flan-t5-small',
    "HF_TASK": 'text2text-generation'
}

hf_model = HuggingFaceModel(
    transformers_version='4.26',
    pytorch_version='1.13',
    py_version='py39',
    env=hub,
    role=role
)

predictor = hf_model.deploy(
    initial_instance_count=1,
    instance_type='ml.t2.medium'
)

 

Amazon SageMaker AI > sidebar 거버넌스 > 모델 대시보드

- 엔드포인트 URL 확인 

 

IAM

- 사용자 > student > 권한 > 권한 추가 

- 직접 정책 연결 > AmazonSageMakerFullAccess

 

  • vscode

cmd

pip install requests-aws4auth

 

test.py 생성

import requests
from requests_aws4auth import AWS4Auth

ACCESS_KEY = # '발급받은 access key ID'
SECRET_KEY = # '발급받은 secret access key'
region = 'ap-northeast-2'
service = 'sagemaker'

awsauth = AWS4Auth(ACCESS_KEY, SECRET_KEY, region, service)

url = 'https://runtime.sagemaker.ap-northeast-2.amazonaws.com/endpoints/huggingface-pytorch-inference-2025-10-23-05-36-22-791/invocations'
payload = {"inputs": "Bringing together widely adopted AWS Machine Learning"}

res = requests.post(url, json=payload, auth=awsauth)
print(res.json())

 

cmd

(django_env) C:\skn_17\back_end>python test.py
[{'generated_text': 'AWS Machine Learning is a collaborative tool for learning and learning. It is a collaborative'}]

 

엔드포인트 삭제

모델 삭제 (Amazon SageMaker AI > Dashboard)

관리자 구성 > 도메인

- 공간 삭제 (켜져있는 jupyter 등 창 다 끄기)

- 사용자 프로필 삭제 

- 도메인 설정 > 삭제