- Cloud2023년 07월 03일
- Cat_Code
- 작성자
- 2023.07.03.:57
목차
1. 우리는 왜 Cloud 시스템을 사용하는가?
2. Cloud 시스템의 종류와 제품들
3. Google Cloud 서비스 실습
1. 우리는 왜 Cloud 시스템을 사용하는가?
최근 Cloud 서비스가 범람하고 있다
간단한 예시로는 구글 Cloud 서비스나 AWS의 서비스등이 있다
대부분 서비스를 프로덕트하는 회사에서는 클라우드 시스템을 적극적으로 활용한다
왜 일까?
간단하게 말하자면 서비스 프로덕 과정에서 개발 및 배포에 필요한 설비 비용을 절감할 수 있고, 트랙픽에 따라서 유동성 있게 설비를 활용할 수 있기 때문이다
예를 들어서 우리가 인공지능 서비스를 하나 만들었다고 가정해보자
이제 이 놀라운 서비스를 사용자들에게 배포할 시기가 왔다
어떻게 배포해야할까?
가장 간단하게 생각할 수 있는 접근법은 우리가 갖고 있는 localhost 환경에 서비스 환경을 구축하는 것이다
즉, 현재 내가 사용하고 있는 Laptop or Desktop등에서 해당 서비스 환경을 만들어 배포한는 것이다
하지만 이러한 접근의 한계는 명확하다
컴퓨터가 물리적으로 종료되었을 경우 서비스의 제공도 함께 종료된다
즉, 서비스가 제공되고 있는 동안은 나의 컴퓨터도 계속 켜져있어야하는 것이다
개인이 이런 서버실을 가질수 있을까?? 이를 피하기 위해서 대부분 서버컴퓨터 or 서버실을 만들 수 있다
여기서 말하는 것은 물리적인 서버 컴퓨터와 서버실이다
하지만 개인이 이러한 설비를 갖추기에는 막대한 초기 비용이 소모되고
실제로 물리적인 서버 시설을 관리하기에도 힘이 든다
따라서 Google, AWS등 대기업들의 클라우드 서비스를 활용하는 것은 경제적인 측면에서 도움이 될 수 있다
물론 무지성으로 클라우드 서비스를 사용하다 보면 요금 폭탄을 받을 수 있는 것은 함정이다...
클라우드 서비스를 사용하는 또다른 이유는 앞에서 간단하게 언급했던
유연한 설비 활용이다
쉽게 말해서 경제적인 측면과 같다
트래픽이 많을 때 우리는 서버 컴퓨터를 늘려야하는 환경에 마주친다
또는 트래픽이 적을때는 서버 컴퓨터를 줄이는 것이 경제적이다
하지만 실제적인 서버시설을 구축하고 활용하다 보면 이러한 유연한 환경에 대처하기가 매우 쉽지 않다
실제로 서버실 구조를 항상 확장할 수 있게 고려할 수 없고, 트래픽이 적다고 컴퓨터를 줄였는데 갑자기 늘어나면 감당이 힘들어 진다
따라서 클라우드 서비스를 활용하게 된다면 가상환경을 활용하기 때문에 이러한 유연성에도 대처하기가 쉬워진다
2. Cloud 시스템의 종류와 제품들
클라우드 시스템의 종류와 제품들은 여러개가 존재한다
여기서는 간단하게 종류를 살펴보고
대표적인 제품들의 이름정도만 파악해보자
먼저 클라우드 시스템의 종류를 큰 분류로는 IaaS, PaaS, SaaS로 나눠서 볼 수 있다
SaaS의 경우에는 Gmail, Slack등 실질적으로 개발자가 아니더라도 일반 이용자가 쉽게 활용할 수 있는 서비스의 개념에 가깝다
즉, 서비스로 제공되는 인프스트릭쳐인 것이다
PaaS의 경우 응용 프로그램을 개발할 때 필요한 플랫폼이다. 즉, 고객에게 OS, 미들웨어, 런타임과 같은 소프트웨 작성을 위하 플랫폼을 가상화하여 제공한다
IaaS의 경우에는 물리적 인프라를 제공해주는 서비스이다
즉, 네트워크, OS, 서버 등 완전히 물리적인 기능을 제공해주는 서비스이다
클라우드 서비스 이해하기 IaaS, PaaS, SaaS | 와탭 블로그
회사에 클라우드를 도입해야 한다면 어떤 클라우드 서비스 종류를 선택해야 하는지 알려드립니다.
www.whatap.io
Computing Service (Server)
- 연산을 수행하는 서비스
- 가상 컴퓨터, 서버
- CPU, Memory, GPU등을 선택할 수 있음
- 가장 많이 사용할 제품
- 인스턴스 생성 후, 인스턴스에 들어가서 이용
Serverless Computing
- 앞에 나온 Computing Service와 유사하지만, 서버 관리를 클라우드쪽에서 진행
- 코드를 클라우드에 제출하면, 그 코드를 가지고 서버를 실행해주는 형태
- 요청 부하에 따라 자동으로 확장 (Auto Scaling)
- Micro Service로 많이 활용(AWS Lambda)
Stateless Container
- Docker를 사용한 Contatiner 기반으로 서버를 실행하는 구조
- Docker Image를 업로드하면 해당 이미지 기반으로 서버를 실행해주는 형태
- 요청 부하에 따라서 자동으로 확장
Object Storage
- 다양한 형태의 저장소
- 다양한 형태의 데이터를 저장할 수 있으며, API를 사용해 데이터에 접근할 수 있음
- 점점 데이터 저장비용이 저렴해지고 있다
Database(RDB)
- Database가 필요한 경우 클라우드에서 제공하는 Database를 활용할 수 있음
- 웹, 앱 서비스와 데이터베이스가 연결되어 있는 경우가 많으며, 대표적인 MySQL, PosgreSQL등을 사용할 수 있음
Data Warehouse
- Database에 저장된 데이터는 데이터 분석을 메인으로 하는 저장소가 아니라 서비스에 활용할 Database
- 따라서 Data Warehouse에 저장하여서 데이터 분석에 특화된 Database
AI Platform
- AI Research, AI Develop 과정을 더 편리하게 해주는 제품
- MLOps 관련 서비스 제공
- Google Cloud Platform : TPU
3. Google Cloud 서비스 실습
실습 - 과제
1) ComputeEngine 인스턴스띄우고 삭제해보기
2) ComputeEngine 인스턴스에서 ShellCommand연습하기
3) Cloud Storage의 Bucket생성 하고파일업로드, 삭제해보기
4) PythonCloudStorageAPI를 사용해 Cloud Storage에 업로드한 파일을 파이썬에서 사용하는 코드작성
[GCP] Python에서 GCP Cloud Storage 연동하기
python과 GCP Cloud Storage을 연동시켜 두면 정적인 파일을 주기적으로 관리하기 편리하다. 이를 위해서는 GCP에서 user 인증을 하는 과정, 인증서를 발급받아 연동하는 방법 등을 거쳐야하며 이를 정리
soundprovider.tistory.com
from google.cloud.storage.bucket import Bucket from google.cloud import storage import os os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="다운받은 키 경로" client = storage.Client() buckets = list(client.list_buckets()) if len(buckets) == 1: print("현재 생성되어 있는 buckets : ", buckets[0].name) bucket_name = buckets[0].name elif len(buckets) > 1: bucket_list = list(f.name for f in buckets) print("현재 생성되어 있는 Bucket list : ", bucket_list) bucket_num = int(input("어떤 bucket을 선택하시겠습니다?? (번호로 입력해주세요) : ")) bucket_name = bucket_list[bucket_num] else: print("생성되어 있는 bucket이 없습니다") exit() bucket = client.get_bucket(bucket_name) file_path = input('upload할 파일의 절대 경로 path을 입력해주세요 : ') save_name = input('저장할 이름을 입력해주세요 : ') #blob만들기 blob = bucket.blob(save_name) #upload blob.upload_from_filename(file_path) print('파일이 업로드 되었습니다!!')
다음글이전글이전 글이 없습니다.댓글