웹, 앱 서비스를 만드는 경우 자신의 컴퓨터(localhost)로 서비스를 만들 수 있다. 그러나 이런 경우 자신의 컴퓨터가 종료되면 서비스가 종료된다.
이런 문제를 해결하기 위한 전통적인 방법은 아래와 같다.
위와 같은 문제들로 인해 클라우드 서비스가 점점 발전해 왔다. 개발자가 직접 설정해야 하는 IP, 방화벽 등 다양한 설정들을 편리하게 이용할 수 있으며 Apache Spark를 쉽게 운영할 수 있도록 AWS EMR, GCP Dataproc 등을 활용할 수 있다.
연산을 수행하는 서비스를 제공하며 가상 컴퓨터, VM, 서버 등 다양한 이름으로 불린다. 이 제품은 CPU, Memory, GPU 등을 선택할 수 있으며 서버 인스턴스를 생성 후 인스턴스에 접근하여 사용할 수 있다.
Computing Service와 유사하지만 서버 관리를 클라우드쪽에서 진행한다.
코드를 클라우드에 제출하며 그 코드를 가지고 서버를 실행시켜주는 형태로 요청 부하에 따라 자동으로 확장(Auto Scaling)이 가능하다.
Docker를 사용한 Container 기반으로 서버를 실행하는 구조이다.
Docker Image를 업로드하면 해당 이미지 기반으로 서버를 실행시켜 주며 마찬가지로 Auto Scaling기능이 존재한다.
다양한 Object를 저장할 수 있으며 다양한 형태의 데이터를 저장할 수 있으며 API를 사용해 데이터에 접근할 수 있다. pkl, csv, log 등 다양한 파일들을 저장할 수 있으며 데이터 저장 비용이 점점 저렴해지고 있다.
DB가 필요한 경우 클라우드에서 제공하는 Database를 활용할 수 있다.
웹, 앱 서비스와 Database가 연결되어 있는 경우가 많으며 대표적으로 MySQL, PosgreSQL 등을 사용할 수 있다.
사용자 로그 데이터를 Database에 저장할 수도 있으며 Object Storage에 저장할 수도 있다. 데이터의 사용 용도에 따라 위치를 선택하면 된다.
DB에 저장된 데이터는 데이터 분석을 메인으로 하는 저장소가 아닌 서비스에 활용할 데이터를 저장하는 공간이다.
DB에 있는 데이터, Object Storage에 있는 데이터 등을 모두 모아서 Data Warehouse에 저장하여 데이터 분석에 활용할 수 있다. 추가적으로 이 공간에서 데이터를 조회하는것이 훨씬 빠르다.
AI Research, AI Develop 과정을 편리하게 해주는 제품으로 MLOps 관련 서비스를 제공하게 된다.
클라우드 회사마다 제품의 이름은 다르지만 하나의 제품의 이름을 알면 모두 검색해서 사용할 수 있다.
GCP는 첫 가입시 $300 크레딧을 제공한다. 학습할 때 클라우드 비용을 내면서 쓰는 부담을 줄일 수 있으며 하나의 클라우드에 익숙해지면 다른 클라우드도 수월하게 사용할 수 있다.
Gmail 로그인 후, Google Cloud에 접속하여 무료로 시작하기를 클릭
회원가입을 완료하면 프로젝트 생성이 완료!
프로젝트 정보 공간으로 project_name과 project_id를 자주 사용한다.
Product를 사용하고 있다면 모니터링 해야하는 공간
GCP의 다양한 Product(Compute Engine, k8s, VM 등)를 볼 수 있는 공간
버킷을 생성하면 파일, 폴더 등 업로드가 가능하며 폴더 만들기도 가능하다.
Compute Engine 인스턴스 띄우고 삭제해보기
Compute Engine 인스턴스에서 Shell Command 연습
Cloud Storage의 Bucket 생성 후 파일 업로드 및 삭제해보기
Python Cloud Storage API를 사용해 업로드한 파일을 파이썬에서 사용하는 코드 작성해보기 (참고문서)