Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- RNN
- seaborn
- Transformer
- pyTorch
- KLUE
- Ai
- Optimization
- N21
- nlp
- Self-attention
- passage retrieval
- 데이터 시각화
- 2023 현대차·기아 CTO AI 경진대회
- dataset
- mrc
- ODQA
- word2vec
- Data Viz
- 딥러닝
- GPT
- Attention
- N2N
- 기아
- matplotlib
- AI Math
- Bart
- AI 경진대회
- Bert
- 현대자동차
- 데이터 구축
Archives
- Today
- Total
쉬엄쉬엄블로그
(Product Serving) Cloud 본문
728x90
이 색깔은 주석이라 무시하셔도 됩니다.
Part 2. 프로토타입부터 점진적으로 개선하기
2.4 Cloud
1. Cloud
Cloud 서비스를 사용하는 이유
- 웹, 앱 서비스를 만드는 경우
- 자신의 컴퓨터(localhost)로 서비스를 만들 수도 있음
- IP로 누구나 접근할 수 있게 수정하고, IP를 공유하기 등
- 그러나 이런 경우 자신의 컴퓨터가 종료되면 웹, 앱 서비스도 종료됨
- 이런 경우 전통적인 접근 방법
- 물리적 공간, 확장성을 고려한 서버실을 만들고 운영
- IDC(Internet Data Center)
- 서버 컴퓨터를 넣을 공간 + 추후 서버를 추가할 때 즉각적으로 확장할 수 있는지
- 전기, 에어컨 등 서버가 급작스럽게 종료되지 않도록 준비가 필요함
- 갑자기 트래픽이 몰릴 경우, 컴퓨터 10대를 설치하기 어려움(자재 수급 이슈 등)
- 반대로 트래픽이 적어서 컴퓨터 10대를 없애기가 수월하지 않음
- 이런 경우 전통적인 접근 방법
- 앞선 내용보다 자유롭게 활용할 수 있는 개념으로 클라우드 서비스가 점점 발전
- 그 이후엔 개발자가 직접 설정해야 했던 작업 등을 클라우드에서 쉽게 할 수 있는 방향으로 발전 (Managed 서비스)
- Apache Spark를 쉽게 운영할 수 있도록 AWS EMR, GCP Dataproc 등을 활용 ⇒ 직접 하둡을 설치할 필요 없이 이미 설치되어 있음
- Jupyter Notebook 환경도 미리 설치해두고 사용할 수 있음(Tensorflow, cuda 등)
- 웹, 앱 서비스를 만드는 경우
다양한 Service

다양한 Cloud 회사

Cloud 서비스의 다양한 제품 - Computing Service(Server)
- 연산을 수행하는(Computing) 서비스
- 가상 컴퓨터, 서버
- CPU, Memory, GPU 등을 선택할 수 있음
- 가장 많이 사용할 제품
- 인스턴스 생성 후, 인스턴스에 들어가서 사용 가능
- 회사별로 월에 무료 사용량이 존재(성능은 약 cpu 1 core, memory 2G)
Cloud 서비스의 다양한 제품 - Serverless Computing
- 앞에 나온 Computing Service와 유사하지만, 서버 관리를 클라우드쪽에서 진행
- 코드를 클라우드에 제출하면, 그 코드를 가지고 서버를 실행해주는 형태
- 요청 부하에 따라 자동으로 확장(Auto Scaling)
- Micro Service로 많이 활용
Cloud 서비스의 다양한 제품 - Stateless Container
- Docker를 사용한 Container 기반으로 서버를 실행하는 구조
- Docker Image를 업로드하면 해당 이미지 기반으로 서버를 실행해주는 형태
- 요청 부하에 따라 자동으로 확장(Auto Scaling)
Cloud 서비스의 다양한 제품 - Object Storage
- 다양한 Object를 저장할 수 있는 저장소
- 다양한 형태의 데이터를 저장할 수 있으며, API를 사용해 데이터에 접근할 수 있음
- 점점 데이터 저장 비용이 저렴해지고 있음
- 머신러닝 모델 pkl 파일, csv 파일, 실험 log 등을 Object Storage에 저장할 수 있음
Cloud 서비스의 다양한 제품 - Database(RDB)
- Database가 필요한 경우 클라우드에서 제공하는 Database를 활용할 수 있음
- 웹, 앱서비스와 데이터베이스가 연결되어 있는 경우가 많으며, 대표적으로 MySQL, PosgreSQL 등을 사용할 수 있음
- 사용자 로그 데이터를 Database에 저장할 수도 있고, Object Storage에 저장할 수도 있음
- 저장된 데이터를 어떻게 사용하냐에 따라 어디에 저장할지를 결정
Cloud 서비스의 다양한 제품 - Data Warehouse
- Database에 저장된 데이터는 데이터 분석을 메인으로 하는 저장소가 아닌 서비스에서 활용할 Database
- Database에 있는 데이터, Object Storage에 있는 데이터 등을 모두 모아서 Data Warehouse에 저장
- 데이터 분석에 특화된 Database
- query문도 더 빠름
Cloud 서비스의 다양한 제품 - AI Platform
- AI Research, AI Develop 과정을 더 편리하게 해주는 제품
- MLOps 관련 서비스 제공
- Google Cloud Platfor : TPU
다양한 Cloud 회사
클라우드마다 제품의 이름은 다르지만, 비슷한 제품들이 있음
하나의 제품 이름을 알면 다른 클라우드에서 검색할 수 있음
예) Compute Engine Like AWS

