<오픈스택 인프라를 안정적으로 운영하기 위한 방안>

심우열·2023년 3월 15일
0

OpenStack Trend

목록 보기
2/2

< 오픈스택이란? >

오픈스택은 Private/Public 클라우드를 구축하고 관리하는 오픈소스 플랫폼입니다. 컴퓨팅, 네 트워크 등의 자원을 모아 제어하고 운영하는 Cloud OS입니다. 오픈스택은 컴퓨팅, 스토리지, 인증 등의 기능별로 구분된 여러 개의 컴포넌트로 구성되어 있습니다. 이러한 오픈스택 인프 라를 안정적으로 운영하기 위한 방안은 다음과 같습니다.

< 1. 고가용성 & 효율성 >

클라우드 컴퓨팅의 대표적 장점으로는 필요에 따라 서비스를 빠르게 확장하거나 축소할 수 있는 유연성을 들 수 있습니다. 자동 스케일링(Auto Scaling)은 CPU, 메모리, 디스크, 네트워
크 트래픽 같은 시스템 자원들의 메트릭(Metric) 값을 모니터링하여 설정된 임계 값에 다다르 면 서버 사이즈를 자동으로 조절합니다. 또한, 자동 스케일링은 시스템 자원의 오버 프로비저 닝(Over Provisioning) 또는 언더 프로비저닝(Under Provisioning)을 막아 시스템 자원의 효율적 인 사용이 가능하게 합니다. 따라서, 자동 스케일링 메커니즘을 잘 구성하고 활용하여야 인프 라를 안정적으로 운영할 수 있습니다. 또한 미리 스케일링을 계획하고, 인프라가 증가하는 수 요에 대응할 수 있는지 주기적으로 확인하여야 합니다.
로드 밸런서(Load Balancer)를 이용하여 서버의 성능과 부하량을 고려해 네트워크 트래픽을 다수의 서버로 분산시켜 주어야 합니다. 또한, 로드 밸런서는 연결된 일부 서버에 장애가 발 생하면 자동으로 다른 정상 서버로 워크로드를 배분하는 역할을 하여 높은 가용성을 보장할 수 있습니다.
리소스를 효율적으로 사용하기 위해서는 컨테이너, 가상화 및 클라우드 네이티브 아키텍처 와 같은 기술을 활용하는 것이 좋습니다. 또한, 오브젝트 스토리지와 같은 효율적인 스토리지 아키텍처는 리소스 사용을 최적화하고 신뢰성을 향상시킬 수 있습니다.

<2. 모니터링 전략 >

클라우드 모니터링을 통하여, 성능 문제를 감지 및 해결하고 잠재적인 병목 현상을 식별하여
사전에 예방할 수 있는 이점을 가질 수 있습니다. 오픈스택 인프라에서는 많은 유형의 데이터 와 수많은 클라우드 요소가 동시에 작동하는 매우 복잡한 구조를 갖기 때문에, 모니터링 전략 을 잘 구성하여야 효과적이고 정확한 모니터링이 가능합니다.
오픈스택에는 인프라 사용 및 성능을 모니터링 하기 위한 Ceilometer 같은 도구를 제공합니 다. ELK(Elastic Search, Logstash, Kibana) 와 같은 로그 관리-분석 솔루션을 이용하여 오픈스택 컴포넌트의 로그 데이터를 중앙 집중화 하고 로그 분석을 수행하여야 합니다. 또한, 인프라에

대한 포괄적인 모니터링을 위해 Prometheus 또는 Zabbix 와 같은 외부 모니터링 도구와 통합 하여야 합니다. 이러한 모니터링 결과를 활용하기 위해서 자동화된 경고 시스템을 구축하여 야 합니다.

<3. 장애복구 전략 >

