Google Cloud Anthos:
기업은 혁신적이고 확장성 있는 퍼블릭 클라우드의 도입으로 비용과 생산성 측면에서 많은 이점을 얻을 수 있지만 여전히 On-Prem 환경에 많은 투자를 하고 있습니다. 또한 고객의 요구 사항과 각종 규제, 보안 요건 등으로 인해 모든 워크로드의 퍼블릭 클라우드 이동이 아닌 On-Prem과 연동을 통한 하이브리드 클라우드 환경을 필요로 하고 있으며, 이러한 환경에서 개발과 운영속도의 증가, 보안 확보를 위해 여전히 많은 고민을 하고 있습니다.
구글 클라우드는 이러한 요구 조건을 충족시키기 위해 Anthos를 발표하였습니다. Anthos는 쿠버네티스(Kubernetes), Istio 및 Knative를 비롯한 오픈소스 기술을 기반으로 퍼블릭과 On-Prem환경에서 개발, 배포, 보안, 운영을 통합해주는 구글 클라우드의 새로운 개방형 플랫폼입니다.
뉴스레터 가입
클라우드 관련 최신 소식을 업데이트 받으실 수 있습니다.
Anthos는 마이크로 서비스 아키텍쳐에 기반한 현대화된 어플리케이션에 대하여, On-Prem과 퍼블릭 클라우드 구분 없이 손쉬운 배포와 운영을 가능하게 하고 서비스 가시성과 정책의 일관성을 확보할 수 있습니다. 이를 구현하기 위해 Anthos가 포함하고 있는 기술적, 구조적 요소들을 살펴보겠습니다.
1. GKE On-Prem
Anthos의 배경에는 마이크로 서비스 아키텍쳐에 기반한 어플리케이션과 이를 구동하기 위한 컨테이너 기반 환경, 그리고 쿠버네티스가 있습니다. 쿠버네티스는 구글이 설계한 배포 자동화, 스케일링, 컨테이너화 된 애플리케이션의 관리를 위해 광범위하게 사용되고 있는 오픈 소스 시스템으로, 이를 구글 클라우드 플랫폼에서 손쉽게 구성하여 사용할 수 있도록 한 것이 2015년 서비스를 시작한 구글 쿠버네티스 엔진(Google Kubernetes Engine, GKE)입니다.
1) 아키텍처
GKE On-Prem은 GKE를 On-Prem 환경까지 확장하여 하이브리드 클라우드 환경을 제공하는 것으로, 고객의 데이터 센터에 위치한 VMware 인프라에 GKE에 준하는 쿠버네티스 및 컨테이너 인프라 환경을 구축하여 이용할 수 있습니다.
GKE On-Prem은 초기 구축을 위한 가상 어플라이언스(Admin Workstation) 형태로 제공되며, VMware 상에 복잡한 Admin 클러스터와 User 클러스터의 구성을 자동화합니다.
- Admin 클러스터 : vCenter API를 이용하여 VMware 환경에서 User 클러스터의 생성, 업그레이드 등을 수행, 실제 어플리케이션의 배포, 운영과 무관
- User 클러스터 : 실제 워크로드가 구동되며, kubectl 명령어를 이용한 제어
2) Network
다양한 고객의 On-Prem 환경에서 일관된 GKE On-Prem의 운영을 위해선, 가상화된 인프라 상에 필요한 네트워크 구성을 갖출 필요가 있습니다. 업계에서 폭넓게 사용되는 F5 BIG-IP장비의 경우를 예로 들면, GKE On-Prem은 API를 사용하여 F5 장비를 직접 제어하며 이를 통해 각종 서비스에 필요한 로드 밸런서 구성 등을 자동화합니다.(벤더 지원 요소는 계속해서 확대 예정) 이러한 환경을 위해서 GKE On-Prem은 아래와 같은 네트워크 설계를 기반으로 합니다.
1. Node IP : 가상 머신을 위한 IP, 수동 또는 동적할당으로 요건에 맞게 구성 가능
2. Pod IP : 클러스터 내 컨테이너가 구동되는 Pod의 IP 대역
3. Service IP : 노드 또는 다른 VIP 대역과 겹치지 않는 사설 IP 대역
4. Service VIP : Node-port Expose용, F5 장비에서 라우팅이 가능한 IP Pool
5. Control Plane VIP : Kubernetes API 서버용 IP
6. Ingress VIP : Ingress용, F5 장비에서 라우팅 가능한 IP Pool
해당 요소들은 GKE On-Prem 초기 구성 시 간단한 설정을 통해 기반 환경을 설정할 수 있으며, 이후 GKE에서 로드 밸런서를 구성하는 방식과 동일한 방식으로 On-Prem 환경에 배포가 가능합니다. 마찬가지로 쿠버네티스에서 적용되는 네트워크 정책은 칼리코(Calico)를 이용하여 구현됩니다.
구분 | GKE | GKE On-Prem |
---|---|---|
쿠버네티스 버전 | 최소한으로 수정된 오픈소스 쿠버네티스 | |
운영체제 | Ubuntu 또는 컨테이너 최적화 OS | Ubuntu |
관리도구 | GCP 콘솔, kubectl, gcloud | GCP 콘솔, kubectl, gkectl |
네트워크 정책 | Calico | |
로깅 | Stackdriver 로깅 | Stackdriver 로깅 또는 EFK 등 |
모니터링 | Stackdriver 모니터링 | Stackdriver 모니터링 또는 Prometheus + Grafana등 |
GKE와 GKE On-Prem
앞서 살펴본 GKE On-Prem은 구글이 소개하는 Anthos 중추적인 요소로서, 상용 GKE에 준하는 성숙된 쿠버네티스 환경을 고객의 On-Prem 환경에 간편하게 구현할 수 있도록 하고 있습니다. 또한 업그레이드를 비롯한 주요 관리 및 운영을 자동화하고 최신 어플리케이션 환경에 적합한 각종 요소들과 긴밀히 통합되어 있습니다.
2. Anthos Hub/Connect
생성된 GKE On-Prem 환경은 GKE Connect 에이전트를 사용한 암호화된 통신을 수행하여, On-Prem의 워크로드를 구글 클라우드 콘솔에서 상호작용할 수 있도록 통합 관리 환경을 제공합니다. 해당 연결은 사용자 클러스터의 외부 공인 IP를 필요로 하지 않으므로 상대적으로 네트워크 환경이 제한된 On-Prem 환경에서도 구현이 가능합니다.
사용자는 이를 통해 구글 클라우드 플랫폼과 긴밀하게 융합된 하이브리드 운영 환경을 이용할 수 있습니다.
3. Anthos Config Management
쿠버네티스 환경은 필요에 따라 단일 Tenant-단일 클러스터부터 멀티 Tenant-멀티 클러스터 환경까지 다양한 형태로 구성되는데, 단일 GKE 클러스터를 사용하는 환경이 아닌 복수의 클러스터와 On-Prem 하이브리드 환경에 이르게 되면 일관된 정책과 구성을 유지하는 것은 적지 않은 운영 소요를 발생시킵니다.
구글은 이에 대한 보완 수단으로 Config management를 제시하고 있습니다. Anthos Config Management는 하이브리드 클라우드 환경에서 코드 기반 설정(Config As Code)을 가능하게 하며, 복수의 클러스터 환경에 대해 일관성을 제공하는 통합 운영 도구입니다.
Config Management의 정책 저장소에서 관리되는 코드는 거의 모든 쿠버네티스와 Istio 리소스를 다룰 수 있으며, 일반적인 YAML 형식을 가지는 해당 코드용 플러그인은 기존의 CI/CD 파이프 라인에 손쉽게 통합할 수 있습니다.
정책 저장소(Policy Repository)는 하이브리드 환경에 존재하는 복수의 쿠버네티스 클러스터에 대한 설정을 동기화 하고, 보안 정책과 컴플라이언스 정책을 강제하거나 감사 기록을 제공함으로써, 하이브리드 클러스터 운영에 대한 난제를 해결하고 있습니다.
4. Cloud Service Mesh
컨테이너 기반 어플리케이션 환경은 다수의 작은 서비스(Micro Service)간 연결을 통해 성립됩니다. 어플리케이션의 규모가 커지고 서비스가 많아질수록 그 연결은 점점 더 복잡해지며, 복수의 클러스터가 존재하는 하이브리드 환경에 이르게 되면, 이를 효율적으로 모니터링하고 운영하기 위한 수단을 반드시 필요로 하게 됩니다. 이를 위해 Anthos가 제시한 것은 일종의 서비스를 위한 소프트웨어 정의 네트워크라고 할 수 있는 Cloud Service Mesh입니다.
Service Mesh는 마이크로 서비스 아키텍처에서 다수의 서비스 간 연결에 대한 가시성을 제공하고, 유연하고 효율적인 서비스 트래픽 통제, 보안 정책 등을 제공합니다. 서비스에 대해 구체적인 제공 기능은 아래와 같습니다.
• 서비스 Outbound 연결: 서비스 Authentication, 부하 분산, Timeout 및 재시도, 서킷 브레이커, 연결 Pool 사이징, Fine-grained 라우팅, Request Tracing, Fault Injection, Telemetry
• 서비스 Inbound 연결: 서비스 Authentication & Authorization, Rate limit, Load Shedding, Request Tracing, Fault Injection, Telemetry
Service Mesh의 해당 기능을 구현하기 위한 핵심적인 요소는 Istio입니다. Istio는 서비스 간 연결을 중계하는 Data Plane의 사이드카 프록시와 Open xDS API를 이용하여 프록시를 제어하는 Control Plane으로 구성되어 있습니다.
Istio의 각 구성요소들의 역할은 다음과 같습니다.
구분 | 역할 | |
---|---|---|
Control Plane | Pilot | 서비스간 연결 정책을 설정하고 전파 |
Mixer | 플러그인을 통해 확장성 제공 (Apigee, Monitoring, Logging 플러그인 등) | |
Citadel(Security) | TLS를 이용한 서비스 간 인증 | |
Data Plane | Sidecar Proxy | Envoy 프록시 사용, 서비스간 연결을 중계하고, 정책을 반영 |
Istio를 이용하면 서비스간의 연결성과 트래픽 흐름을 모니터링 및 통제할 수 있으며, 서비스 간 암호화된 통신을 보장하고, 정책을 적용할 수 있습니다. Istio의 구성요소는 GKE 및 GKE On-Prem의 원하는 서비스에 손쉽게 배포하여 구성 가능합니다.
또한 Service Mesh는 구글 클라우드 플랫폼의 모니터링을 담당하는 Stackdriver와 긴밀히 통합되어 있으므로, 서비스간 연결의 SLO(Service Level Objective)를 설정하거나 원하는 메트릭의 가시화, 알림 등의 기능을 활용할 수 있습니다.
5. 맺음말
현대 개발의 핵심은 팀이 더 생산적이 될 수 있는 구조를 만드는 것입니다. Anthos는 주요 기능들을 통해 개발 구조의 혁신을 이끌어 줄 수 있습니다. 구글은 오랜 시간 자사의 대형 서비스에 컨테이너 기반 서비스를 사용해오며 해당 부문에 원숙한 기술력 구축해 왔고, 이를 바탕으로 Anthos를 시장에 공개했습니다.
Anthos는 앞서 소개한 요소들을 비롯하여, 퍼블릭 클라우드와 On-Prem 환경을 구분하지 않는 컨테이너 앱의 배포와 통합 빌링을 제공하는 GKE Marketplace, On-Prem VM을 컨테이너로 마이그레이션하는 Anthos Migrate등을 포함하고 있습니다. 이들 요소는 모두 컨테이너 기반 어플리케이션에 대해 퍼블릭 클라우드와 On-Prem을 구분하지 않는 하이브리드 환경에서 앱의 배포와 관리, 운영을 목표로 합니다.
Anthos의 이러한 기술을 기반으로 기업은 인프라, 서비스 및 팀의 업무를 분리할 수 있고, 운영 효율성, 보안 및 통제 부분은 유지시키며 개발의 속도를 향상시키고 혁신을 가속화할 수 있습니다.
실무자를 위한 Step by Step Guide
- 프라이빗, 하이브리드, 멀티 클라우드 상의 컨테이너 운영을 위한 Google Cloud의 Anthos 알아보기
- AutoML을 사용한 객체인식 모델 만들기
- Google Cloud에서 Autoscaling이 되는 웹서버 구축하기
- 구글 클라우드 플랫폼의 Cloud Healthcare API 소개
- GCP Cloud SQL용 private networking connection 소개
- Google Cloud Platform Security Overview
- GCP Cloud Dataflow 개발 환경 구성하기
- Google Cloud Platform의 Cloud Composer를 이용한 Workflow Orchestration
- Stackdriver를 이용한 GCP의 로깅 및 모니터링 소개
- Google Cloud Platform의 Datalab 및 BigQuery를 이용한 빅 데이터 분석
- Google Cloud Platform에 IoT Analytics Pipeline 구축하기
- GCP Machine Learning 엔진을 활용한 Object Detection
- Google Cloud Platform Overview
구글 클라우드 플랫폼(GCP)에 대해 더 알고 싶으세요?
베스핀글로벌의 GCP 전문 엔지니어가 답해드립니다.