본문 바로가기
CSP (Cloud Service Provider)/GCP

[Google Cloud Platform] 스토리지, 컨테이너

by BTC_박은혜 2022. 7. 8.

 

안녕하세요~ 할부로애틋하게 BTC_손지수, 박은혜 입니다!

이번 포스팅에선 저희가 앞 서 잠깐 설명 드렸던 컨테이너와 쿠버네티스

그리고 GCP 내 제품 및 서비스에 대해 알아보고자 합니다!

그럼 이번 한 주도 GCP에 더 가까워져 봅시다 ~!

 


먼저, 이번 주엔 컨테이너란 무엇인지 다시 한 번 설명드리고자 합니다.

컨테이너란, 표준 소프트웨어 패키지입니다.

이 컨테이너는 애플리케이션의 코드를 관련 구성 파일, 라이브러리 및 앱 실행에 필요한 종속성과 함께 번들로 제공합니다.

따라서 개발자와 IT 전문가는 여러 환경에서 애플리케이션을 원활하게 배포할 수 있습니다.

다시 말해 애플리케이션을 개발 및 배포하는 데 보다 효율적인 방법이라고 할 수 있습니다!

 

그렇다면 쿠버네티스는 무엇인지 그 개념에 대해 살짝만 알아보고자 합니다.

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼입니다.

쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해주며, 크고, 빠르게 성장하는 생태계를 가지고 있습니다.

또한 이러한 쿠버네티스의 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용이 가능한 장점이 있습니다.

 

그리고 GCP 내에선 Google Kubernetes Engine(GKE)가 존재합니다.

GKE는 Google 인프라를 사용하여 컨테이너식 애플리케이션을 배포, 관리, 확장할 수 있는 관리형 환경을 제공합니다! 

GKE 클러스터는 Kubernetes 오픈소스 클러스터 관리 시스템을 기반으로 합니다.

Kubernetes는 클러스터와 상호작용할 수 있는 메커니즘을 제공합니다.

Kubernetes 명령어와 리소스를 사용하면 애플리케이션을 배포 및 관리하고 관리 작업을 수행하고

정책을 설정하며 배포된 워크로드의 상태를 모니터링할 수 있습니다!

 

쿠버네티스 사용시 GKE를 사용하게 된다면 정말 편리하게 이용할 수 있겠죠?

 

이렇게 컨테이너와 쿠버네티스에 대하여 살짝 알아보았는데요,

그렇다면 이러한 서비스들을 이용하기 위해선 그 전에, 개발이 먼저 되어야겠죠?

개발을 위한 GCP 내의 제품 및 서비스들에는 어떤 것들이 있는지 알아보고자 합니다!

 

저희는 이번에 Cloud Source Repositories, Cloud Functions, Operations Suite 에 대하여 알아보도록 하겠습니다.

 

먼저 Cloud Source Repositories 입니다.

Cloud Source Repositories는 Google Cloud에서 호스팅되는 모든 기능을 갖춘 비공개 Git 저장소를 제공합니다.

Cloud Source Repositories를 App Engine  Compute Engine에서 실행되는 저장소를 포함하여

모든 앱 또는 서비스의 버전 관리되는 공동 개발을 위해 사용할 수 있습니다.

Git에 익숙하다면 Cloud Source Repositories에서 빠르게 시작할 수 있습니다.

예를 들어 Cloud Source Repositories를 로컬 Git 저장소에 원격으로 추가하거나 GitHub

또는 Bitbucket에 호스팅된 저장소에 연결할 수 있습니다.

로컬 저장소에서 push, pull, clone, log를 포함한 Git 명령어 표준 집합을 사용하여

이러한 저장소와 상호작용할 수 있습니다!

정말 편리하겠죠?

(하지만 이때, Cloud Source Repositories에는 사용자 또는 개인 데이터가 아닌 앱의 소스 코드만 저장할 수 있습니다. 

라이선스 계약에서 정의된 Core App Engine 고객 데이터를 Cloud Source Repositories에 저장하지 마세요!)

 

또한 Cloud Source Repositories에 있는 저장소는 Git 저장소이므로,

원하는 편집자를 사용하여 코드 작업을 계속 수행할 수 있습니다.

(예를 들어 Visual Studio용 Cloud Tools, IntelliJ용 Cloud Code, Android Studio용 Cloud Tools 이 있습니다!)

 

또, Cloud Source Repositories에는 GCP Console 내에서 저장소 파일을 볼 수 있는

다음과 같은 소스 브라우저도 제공됩니다.

소스 브라우저

 

 

다음으로는 Cloud Functions에 대해 알아보도록 하겠습니다!

Google Cloud Functions는 클라우드 서비스를 빌드 및 연결하기 위한 서버리스 실행 환경입니다.

Cloud Functions를 사용하면 클라우드 인프라와 서비스에서

발생하는 이벤트에 연결되는 단일 목적의 간단한 함수를 작성할 수 있습니다.

함수는 감시 중인 이벤트 발생 시에 트리거됩니다. 코드는 완전 관리형 환경에서 실행되므로,

인프라를 프로비저닝하거나 서버를 관리할 필요가 없습니다.

 

Cloud Functions는 Google Cloud Platform에서 자바스크립트, Python 3, Go

또는 자바 런타임을 사용하여 작성될 수 있습니다.

