CloudOps를 사용하여 운영 준비 상태 및 성능 보장

Google Cloud Well-Architected Framework의 운영 우수성 원칙에 있는 이 원칙은 클라우드 워크로드의 운영 준비 상태 및 성능을 보장하는 데 도움이 됩니다. 서비스 성능에 대한 명확한 기대치와 약속을 확립하고, 강력한 모니터링 및 알림을 구현하고, 성능 테스트를 수행하고, 용량 요구사항에 대한 사전 계획을 수립하는 데 중점을 둡니다.

원칙 개요

조직마다 운영 준비 상태를 다르게 해석할 수 있습니다. 운영 준비는 귀사의 조직이 Google Cloud에서 워크로드를 성공적으로 운영하기 위해 준비하는 방법입니다. 복잡한 멀티 레이어 클라우드 워크로드를 운영하기 위해 준비하려면 시작 및 2일 차 작업 모두에 대해 신중한 계획이 필요합니다. 이러한 작업을 CloudOps라고 합니다.

운영 준비 상태 중점 분야

운영 준비는 4가지 중점 분야로 구성됩니다. 각 포커스 영역은 Google Cloud에서 복잡한 애플리케이션 또는 환경을 운영하는 데 필요한 활동 및 구성요소 집합으로 구성됩니다. 다음 표에는 각 포커스 영역의 구성요소와 활동이 나열되어 있습니다.

운영 준비 상태 중점 영역 활동 및 구성요소
직원
  • 클라우드 리소스를 관리하고 운영하는 팀의 명확한 역할과 책임을 정의합니다.
  • 팀원이 적절한 기술을 보유하도록 합니다.
  • 학습 프로그램 개발
  • 명확한 팀 구조 구축
  • 필요한 인재 채용
프로세스
  • 관측 가능성.
  • 서비스 중단 관리
  • 클라우드 배포.
  • 핵심 클라우드 운영
도구 CloudOps 프로세스를 지원하는 데 필요한 도구입니다.
거버넌스
  • 서비스 수준 및 보고
  • Cloud Financials
  • 클라우드 운영 모델입니다.
  • 아키텍처 검토 및 거버넌스 위원회.
  • 클라우드 아키텍처 및 규정 준수

권장사항

CloudOps를 사용하여 운영 준비 상태 및 성능을 보장하려면 다음 섹션의 권장사항을 고려하세요. 이 문서의 각 권장사항은 운영 준비의 중점 영역 중 하나 이상과 관련이 있습니다.

SLO 및 SLA 정의

클라우드 운영팀의 핵심적인 책임은 모든 중요 워크로드에 대한 서비스수준목표 (SLO) 및 서비스수준계약 (SLA)을 정의하는 것입니다. 이 권장사항은 거버넌스 중점 운영 준비 영역과 관련이 있습니다.

SLO는 구체적이고, 측정 가능하고, 달성 가능하고, 관련성이 높고, 시간 제한이 있어야 하며 (SMART) 원하는 서비스 및 성능 수준을 반영해야 합니다.

  • 구체적: 필요한 서비스 및 성능 수준을 명확하게 설명합니다.
  • 측정 가능: 정량화 및 추적 가능합니다.
  • Achievable(달성 가능): 조직의 역량과 리소스 한도 내에서 달성 가능합니다.
  • 관련성: 비즈니스 목표 및 우선순위와 일치합니다.
  • 시간 제한: 측정 및 평가 기간이 정의됩니다.

예를 들어 웹 애플리케이션의 SLO는 '99.9% 가용성' 또는 '평균 응답 시간 200ms 미만'일 수 있습니다. 이러한 SLO는 웹 애플리케이션에 필요한 서비스와 성능 수준을 명확하게 정의하며 시간 경과에 따라 SLO를 측정하고 추적할 수 있습니다.

SLA는 서비스 가용성, 성능, 지원과 관련하여 고객에 대한 약속을 기술하고 있으며 규정 미준수에 대한 벌금이나 구제 조치를 포함합니다. SLA에는 제공되는 서비스에 대한 구체적인 세부정보, 예상할 수 있는 서비스 수준, 서비스 제공업체와 고객의 책임, 규정 미준수에 따른 벌금이나 구제 조치가 포함되어야 합니다. SLA는 양 당사자 간의 계약상 계약 역할을 하므로 양 당사자 모두가 클라우드 서비스와 관련된 기대치와 의무를 명확하게 이해할 수 있습니다.

Google Cloud 은 SLO를 정의하고 추적하는 데 도움이 되는 Cloud Monitoring 및 서비스 수준 지표 (SLI)와 같은 도구를 제공합니다. Cloud Monitoring은 조직이 클라우드 기반 애플리케이션 및 서비스의 가용성, 성능, 지연 시간과 관련된 측정항목을 수집하고 분석할 수 있도록 포괄적인 모니터링 및 관측 기능을 제공합니다. SLI는 시간 경과에 따라 SLO를 측정하고 추적하는 데 사용할 수 있는 특정 측정항목입니다. 이러한 도구를 활용하면 클라우드 서비스를 효과적으로 모니터링 및 관리하고 SLO 및 SLA를 충족하는지 확인할 수 있습니다.