2. Google Cloud Platform
- GCP를 선택한 이유
- 첫 가입시 $300 크레딧 제공
- 학습할 때 클라우드 비용을 내면서 쓰는 부담을 줄이기 위해
- 하나의 클라우드의 서비스에 익숙해지면, 다른 클라우드도 수월
- 클라우드 서비스란 무엇이고, 어떤 방식으로 쓸 수 있구나!에 집중하기
- https://console.cloud.google.com/
Special Mission
Computer Engine 인스턴스 띄우고 삭제해보기 ✔️
Computer Engine 인스턴스에서 Shell Command 연습하기 ✔️
Cloud Storage의 Bucket 생성하고 파일 업로드, 삭제해보기 ✔️
Python Cloud Storage API를 사용해 Cloud Storage에 업로드한 파일을 파이썬에서 사용하는 코드 작성 (참고 문서 : https://googleapis.dev/python/storage/latest/index.html) ✔️
참고
-
from google.cloud import storage def download_byte_range( bucket_name, source_blob_name, start_byte, end_byte, destination_file_name ): """Downloads a blob from the bucket.""" # The ID of your GCS bucket # bucket_name = "your-bucket-name" # The ID of your GCS object # source_blob_name = "storage-object-name" # The starting byte at which to begin the download # start_byte = 0 # The ending byte at which to end the download # end_byte = 20 # The path to which the file should be downloaded # destination_file_name = "local/path/to/file" storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) # Construct a client side representation of a blob. # Note `Bucket.blob` differs from `Bucket.get_blob` as it doesn't retrieve # any content from Google Cloud Storage. As we don't need additional data, # using `Bucket.blob` is preferred here. blob = bucket.blob(source_blob_name) # blob.download_to_filename(destination_file_name, start=start_byte, end=end_byte) blob.download_to_filename(destination_file_name) print( "Downloaded bytes {} to {} of object {} from bucket {} to local file {}.".format( start_byte, end_byte, source_blob_name, bucket_name, destination_file_name ) ) if __name__ == "__main__": download_byte_range("test1-gcp-jjn", "tweet_search_output-230102.csv", 0, 1000, "tweet_search_output-230102.csv")- 참고 링크에서 보여주는 예시에는
blob.download_to_filename메서드의 인자로 start와 end를 넣어주는데 위의 주석처럼 다운로드를 할 시작 byte와 끝 byte를 의미한다. - start, end 인자를 입력하지 않으면 그냥 파일을 온전히 받을 수 있다.
- 참고 링크에서 보여주는 예시에는
-
출처: 부스트캠프 AI Tech 4기(NAVER Connect Foundation)
'부스트캠프 AI Tech 4기' 카테고리의 다른 글
| (AI 서비스 개발) 내가 만든 AI 모델은 합법일까, 불법일까 (1) | 2023.09.19 |
|---|---|
| (MRC) QA with Phrase Retrieval (0) | 2023.09.18 |
| (MRC) Closed-book QA with T5 (0) | 2023.09.16 |
| (MRC) Reducing Training Bias (0) | 2023.09.15 |
| (MRC) Linking MRC and Retrieval (0) | 2023.09.14 |
Comments