장애복구란 자연재해나 인적오류로 인한 장애가 발생한 후, IT 인프라에 대한 액세스 및 기능
을 복원할 수 있는 기능을 말합니다. 오픈스택 인프라의 비즈니스 연속성과 장애복구를 위해 시간 효율적인 장애복구 전략을 구성하여야 합니다.
장애복구를 위해서는 주기적인 데이터 백업이 필요합니다. 전체 백업 또는 스냅샷 등의 방법 으로 백업을 진행할 수 있습니다. 고가용성과, 모니터링 전략이 잘 구성되어 있어야 시간 효 율적인 장애복구가 가능합니다. 또한, 이전의 장애 상황을 분석하여 미래의 장애를 예방하고 예측할 수 있도록 하며, 더 효과적인 복구 체계를 구성할 수 있도록 해야 합니다.

< 4. 지속적인 업데이트 >

기본적으로 소프트웨어는 시간이 지날수록 취약점이 드러나게 되므로, 오픈스택 컴포넌트의
업데이트를 지속해서 확인하고 프로덕션 환경을 최신 버전으로 유지하는 것은 오픈스택 인프 라를 안정적으로 운영하는 데 있어 매우 중요합니다.
업데이트를 프로덕션 환경에 적용하기 위해서는, 프로덕션 환경과 동일한 Dev 환경에서 테 스트를 진행하여 문제가 없는지 확인하여야 합니다. 테스트에서 업데이트를 검증한 후, 프로 덕션 환경에 업데이트를 적용하여야 합니다.
요즘, 가상화 기술과 컨테이너 기술 등의 발전으로 한 개의 클라우드 내에서도 매우 많은 서 버가 가동되고 있습니다. 사람이 일일이 각각의 업데이트에 대한 테스트를 진행하고 수많은 서버에 업데이트를 적용하기에는 인적 오류 위험성과 비용적 문제가 있기 때문에 이러한 일 련의 과정들을 자동화하는 것이 오픈스택 인프라를 안정적으로 운영하기 위한 핵심 요소라 할 수 있습니다.

< 5. OpenStack on OpenStack >

Triple O 아키텍처는 언더 클라우드(Under Cloud)의 오픈스택에 오버 클라우드(Over Cloud)의
오픈스택을 설치하는 방식입니다. 이는 오픈스택 인프라의 운영을 효율적으로 하기 위하여 관리의 영역과 서비스 영역을 분리한 것으로, 물리 장치를 제어하고 관리하기 위한 언더 클라 우드와, 고객에게 서비스를 제공하기 위한 오버 클라우드로 분리되어 있습니다. 이 구조를 활 용하면 다수의 클라우드 서버를 대상으로 관리적 측면의 효율성이 증가하며, 물리 서버 영역 과 사용자 서비스 영역의 물리적 분리가 가능해 보안적인 측면에서 신뢰성이 증가합니다.

< 6. Kubernetes on OpenStack >

오픈스택은 클라우드 인프라 스트럭쳐에 서비스를 제공하는 소프트웨어 집합입니다. 오픈스
택은 SDN, Virtual Machine, Object Storage, Block Storage 등 20여 개의 서비스를 배포해야 하 며, 이러한 서비스들은 Microservice 처럼 REST API 통신으로 상호작용하므로 오픈스택 자체의 관리가 어렵습니다. 이러한 문제를 해결하기 위해, 컨테이너화 된 워크로드와 서비스를 실행 하고 관리하기 위한 프레임워크인, 쿠버네티스와 같은 컨테이너 오케스트레이션 툴을 이용하 는 것이, 오픈스택 인프라를 더욱 효율적으로 구성하고 안정적으로 배포하는 방법입니다.

< 7. Process >

이처럼 오픈스택 인프라는 고가용성, 모니터링, 장애복구, 업데이트 등의 요소가 유기적으로 영향을 주고 받으며, 전체 시스템에 영향을 미치게 됩니다. 궁극적으로 오픈스택 인프라를 안 정적으로 운영하기 위해서는, 오픈스택 인프라를 이루는 요소 간의 관계를 정확하게 파악하 고 시너지를 이끌어 낼 수 있도록, 체계적인 ‘병렬적 운영-관리 프로세스’가 중요하다고 생각 합니다.

profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글