모든 중요한 클라우드 서비스의 SLO와 SLA를 명확하게 정의하고 전달하면 배포된 애플리케이션과 서비스의 안정성과 성능을 보장하는 데 도움이 됩니다.

포괄적인 관측 가능성 구현

클라우드 환경의 상태와 성능을 실시간으로 확인하려면 Google Cloud 관측 가능성 도구 와 타사 솔루션을 함께 사용하는 것이 좋습니다. 이 권장사항은 운영 준비 중점 영역인 프로세스 및 도구와 관련이 있습니다.

관측 가능성 솔루션을 조합하여 구현하면 클라우드 인프라와 애플리케이션의 다양한 측면을 포괄하는 포괄적인 관측 가능성 전략을 얻을 수 있습니다. Google Cloud Observability는 다양한Google Cloud 서비스, 애플리케이션, 외부 소스에서 측정항목, 로그, trace를 수집, 분석, 시각화하기 위한 통합 플랫폼입니다. Cloud Monitoring을 사용하면 리소스 사용률, 성능 특성, 리소스의 전반적인 상태에 대한 유용한 정보를 얻을 수 있습니다.

포괄적인 모니터링을 위해 CPU 사용률, 메모리 사용량, 네트워크 트래픽, 디스크 I/O, 애플리케이션 응답 시간 등 시스템 상태 지표와 일치하는 중요한 측정항목을 모니터링합니다. 비즈니스별 측정항목도 고려해야 합니다. 이러한 측정항목을 추적하면 잠재적인 병목 현상, 성능 문제, 리소스 제약 조건을 파악할 수 있습니다. 또한 잠재적 문제나 이상치에 대해 관련 팀에 사전에 알림을 보내도록 알림을 설정할 수 있습니다.

모니터링 기능을 더욱 향상하려면 서드 파티 솔루션을 Google Cloud Observability와 통합할 수 있습니다. 이러한 솔루션은 고급 분석, 머신러닝 기반의 이상 감지, 이슈 관리 기능과 같은 추가 기능을 제공할 수 있습니다. Google Cloud 관측 가능성 도구와 서드 파티 솔루션을 함께 사용하면 특정 니즈에 맞는 강력하고 맞춤설정 가능한 모니터링 생태계를 만들 수 있습니다. 이러한 조합 접근 방식을 사용하면 문제를 사전에 식별 및 해결하고 리소스 사용률을 최적화하며 클라우드 애플리케이션 및 서비스의 전반적인 안정성과 가용성을 보장할 수 있습니다.

성능 및 부하 테스트 구현

정기적으로 성능 테스트를 수행하면 클라우드 기반 애플리케이션과 인프라가 최대 부하를 처리하고 최적의 성능을 유지할 수 있습니다. 부하 테스트는 실제 트래픽 패턴을 시뮬레이션합니다. 스트레스 테스트는 시스템을 한계까지 끌어내 잠재적 병목 현상과 성능 제한을 식별합니다. 이 권장사항은 운영 준비 중점 영역인 프로세스 및 도구와 관련이 있습니다.

Cloud Load Balancing부하 테스트 서비스와 같은 도구를 사용하면 실제 트래픽 패턴을 시뮬레이션하고 애플리케이션에 대한 스트레스 테스트를 수행할 수 있습니다. 이러한 도구는 다양한 부하 조건에서 시스템이 작동하는 방식에 관한 유용한 정보를 제공하며 최적화가 필요한 영역을 식별하는 데 도움이 될 수 있습니다.

성능 테스트 결과에 따라 최적의 성능과 확장성을 위해 클라우드 인프라와 애플리케이션을 최적화하기 위한 결정을 내릴 수 있습니다. 이러한 최적화에는 리소스 할당 조정, 구성 조정 또는 캐싱 메커니즘 구현이 포함될 수 있습니다.

예를 들어 트래픽이 많은 기간 동안 애플리케이션이 느려지는 경우 애플리케이션에 할당되는 가상 머신 또는 컨테이너의 수를 늘려야 할 수 있습니다. 또는 성능 향상을 위해 웹 서버 또는 데이터베이스의 구성을 조정해야 할 수 있습니다.

정기적으로 성능 테스트를 수행하고 필요한 최적화를 구현하면 클라우드 기반 애플리케이션과 인프라가 항상 최고 성능으로 실행되고 사용자에게 원활하고 반응성이 우수한 환경을 제공할 수 있습니다. 이렇게 하면 경쟁 우위를 유지하고 고객과의 신뢰를 쌓을 수 있습니다.

용량 계획 및 관리

유기적 또는 비유기적 용량의 향후 용량 니즈를 사전에 계획하면 클라우드 기반 시스템의 원활한 운영 및 확장성을 보장할 수 있습니다. 이 권장사항은 프로세스 운영 준비 상태 영역과 관련이 있습니다.

