3월 8일에 Google Cloud Onboard에 다녀왔다. 팬데믹 현상 이후에 Google Cloud에서 처음으로 개최된 오프라인 행사이며 클라우드의 여러 Product에 대한 소개를 들었다.
발표자 : 진광훈, Customer Engineer
Google Cloud도 다른 Public Cloud를 제공하는 회사 못지 않는 큰 규모의 데이터센터를 지니고 있으며 대표하는 카테고리 세 가지다.
친환경 클라우드: Google Cloud Region Picker 기능을 통해서 친환경적인 Region을 추천한다.
해저 광케이블에 진심인 회사: Google Cloud Location에 접속하면 광케이블 설치되어 있는 지역을 확인할 수 있다.
다양한 서비스 제공: googlecloudcheatsheet.withgoogle.com에서 다양한 서비스 목록에 대해서 확인할 수 있다.
Google Cloud는 Multi-Region(Europe), Region(europe-west2), Zone(europe-west2-a)으로 리소스를 구성한다.
구글 클라우드에 접근하는 방법은 다음과 같습니다.
리소스 계층 수준 신뢰 경계를 정의한다.
사용하는 모든 구글 클라우드 서비스는 프로젝트와 연결되며, 프로젝트가 하나의 그룹화 할 수 있는 요소이다.
유연한 관리를 제공하는 폴더
조직(Organization) 노드는 최상위 권한이며, 프로젝트를 구성한다.
IAM(Identity and Access Management) 리소스 계층의 예
🔥 누가(Who) + 무엇을 할 수 잇나(can do what) + 어떤 리소스에 (on which resource)
서비스 계정(Service Account)은 서버 간 상호 작용을 제어한다.
서비스 계정 및 IAM
구글 클라우드와 상호작용하는 네 가지 방법
발표자 : 최유정, APAC Technology Practice Specialist, Data Management
Google Cloud는 15개의 카테고리 기반의 410개의 DBMS를 보유하고 있다. DT(Digital transformation)를 위한 근간은 데이터베이스이며, Google Cloud는 데이터베이스 유지보수에 대한 Managed 벤더를 제공한다.
💡 Challenge 1
1. 익숙한 관계형 DB를 사용하고 싶을 때
2. 데이터베이스 관리(HA, 확장, 보안, 백업/복구, DR 등) 관리를 손쉽게 하고 싶을 때
3. On-premise 데이터베이스를 최소한의 노력으로 클라우드로 이관하고자 할 때
4. 관계형 데이터베이스의 데이터를 분석하고 싶은데, Data Pipeline 구성을 구성할 때
∴ Cloud SQL: Fully managed relational dabase service
💡 Challenge 2
1. 시스템 응답 시간을 더 빠르게 하고 싶을 때
2. 데이터베이스 읽기 부하가 많은데 확장을 할 지? 다른 방안이 없을 지 모색할 때
3. 추가 인력을 투입하기 어렵고 관리형 서비스를 찾을 때
∴ Memory Store
💡 Challenge 3
1. Heavy workload를 위한 더 나은 성능을 제공하는 Database가 필요할 때
2. 대쉬보드 및 리포팅을 위한 OLAP 쿼리 성능도 빠르게 수행하고 싶을 때
3. 오픈소스 데이터베이스를 더 관리하기 쉬운 방법을 찾을 때
4. 머신 러닝 모델을 손쉽게 활용하는 방안이 필요할 때
∴ AlloyDB: PostgreSQL + Cloud native architecture + DNA of AI/ML
Better Performance
Easy to manage with advanced ML(Machine Learning)
💡 Challenge 4
1. 모바일과 웹 등 Multi Devices를 지원하는 애플리케이션을 작성해야 할 때
2. 디바이스 간 동기화를 고려할 때
3. 오프라인시에도 서비스를 지속하고 싶고, 네트워크 복구 시에 동기화를 고민할 때
4. 워크로드 증가에 따른 확장 및 관리하기 쉬운 데이터베이스를 찾을 때
∴ Firestore
💡 Challenge 5
1. 클릭스트림이나 IoT처럼 엄청나게 쏟아지는 데이터를 빠르게 저장해야 할 때
2. 스키마를 미리 예측하기 어려울 때
3. 처리량이 예측이 안되는데, 나중에 무중단으로 읽기/쓰기 모두 확장해야 할 때
4. 글로벌 서비스를 하고 싶은데 동기화를 쉽게 구현하고 싶을 때
∴ Cloud Bigtable: Low latency and high throughput at scale
💡 Challenge 6
1. 무중단 시스템을 위해 다운타임을 최소화 하고 싶을 때
2. 워크로드에 따라 무중단으로 읽기/쓰기 모두 확장해야 할 때
3. RDBMS처럼 SQL도 사용하고 스키마 관리 및 트랜잭션 처리도 해야할 때
4. 글로벌 서비스를 하고 싶은데 강력한 일관성을 보장해야 할 때
∴ Spanner: 분산 환경, 트랜잭션 관리
발표자 : 진광훈, Customer Engineer
Compute Engine이란?
가상 머신 인스턴스 / VM instances
가상 머신 인스턴스 : 이름 규칙
계열 내의 머신에서 standard, highcpu, highmemory로 구분되는 기준은 vCPU:Memory 비율이다.
클라우드는 기본적으로 점유권에 따라서 가격이 결정된다.
가상 머신 인스턴스 : 가격 형성 구조
할인 프로그램
VPC(Virtual Private Cloud Networking)
New Product
발표자: 이보란, Customer Engineer, Infrastructure Modernization
구글 클라우드 내의 스토리지는 Colossus 기반으로 되어있다.
Object 스토리지 : API 형태로 제공, Cloud Storage
종류 : 컨텐츠/이미지 전송, 데이터 분석, 백업 및 아카이브
특징: 사용 편의성, 안정성 비용 효율성(월 GB당 $0.0025), 아카이브 스토리지에 백업 하더라도 빠른 접근 속도(ms이내) 유지
활용 영역: 컨텐츠 저장 및 전달, 분석 및 머신러닝, 백업 및 아카이빙
기본 이해(용어)
객체 : 데이터의 기본 형태
버킷 : 객체를 담는 곳
Location : 버킷이 생성되는 곳
Storage Class : 객체에 적용되는 클래스, 가격과 영향
버킷 및 객체의 보호/보존 조치(Locking)
버킷 레벨에서의 관리
객체 레벨에서의 관리
Versioning: 객체 버전 관리: 버킷 레벨에서 Versioning을 활성화
데이터 암호화: 기본 키, 고객 관리 암호화 키, 고객 제공 암호화 키
데이터 접근 제어
VPC Service Control: 데이터 내부 유출 방지
File Store: 계층 구조 형태의 완전 관리형 파일 서버
종류: SAP, Web 컨텐츠 전송, 미디어, 엔터테인먼트, 헬스케어
등급
발표자: 이기원, Customer Engineer
소프트웨어의 배포는 Physical Server/Dedicated Server
→ Virtual Machine
→ Container
→ Serverless
순서로 발전했다.
Physical Server / Dedicated Server
Virtual Machine
Container
Docker를 활용하여 컨테이너 이미지를 생성고, 컨테이너 이미지를 저장소(Artifact Registry)에 저장한다.
💡 Challenge
1. 수 많은 노드에 컨테이너들을 어느 노드에 어떻게 배포할 것인가요?
2. 특정 노드가 실패되면 어떻게 조치 할 것 인가요?
3. 특정 컨테이너가 실패되면 어떻게 조치 할 것인가요?
4. 배포된 애플리케이션들의 업그레이드는 어떻게 배포할 것인가요?
위와 같은 챌린지 상황에서, 컨테이너 워크로드를 관리 실행하기 위한 컨테이노 오케스트레이셔 서비스로 Kubernetes가 de facto standard가 되었다.
쿠버네티스 아키텍처
기능
스케줄링(Scheduling): 파드들이 실행될 노드를 결정
라이프사이클과 상태 유지(Lifcycle and health): 오류가 발생되더라도 컨테이너의 실행을 보장
스케일링(Scaling): 요청에 따라 컨테이너들을 확대/축소
로드 밸런싱(Load balancing): 컨테이너들에 트래픽을 분산
네이밍과 검색(Naming and discovery): 컨테이너들이 어디에서 동작되고 있는지 찾기
스토리지 볼륨(Storage volumes): 컨테이너에 데이터 저장소 제공
로깅과 모니터링(Logging and Monitoring): 컨테이너 운영을 위한 로깅과 모니터링
디버깅과 검사(Debuging and introspection): Enter of attach to containers
인증과 권한 부여(Identity and authorization): 컨테이너에 작업을 할 수 있는 사용자의 인증과 액세스 관리
Google은 Kubernetes는 내부의 클러스터 관리 시스템인 Brog로 부터 영감을 받아 개발했고, 2014년에 오픈 소스로 출시되었다. Google의 컨테너화된 워크로드를 15년 이상 실행한 경험을 기반으로 구축되었으며, 오픈소스 Kubernetes의 가장 큰 엔지니어링 기여자이다. Kubernetes는 GKE에서 빌드되고 배포되며, 모든 테스트는 GKE에서 실행된다.
GKE의 특징 및 기능
완전 관리형: 단순성과 자동화, 비즈니스에 집중
보안적 설계: 실제 환경에서 테스트 되고 강화된 보안 설정
워크로드 최적화: 자동화된 워크로드의 확장
GKE는 두 가지 운영 모드가 있다.
특징
광범위한 기능 지원
Wrap up
Google Cloud OnBoard
라는 세미나의 제목을 통해 알 수 있듯이, Google Cloud에 대한 소개와 다양한 제품들에 대한 설명을 들었습니다. 개발자로서 중요하지 않은 내용이라고 생각할 수도 있지만, Google Cloud에 대한 관심과 구글 엔지니어들에 대한 막연한 궁금증으로 인해 참여했습니다.
연사 중에 나왔던 Planet Scale(행성 차원에서의 Auto-Scaling) 이라는 용어는 엔지니어로서 도전 의식을 심어주는 거 같습니다. 또한, Google Cloud Engineer의 기술에 대한 이해와 Product에 대한 자부심은 듣는 이로 하여금 신뢰감을 주며 프로다움을 느낄 수 있었습니다.
마지막 세션 주제였던 GKE 관련 발표를 들으며 IT 분야에 Silver Bullet은 없다지만, Kubernetes는 알면 알수록 Siver Bullet이라는 생각이 들었습니다. (오죽하면 De facto standard..)
요즘 유행하는 중꺾마(중요한 건 꺾이지 않는 마음)라는 말을 아시나요? 저는 그보다 공감이 됐던 건 개그맨 박명수님 말했던 중요한 건 꺾였는데도 그냥 하는 마음
입니다. 빠르게 변화하는 기술과 직장에서의 현실적인 업무 환경 사이에 때론 괴리감이 들기도 합니다. 따라서, 마음이 꺾일지라도 엔지니어로서 새로운 기술을 수용하고, 더 나은 아키텍처를 구상하며 지속적인 학습을 하는 것이 중요하다고 생각합니다.
출처
할명수
Google Cloud OnBoard