반응형
- [지난 글] AWS ① AWS 시작하기
- AWS ② Services - SageMaker를 중심으로
- AWS ③ 영화 추천 어플리케이션 제작 및 실습
안녕하세요, 이번 시간에는 AWS에서 Machine Learning 기반 어플리케이션을 제작하고, 배포하기 위해서 사용되는 주요 서비스들을 정리하려고 합니다.
아래 사진은 AWS에서 제공하는 서비스들을 일부 캡처한 것입니다. 보시는 바와 같이, 다양한 목적에 따라 세분화된 걸 볼 수 있습니다. 따라서 Machine Learning 기반 어플리케이션을 제작, 배포하기 위해서는 여러 서비스를 함께 사용해야 합니다.
이번 글에서는 제가 실습에 사용했던 서비스들만 정리하도록 하겠습니다. 이것들만 있어도 Machine Learning 기반 어플리케이션을 제작, 배포할 수 있습니다. 위 사진에서 이미 즐겨찾기 되어있네요 ㅎㅎ.
- EC2 (Elastic Compute Cloud)
- 한 줄 요약 - 클라우드의 가상 서버
- GPU가 없는 나만의 컴퓨터라고 생각할 수 있습니다. (GPU는 특수한 업무를 수행할 때만 필요하므로, 따로 그 업무를 실행할 때 설정해서 사용할 수 있습니다.)
- 필요에 따른 CPU, RAM, 네트워크 사양에 따라 적절한 EC2 intance를 생성하면, 사용가능합니다.
- IAM (Identity and Acess Management)
- 한 줄 요약 - 사용자 엑세스 및 암호화 키 관리
- 우리처럼 튜토리얼 수준이 아닌, 여러 명이 AWS를 활용해서 대규모 프로젝트를 수행할 수 있죠, 이때 명시적인 역할 분담을 돕는 서비스가 IAM이라고 할 수 있습니다. (1명인 경우에도 IAM은 필요합니다! root 처럼요.)
- IAM을 사용해서 협업하는 사람들의 역할을 정하고, 각각 사용할 수 있는 서비스, 자원 등의 접근 권한을 부여합니다. 그래야 혹시 모를 자원의 낭비나, 실수로 인한 피해를 방지할 수 있죠!
- policy (정책), user (사용자), role (역할)을 설정해서 사용할 수 있습니다.
- Cloud9
- 한 줄 요약 - 클라우드 기반 IDE (통합 개발 환경)
- 코드의 작성, 실행 및 디버깅을 위한 IDE를 클라우드 (web) 상에서 다룰 수 있게 해주는 서비스입니다.
- Cloud9 instance를 생성할 때, IDE를 실행할 EC2 instance도 함께 만들어집니다.
- 터미널을 통한 data 다운로드 및 코드 실행 (application 배포까지)도 가능합니다.
- S3 (Simple Storage Service)
- 한 줄 요약 - 클라우드 기반 데이터 저장소
- 우리가 프로젝트를 진행할 때, 필요한 데이터를 저장하고 검색할 수 있는 기능을 지원하는 서비스입니다.
- 예를 들어, 아래에 있는 SageMaker의 jupyter notebook instance를 통해서 training dataset을 다운로드 할 때, 다운로드 받을 파일이 저장된 위치나, 다운로드한 파일을 저장할 S3 instance (bucket이라고도 합니다.) 의 주소?를 통해 접근할 수 있습니다.
- SageMaker (Sage: 현자)
- 한 줄 요약 - Machine Learning 모델의 구축, 학습, 및 배포
- Cloud9에서, Machine Learning과 관련된 기능을 따로 때왔다고 볼 수 있습니다.
- 크게 jupyter notebook, inference (endpoint)로 구성되어있습니다.
- 다양한 기능을 수행할 수 있는 GUI를 제공하지만, jupyter notebook instance에서 EDA, 모델 훈련, 모델 배포 등 거의 대부분의 기능을 수행할 수 있습니다.
- EDA를 위한 기본적인 library가 설치되어있고, 터미널도 지원합니다.
- 모델을 배포해서 새로운 data에 대해서 inference를 수행하기 위해서는 endpoint가 필요합니다.
- 새로운 data를 학습된 모델에게 전달하고, 그 output을 다시 돌려주는 역할을 합니다.
- Lambda
- 한 줄 요약 - 배포된 어플리케이션의 트래픽 자동 관리
- 어플리케이션을 배포하는 걸로 끝이 아닙니다. Cloud9 instance를 통해 어플리케이션을 성공적으로 배포했다고 해도, Cloud9이 구동되는 EC2 instance의 사양은 동적으로 변하지 않고 그대로 입니다.
- 하지만 우리가 배포한 어플리케이션을 사용하고자 하는 사용자들은 몰릴 때도 있고, 그렇지 않을 때도 있죠.
- 따라서 트래픽이 변해도 안정적으로 어플리케이션을 서비스할 수 있도록, 부하를 관리해주는 load balancer 역할을 해주는 서비스가 Lambda 입니다.
이렇게 실습을 위해 필요한 AWS 서비스들에 대한 정리가 끝났습니다!
다음 글부터는 본격적인 실습에 들어가면서, 이 글에서 소개해드린 서비스들이 어떻게 서로 연결되어서, 하나의 어플리케이션을 배포할 수 있게 되는지 정리해보겠습니다.
글 읽어주셔서 감사합니다!
반응형
'[Machine Learning]' 카테고리의 다른 글
HNE - proximity preserving methods(2) (0) | 2021.09.27 |
---|---|
HNE - proximity preserving methods(1) (0) | 2021.09.27 |
HNE (Heterogeneous Network Embedding) - 소개 (0) | 2021.08.31 |
AWS (1) 시작하기 (0) | 2021.04.27 |