향후 용량 계획에는 컴퓨팅 인스턴스, 스토리지, API 요청과 같은 다양한 리소스의 할당량을 이해하고 관리하는 것이 포함됩니다. 과거의 사용량 패턴, 증가 예상, 비즈니스 요구사항을 분석하여 미래의 용량 요구사항을 정확하게 예측할 수 있습니다. Cloud MonitoringBigQuery와 같은 도구를 사용하여 사용 데이터를 수집 및 분석하고, 트렌드를 파악하고, 미래 수요를 예측할 수 있습니다.

이전 사용 패턴은 시간 경과에 따른 리소스 사용률에 대한 중요한 정보를 제공합니다. CPU 사용률, 메모리 사용량, 네트워크 트래픽 등의 측정항목을 조사하면 수요가 많은 기간과 잠재적 병목 현상이 발생하는 기간을 파악할 수 있습니다. 또한 사용자층의 증가, 새로운 제품 및 기능, 마케팅 캠페인과 같은 요소를 기반으로 성장 예측을 수행함으로써 앞으로 필요한 용량을 예측하는 데 도움이 될 수 있습니다. 용량 요구사항을 평가할 때는 SLA 및 성능 목표와 같은 비즈니스 요구사항도 고려해야 합니다.

워크로드의 리소스 크기를 결정할 때는 리소스 사용률에 영향을 줄 수 있는 요소를 고려하세요. 연말연시 쇼핑 기간이나 분기 말 할인과 같은 시즌성 변화로 인해 일시적으로 수요가 급증할 수 있습니다. 제품 출시 또는 마케팅 캠페인과 같은 계획된 이벤트도 트래픽을 크게 늘릴 수 있습니다. 기본 및 재해 복구 (DR) 시스템이 예기치 않은 수요 급증을 처리할 수 있도록 하려면 자연 재해 및 사이버 공격과 같은 중단 발생 시 원활한 장애 조치를 지원할 수 있는 용량을 계획하세요.

자동 확장은 워크로드 변동에 따라 클라우드 리소스를 동적으로 조정하는 중요한 전략입니다 자동 확장 정책을 사용하면 수요 변화에 따라 컴퓨팅 인스턴스, 스토리지, 기타 리소스를 자동으로 확장할 수 있습니다. 이를 통해 피크 기간 동안 최적의 성능을 보장하는 동시에 리소스 사용률이 적을 때 비용을 최소화할 수 있습니다. 자동 확장 알고리즘은 CPU 사용률, 메모리 사용량, 큐 깊이와 같은 측정항목을 사용하여 리소스 확장 시점을 결정합니다.

지속적인 모니터링 및 최적화

클라우드 워크로드를 관리하고 최적화하려면 성능 측정항목을 지속적으로 모니터링하고 분석하는 프로세스를 확립해야 합니다. 이 권장사항은 프로세스 및 도구와 같은 운영 준비 중점 영역과 관련이 있습니다.

지속적인 모니터링 및 분석 프로세스를 수립하기 위해 클라우드 환경의 다양한 측면과 관련된 데이터를 추적, 수집, 평가합니다. 이 데이터를 사용하면 개선이 필요한 영역을 사전에 파악하고 리소스 사용률을 최적화하며 클라우드 인프라가 지속적으로 성능 기대치를 충족하거나 초과하는지 확인할 수 있습니다.

성능 모니터링의 중요한 측면은 정기적으로 로그와 trace를 검토하는 것입니다. 로그는 시스템 이벤트, 오류, 경고에 관한 유용한 정보를 제공합니다. trace는 애플리케이션을 통한 요청 흐름에 대한 자세한 정보를 제공합니다. 로그와 trace를 분석하여 잠재적 문제를 식별하고 문제의 근본 원인을 파악하며 다양한 조건에서 애플리케이션이 어떻게 동작하는지 더 잘 이해할 수 있습니다. 서비스 간 왕복 시간과 같은 측정항목은 워크로드에 있는 병목 현상을 식별하고 이해하는 데 도움이 될 수 있습니다.

또한 성능 조정 기술을 사용하여 애플리케이션 응답 시간과 전반적인 효율성을 크게 향상시킬 수 있습니다. 사용할 수 있는 기법의 예는 다음과 같습니다.

  • 캐싱: 자주 액세스하는 데이터를 메모리에 저장하여 반복적인 데이터베이스 쿼리 또는 API 호출의 필요성을 줄입니다.
  • 데이터베이스 최적화: 색인 생성 및 쿼리 최적화와 같은 기법을 사용하여 데이터베이스 작업 성능을 개선합니다.
  • 코드 프로파일링: 과도한 리소스를 소비하거나 성능 문제를 일으키는 코드 영역을 식별합니다.

이러한 기법을 적용하면 애플리케이션을 최적화하고 클라우드에서 효율적으로 실행되도록 할 수 있습니다.