머신러닝 모델을 AWS SageMaker에 배포하는 완전 가이드 - 파트 01
Source: Dev.to
AWS에 커스텀 머신러닝 모델 배포하기
이 가이드에서는 Hugging Face 의 모델이든, 직접 만든 모델이든 AWS의 핵심 서비스 몇 가지만 사용해 배포하는 방법을 단계별로 살펴봅니다.
| 서비스 | 역할 |
|---|---|
| Amazon SageMaker | “현자 제작자” – ML 모델을 학습하고, 호스팅하며, 자동으로 스케일링해 주는 플랫폼 |
| Amazon API Gateway | 모델을 공개 HTTP API 로 노출해 다른 개발자들이 호출할 수 있게 함 |
| AWS Lambda | 경량 서버리스 함수로, 들어오는 요청을 라우팅·검증·포맷팅해 모델에 전달하기 전 전처리 역할 수행 |
⚠️ 비용 참고 – 학습 목적이라면 모든 리소스를 약 6 시간 사용 후 종료하면 ≈ $5 이하로 비용을 유지할 수 있습니다. 예상치 못한 요금이 발생하지 않도록 $5 알람을 설정해 두세요.
1️⃣ SageMaker 열기
- AWS 콘솔에 로그인합니다.
- 좌측 상단 검색창에 “SageMaker” 를 입력하고 서비스를 선택합니다.
아래 스크린샷과 비슷한 대시보드가 보일 것입니다.

2️⃣ 노트북 인스턴스 만들기
SageMaker 노트북 은 ML에 최적화된 EC2 인스턴스 위에서 실행되는 관리형 Jupyter 환경입니다.
- 좌측 사이드바에서 “Notebook instances” 를 클릭합니다.
- “Create notebook instance” 를 클릭하고 양식을 채웁니다:
| 항목 | 권장값 / 비고 |
|---|---|
| Notebook instance name | translation-model-01 (원하는 이름으로 변경 가능) |
| Instance type | 보통 수준의 인스턴스 선택 (예: ml.t2.medium). 필요에 따라 나중에 변경 가능하지만, 큰 인스턴스일수록 시간당 비용이 상승합니다. |
| IAM role | 기존 역할을 선택하거나 SageMaker가 새 역할을 만들게 합니다. 기본 역할이면 충분하지만 최소 권한 원칙을 기억하세요 – 불필요하게 전체 S3 접근 권한을 부여하지 마세요. |
| Encryption | 별도 요구사항이 없으면 기본 설정을 유지합니다. |

IAM 역할이란?
IAM 역할은 특정 작업에 필요한 권한만을 부여하는 정체성(identity)입니다. 역할을 사용하면 취약점이 악용될 경우 공격자가 전체 계정이 아니라 해당 역할에 부여된 권한만 얻게 되어 피해 범위를 제한할 수 있습니다.
역할 및 노트북 생성

그런 다음 Create role 을 클릭합니다. 몇 분 뒤에 초록색 성공 메시지가 나타나고 역할이 자동으로 선택됩니다. 나머지 항목은 그대로 두고 Create notebook 을 클릭합니다.
노트북이 생성되면 (5‑10 분 정도 소요) 열어봅니다. 상단에 Jupyter 와 JupyterLab 두 옵션이 보일 텐데, 두 환경 모두 코드를 작성·실행하고, 데이터와 변수를 유지하면서 즉시 수정·재실행·리팩터링할 수 있는 인터랙티브 환경입니다. 이를 Read‑Eval‑Print‑Loop (REPL) 라고 합니다.
새 노트북을 만들려면:
- File > New > Notebook
- 프롬프트가 뜨면 커널을 선택합니다. 기본 커널이면 우리 사용 사례에 충분합니다.
Source:

JupyterLab 메인 편집기
JupyterLab은 IDE처럼 동작합니다: 편집기, 파일 탐색기, 터미널 및 다양한 도구를 제공합니다.
아래 스크린샷에서는 Untitled.ipynb 라는 노트북 파일을 만들었습니다(나중에 이름을 바꿀 수 있습니다; .ipynb는 iPython Notebook의 약자입니다). 여기서 Google Colab에서 작성하던 코드를 그대로 작성합니다.
간단한 Python 코드가 이미 작성되어 있습니다; Shift + Enter 로 실행하세요. 출력은 다음 셀에 나타나며 다음과 같이 표시됩니다:
Hello World!
3️⃣ (Optional) IAM 역할 권한 검토
노트북을 생성하면 다음과 같은 화면이 표시됩니다:

- 기본 정책은 자동으로 생성된 S3 버킷에 대한 읽기/쓰기 접근 권한을 노트북에 부여합니다.
- 추가 리소스(예: 다른 S3 버킷, ECR 리포지토리)가 필요하다면 보안 영향을 이해한 후에 필요한 정책을 연결하세요.
4️⃣ 다음 단계 (개요)
노트북 인스턴스가 실행 중이면 다음을 할 수 있습니다:
- Hugging Face 저장소를 복제하거나 직접 모델 파일을 업로드합니다.
- SageMaker 엔드포인트를 생성해 실시간 추론을 위해 모델을 호스팅합니다.
- API Gateway를 설정해 HTTP 요청을 Lambda 함수로 전달합니다.
- Lambda 핸들러를 작성해:
- 들어오는 페이로드를 검증하고,
- SageMaker 엔드포인트를 호출하며,
- 모델의 응답을 호출자에게 반환합니다.
튜토리얼의 나머지 부분(모델 배포, API 생성, Lambda 코드, 테스트)은 동일한 패턴을 따릅니다 – 각 단계마다 스크린샷과 간결한 설명이 제공됩니다.
📌 빠른 요약
- SageMaker = 학습 및 호스팅 환경.
- API Gateway = 공개 HTTP 진입점.
- Lambda = 요청 검증 및 라우팅 (서버리스).
- 비용 관리 = 사용하지 않을 때 리소스를 종료하고 $5 알림을 설정합니다.
배포를 즐기세요! 🚀