함수를 표준 Node.js(Node.js 10/12), Python 3(Python 3.7/3.8), Go(Go 1.11/1.13)

또는 자바(자바 11) 환경에서 실행할 수 있으므로, 이동성과 로컬 테스트가 모두 간편합니다.

 

뿐만 아니라,

Cloud Functions는 클라우드 서비스의 연결과 확장 코드를 작성할 수 있도록 로직의 연결 레이어를 제공합니다.

Cloud Storage로의 파일 업로드, 로그 변경 또는 Pub/Sub 주제의 수신 메시지를 리슨 및 응답할 수 있습니다.

Cloud Functions를 사용하면 기존의 클라우드 서비스를 확대하고

임의의 프로그래밍 로직으로 증가하는 사용 사례를 처리할 수 있습니다.

Cloud Functions는 Google 서비스 계정 사용자 인증 정보에 액세스할 수 있으므로

Cloud Vision 등과 같은 대부분의 Google Cloud 서비스를 통해 원활하게 인증됩니다.

또한 Cloud Functions는 수많은 Google Cloud 클라이언트 라이브러리에서 지원되므로, 통합이 더욱 간편합니다.

 

또 Cloud 이벤트란 클라우드 환경에서 발생하는 모든 상황을 의미 하는데요,

여기에는 데이터베이스의 데이터 변경, 저장소 시스템에 파일 추가,

새로운 가상 머신 인스턴스 생성 등이 포함될 수 있습니다.

이벤트는 응답 여부와 관계없이 발생합니다.

사용자는 트리거를 사용하여 이벤트에 대한 응답을 만들 수 있습니다.

트리거란 특정 이벤트 또는 이벤트 집합에 관심이 있음을 나타내는 선언입니다.

함수와 트리거를 결합하면 이벤트를 포착하여 조치를 취할 수 있습니다!

 

마지막으로 Operations Suite 입니다!

GCP 의 제품은 서비스를 대규모로 모니터링, 문제 해결 및 운영하는 제품으로 구성되어 DevOps, SRE

또는 ITOps 팀이 Google SRE 모범 사례를 활용할 수 있도록 지원합니다.

모니터링, 로깅 및 추적, 디버거 및 프로파일러와 같은 고급 관찰 가능성 서비스를 위한 통합 기능을 제공합니다!

 

여기엔 클라우드 로깅, 클라우드 모니터링,응용 프로그램 성능 관리 APM (Cloud Trace, Cloud 디버거,Cloud Profiler)이

포함됩니다!

 

각각 무슨 역할을 하는지 더 자세하게 알아보고자 합니다!

 

먼저 클라우드 로깅 Google Cloud 전체의 모든 인프라 및 애플리케이션의 로그 데이터를 단일 위치로 집계하는 완전 관리되고 확장성이 뛰어난 서비스입니다.

또한 Google Cloud 서비스에서 로그 데이터를 자동으로 수집하고, 애플리케이션, 온프레미스 소스 또는 기타 클라우드와 같은 사용자 지정 로그 소스는 Ops 에이전트, 오픈 소스 또는 API를 통해 수집합니다.

클라우드 로깅에 로그를 보관하거나, 클라우드 스토리지로 내보내거나, Cloud Pub/sub를 통해 사용자 지정 타사 대상으로 로그를 스트리밍하는 등 로그를 저장하는 방법 및 위치를 결정할 수 있는 완벽한 제어 기능을 제공합니다.

 

다음으로 클라우드 모니터링입니다. 모니터링은 앱 및 인프라가 어디에 있든, Google Cloud, 온프레미스 또는 다른 클라우드에 관계없이 앱 및 인프라 전반에서 관찰 가능성을 제공합니다. 다양한 메트릭 통합을 지원하며 사용 사례에 고유한 사용자 지정 메트릭을 정의하고 이러한 메트릭을 외부 시스템으로 보낼 수도 있습니다!

 

응용 프로그램 성능 관리 (APM) 클라우드 로깅 및 클라우드 모니터링의 모니터링 및 문제 해결 기능을 클라우드 추적, 클라우드 디버거 및 클라우드 프로파일러와 결합하여 대기 시간과 비용을 줄여 보다 효율적인 애플리케이션을 실행할 수 있도록 지원합니다.

 

더불어, 더 자세하게 알아보자면

  • Cloud Trace는 시각화 및 분석을 제공하여 앱의 요청 흐름, 서비스 토폴로지 및 대기 시간 문제를 이해합니다.
  • Cloud 디버거를 사용하면 배포 후 응용 프로그램을 중지하거나 느리게 할 필요 없이 실행 중인 응용 프로그램의 상태를 검사할 수 있습니다.
  • Cloud Profiler는 각 서비스에서 코드의 성능을 지속적으로 분석하므로 속도를 향상시키고 비용을 절감할 수 있습니다. 또한 성능에 영향을 미치지 않고 효과적으로 프로덕션에서 실행되도록 설계되었습니다.

 

지금까지 컨테이너와 쿠버네티스 그리고 개발에 있어서 필요한 제품 및 서비스에 대해 알아보았습니다!

그럼 이번 한 주도 고생 많으셨고,

저희는 다음 주에 더 알찬 내용으로 다시 돌아오도록 하겠습니다!

오늘도 봐주셔서 감사합니다~~

댓글