토스페이먼츠, 레거시 인프라를 하이브리드 클라우드로 혁신

by DD
4개월 전
조회수 166

20년 넘은 레거시 인프라를 AWS 퍼블릭 클라우드와 OpenStack 기반 프라이빗 클라우드를 결합한 하이브리드 클라우드(Hybrid Cloud)로 전환

1997개 라우팅(Routing), DNS 부재 등 심각한 레거시 문제를 해결하고, OpenStack을 활용한 프라이빗 클라우드 구축

OpenStack 운영 경험 부족 문제를 극복하기 위해 자동화, 모니터링, 고가용성 확보, 2명의 엔지니어(Engineer)로 프로덕션 환경 구축

AWS와 OpenStack을 Active-Active로 운영하며, 4개의 가용 서비스 영역(Availability Zone)을 확보하여 높은 수준의 가용성 달성

Cluster API를 활용하여 OpenStack 위에서 K8S 클러스터 관리, NetDevOps를 통해 네트워크 민첩성 확보

레거시 인프라 문제점과 하이브리드 클라우드 전환 배경

본문에서는 1997개의 라우팅(Routing)을 가진 서버, DNS 부재, 불규칙한 호스트네임 등 심각한 레거시 인프라 문제를 지적하며, 하이브리드 클라우드(Hybrid Cloud) 전환의 필요성을 강조한다.

퍼블릭 클라우드(Public Cloud)의 비용 증가, DR 구성의 어려움, 가시성 부족 등의 한계를 언급하며 프라이빗 클라우드(Private Cloud) 구축의 당위성을 설명

프라이빗 클라우드 구축을 통해 인프라에 대한 100% 통제권(Control)을 확보하고, 유연하고 애자일한 환경을 구축하고자 함

OpenStack 기반 프라이빗 클라우드 구축 과정

토스페이먼츠는 OpenStack을 선택하여 프라이빗 클라우드를 구축했으며, 운영 경험 부족 문제를 해결하기 위해 다양한 노력을 기울였다.

경험 축적(Experience Accumulation): 3가지 버전의 OpenStack을 수십 번 설치하고 장애 시나리오를 재현하며 아키텍처 이해도 향상

튜닝(Tuning): Octavia 로깅 포맷 수정 등, 오픈소스(Open Source)의 장점을 활용하여 사용자 니즈(Needs)에 맞는 환경 구성

자동화(Automation): Ansible과 Terraform을 활용하여 VM, 로드밸런서 등 자원 라이프사이클 관리 자동화, 신규 인스턴스 생성 10초 이내 달성

자동화 및 모니터링 시스템 구축

적은 인력으로 대규모 시스템을 운영하기 위해 자동화와 모니터링 시스템 구축에 집중했다.

자동화(Automation): Ansible과 Terraform을 활용하여 VM 인스턴스, 로드밸런서, 사용자 권한 등 모든 자원의 라이프사이클 관리 자동화

모니터링(Monitoring): Zabbix, Prometheus, Mimir 등 오픈소스 툴을 활용하여 필요한 모든 메트릭 수집, Grafana를 통해 시각화 및 알람 설정

고가용성(High Availability) 전략: 독립된 OpenStack 클러스터 2개를 Active-Active로 운영, 장애 발생 시 트래픽 인입 제거를 통해 서비스 가용성 유지

Cluster API를 활용한 K8S 클러스터 관리

프라이빗 클라우드 환경에서 K8S 클러스터 관리를 위해 Cluster API를 도입하여, 퍼블릭 클라우드와 유사한 수준의 편의성을 확보했다.

Cluster API(Cluster API): K8S 클러스터 자체를 K8S 리소스로 관리, 선언적 관리(Declarative Management) 및 롤링 업데이트(Rolling Update) 지원

CAPO, OCCM 연동: OpenStack의 인프라 자원(VM 노드, 로드밸런서 등) 자동 생성 및 관리

PaaS 형태의 서비스(Service) 지양: 모든 제어권을 확보하기 위해 직접 관리 가능한 방법을 선택

NetDevOps를 통한 네트워크 민첩성 확보

전통적인 네트워크 운영 방식의 한계를 극복하고 클라우드 레벨의 민첩성과 유연성을 확보하기 위해 NetDevOps를 도입했다.

Configuration 모듈화(Configuration Modularization): 각 서비스별로 모듈화된 Configuration 저장, 신규 서비스 오픈 시 새로운 모듈 추가, 서비스 종료 시 해당 모듈 제거

템플릿화 및 자동 배포(Templatization and Automated Deployment): 파이썬 코드로 템플릿화된 Configuration을 네트워크 관리 시스템을 통해 각 장비에 배포

애플리케이션 배포 파이프라인(Application Deployment Pipeline) 유사: 네트워크 장비에 대한 형상 관리 자동화

하이브리드 클라우드 아키텍처 및 운영

토스페이먼츠는 3개의 독립된 OpenStack 클러스터를 구성하여 하이브리드 클라우드를 구축하고, Active-Active 방식으로 운영하고 있다.

Pod 구성: 프로덕션 서비스용 Pod1, Pod2, 관리 목적 클러스터인 Pod0 구성

4개의 Live 영역(Live Zone): 퍼블릭 클라우드와 IDC(Internet Data Center)를 포함하여 총 4개의 가용 서비스 영역(Availability Zone)을 Active로 운영

동일 계위 구성(Same Tier Configuration): 퍼블릭과 프라이빗 클라우드에서 동일한 역할의 구성 요소를 동일 계위에 배치하여 운영 효율성 향상

레거시 인프라 작살내고 하이브리드 클라우드 만든 썰