Google Cloud 아키텍처 프레임워크의 운영 우수성의 원칙은 클라우드 워크로드의 운영 준비 상태와 성능을 보장하는 데 도움이 됩니다. 서비스 성능에 대한 명확한 기대치와 약속을 수립하고, 강력한 모니터링 및 알림을 구현하고, 성능 테스트를 실행하고, 용량 요구사항을 사전에 계획하는 것이 중요합니다.
원칙 개요
조직마다 운영 준비 상태를 다르게 해석할 수 있습니다. 운영 준비 상태는 조직이 Google Cloud에서 워크로드를 성공적으로 운영하기 위해 준비하는 방식입니다. 복잡한 다층 클라우드 워크로드를 운영하려면 서비스 개시와 day-2 작업을 모두 신중하게 계획해야 합니다. 이러한 작업을 CloudOps라고 합니다.
운영 준비 상태의 중점 영역
운영 준비 상태는 4가지 중점 영역으로 구성됩니다. 각 포커스 영역은 Google Cloud에서 복잡한 애플리케이션이나 환경을 운영하기 위해 준비하는 데 필요한 일련의 활동과 구성요소로 구성됩니다. 다음 표에는 각 중점 영역의 구성요소와 활동이 나와 있습니다.
운영 준비 상태의 주요 영역 | 활동 및 구성요소 |
---|---|
인력 |
|
프로세스 |
|
도구 | CloudOps 프로세스를 지원하는 데 필요한 도구입니다. |
거버넌스 |
|
권장사항
CloudOps를 사용하여 운영 준비 상태와 성능을 보장하려면 다음 섹션의 권장사항을 고려하세요. 이 문서의 각 권장사항은 운영 준비 상태의 주요 영역 중 하나 이상과 관련이 있습니다.
SLO 및 SLA 정의
클라우드 운영팀의 핵심 책임은 모든 중요한 워크로드에 대한 서비스 수준 목표 (SLO) 및 서비스수준계약 (SLA)을 정의하는 것입니다. 이 권장사항은 거버넌스 운영 준비 상태의 중점 영역과 관련이 있습니다.
SLO는 구체적이고 측정 가능하며 달성 가능하고 관련성이 있으며 시간제한이 있어야 하며 (SMART) 원하는 서비스 수준과 성능을 반영해야 합니다.
- 구체적: 필요한 서비스 수준과 성능을 명확하게 설명합니다.
- 측정 가능: 수량화 및 추적 가능
- 달성 가능: 조직의 기능과 리소스 범위 내에서 달성할 수 있습니다.
- 관련성: 비즈니스 목표 및 우선순위에 부합합니다.
- 시간 제한: 측정 및 평가를 위한 정의된 기간이 있습니다.
예를 들어 웹 애플리케이션의 SLO는 '가용성 99.9%' 또는 '평균 응답 시간 200밀리초 미만'일 수 있습니다. 이러한 SLO는 웹 애플리케이션에 필요한 서비스 수준과 성능을 명확하게 정의하며, SLO는 시간 경과에 따라 측정하고 추적할 수 있습니다.
SLA는 서비스 가용성, 성능, 지원과 관련하여 고객에게 제공하는 약속을 설명하며, 여기에는 정책 위반에 대한 불이익이나 구제 조치도 포함됩니다. SLA에는 제공되는 서비스, 기대할 수 있는 서비스 수준, 서비스 제공업체와 고객의 책임, 정책 위반에 대한 불이익 또는 구제 조치에 관한 구체적인 세부정보가 포함되어야 합니다. SLA는 두 당사자 간의 계약으로서, 양 당사자가 클라우드 서비스와 관련된 기대치와 의무를 명확하게 이해할 수 있도록 합니다.
Google Cloud는 SLO를 정의하고 추적하는 데 도움이 되는 Cloud Monitoring 및 서비스 수준 지표 (SLI)와 같은 도구를 제공합니다. Cloud Monitoring은 조직에서 클라우드 기반 애플리케이션 및 서비스의 가용성, 성능, 지연 시간과 관련된 측정항목을 수집하고 분석할 수 있는 포괄적인 모니터링 및 관측 가능성 기능을 제공합니다. SLI는 시간 경과에 따라 SLO를 측정하고 추적하는 데 사용할 수 있는 특정 측정항목입니다. 이러한 도구를 활용하면 클라우드 서비스를 효과적으로 모니터링하고 관리하며 SLO 및 SLA를 준수하도록 할 수 있습니다.
모든 중요한 클라우드 서비스에 대한 SLO 및 SLA를 명확하게 정의하고 전달하면 배포된 애플리케이션과 서비스의 안정성과 성능을 보장하는 데 도움이 됩니다.
종합적인 관측 기능 구현
클라우드 환경의 상태와 성능을 실시간으로 파악하려면 Google Cloud Observability 도구 와 서드 파티 솔루션을 함께 사용하는 것이 좋습니다. 이 권장사항은 운영 준비의 중점 영역인 프로세스 및 도구와 관련이 있습니다.
관측 가능성 솔루션을 조합하여 구현하면 클라우드 인프라와 애플리케이션의 다양한 측면을 다루는 포괄적인 관측 가능성 전략을 얻을 수 있습니다. Google Cloud Observability는 다양한 Google Cloud 서비스, 애플리케이션, 외부 소스의 측정항목, 로그, 트레이스를 수집, 분석, 시각화하기 위한 통합 플랫폼입니다. Cloud Monitoring을 사용하면 리소스 사용량, 성능 특성, 리소스의 전반적인 상태에 대한 유용한 정보를 얻을 수 있습니다.
포괄적인 모니터링을 보장하려면 CPU 사용률, 메모리 사용량, 네트워크 트래픽, 디스크 I/O, 애플리케이션 응답 시간과 같은 시스템 상태 표시기와 일치하는 중요한 측정항목을 모니터링하세요. 비즈니스별 측정항목도 고려해야 합니다. 이러한 측정항목을 추적하면 잠재적인 병목 현상, 성능 문제, 리소스 제약 조건을 식별할 수 있습니다. 또한 잠재적 문제 또는 이상치에 대해 관련 팀에 사전 알림을 보내도록 알림을 설정할 수 있습니다.
모니터링 기능을 더욱 향상하려면 서드 파티 솔루션을 Google Cloud Observability와 통합하면 됩니다. 이러한 솔루션은 고급 분석, 머신러닝 기반 이상 감지, 이슈 관리 기능과 같은 추가 기능을 제공할 수 있습니다. Google Cloud 관측 가능성 도구와 서드 파티 솔루션을 결합하면 특정 요구사항에 맞게 강력하고 맞춤설정 가능한 모니터링 생태계를 만들 수 있습니다. 이러한 조합 접근 방식을 사용하면 문제를 사전에 식별하고 해결하고, 리소스 사용량을 최적화하고, 클라우드 애플리케이션 및 서비스의 전반적인 안정성과 가용성을 보장할 수 있습니다.
성능 및 부하 테스트 구현
정기적으로 성능 테스트를 실행하면 클라우드 기반 애플리케이션과 인프라가 최대 부하를 처리하고 최적의 성능을 유지할 수 있습니다. 부하 테스트는 실제 트래픽 패턴을 시뮬레이션합니다. 스트레스 테스트는 시스템을 한계까지 밀어붙여 잠재적인 병목 현상과 성능 제한을 식별합니다. 이 권장사항은 운영 준비의 중점 영역인 프로세스 및 도구와 관련이 있습니다.
Cloud Load Balancing 및 부하 테스트 서비스와 같은 도구를 사용하면 실제 트래픽 패턴을 시뮬레이션하고 애플리케이션을 스트레스 테스트할 수 있습니다. 이러한 도구는 다양한 부하 조건에서 시스템이 어떻게 동작하는지에 관한 유용한 정보를 제공하며 최적화가 필요한 영역을 파악하는 데 도움이 될 수 있습니다.
성능 테스트 결과를 바탕으로 최적의 성능과 확장성을 위해 클라우드 인프라와 애플리케이션을 최적화할 수 있습니다. 이러한 최적화에는 리소스 할당 조정, 구성 조정 또는 캐싱 메커니즘 구현이 포함될 수 있습니다.
예를 들어 트래픽이 많은 기간에 애플리케이션이 느려지는 경우 애플리케이션에 할당된 가상 머신 또는 컨테이너의 수를 늘려야 할 수 있습니다. 또는 성능을 개선하기 위해 웹 서버 또는 데이터베이스의 구성을 조정해야 할 수도 있습니다.
성능 테스트를 정기적으로 실시하고 필요한 최적화를 구현하면 클라우드 기반 애플리케이션과 인프라가 항상 최고 성능으로 실행되고 사용자에게 원활하고 반응이 빠른 환경을 제공할 수 있습니다. 이렇게 하면 경쟁 우위를 유지하고 고객과의 신뢰를 구축하는 데 도움이 됩니다.
용량 계획 및 관리
유기적 또는 비유기적 미래 용량 요구사항을 사전에 계획하면 클라우드 기반 시스템의 원활한 운영과 확장성을 보장할 수 있습니다. 이 권장사항은 운영 준비 상태의 주요 영역 프로세스와 관련이 있습니다.
향후 용량을 계획하려면 컴퓨팅 인스턴스, 스토리지, API 요청과 같은 다양한 리소스의 할당량을 이해하고 관리해야 합니다. 이전 사용 패턴, 성장 예측, 비즈니스 요구사항을 분석하면 향후 용량 요구사항을 정확하게 예측할 수 있습니다. Cloud 모니터링 및 BigQuery와 같은 도구를 사용하여 사용 데이터를 수집 및 분석하고, 동향을 파악하고, 향후 수요를 예측할 수 있습니다.
과거 사용 패턴은 시간 경과에 따른 리소스 사용량에 관한 유용한 정보를 제공합니다. CPU 사용률, 메모리 사용량, 네트워크 트래픽과 같은 측정항목을 검사하여 수요가 많은 기간과 잠재적인 병목 현상을 파악할 수 있습니다. 또한 사용자 기반 증가, 신제품 및 기능, 마케팅 캠페인과 같은 요소를 기반으로 성장 예측을 수행하여 향후 용량 요구사항을 추정할 수 있습니다. 용량 요구사항을 평가할 때는 SLA 및 성능 타겟과 같은 비즈니스 요구사항도 고려해야 합니다.
워크로드의 리소스 크기를 결정할 때는 리소스 사용량에 영향을 줄 수 있는 요소를 고려하세요. 연말연시 쇼핑 기간 또는 분기말 할인과 같은 시즌별 변동으로 인해 수요가 일시적으로 급증할 수 있습니다. 제품 출시 또는 마케팅 캠페인과 같은 계획된 이벤트도 트래픽을 크게 늘릴 수 있습니다. 기본 시스템과 재해 복구 (DR) 시스템이 예상치 못한 수요 급증을 처리할 수 있도록 하려면 자연재해 및 사이버 공격과 같은 중단 시 원활한 페일오버를 지원할 수 있는 용량을 계획하세요.
자동 확장은 워크로드 변동에 따라 클라우드 리소스를 동적으로 조정하는 데 중요한 전략입니다. 자동 확장 정책을 사용하면 변화하는 수요에 따라 컴퓨팅 인스턴스, 스토리지, 기타 리소스를 자동으로 확장할 수 있습니다. 이렇게 하면 최대 부하가 발생하는 시간에 최적의 성능을 보장하고 리소스 사용률이 낮을 때는 비용을 최소화할 수 있습니다. 자동 확장 알고리즘은 CPU 사용률, 메모리 사용량, 큐 깊이와 같은 측정항목을 사용하여 리소스를 확장할 시점을 결정합니다.
지속적으로 모니터링 및 최적화
클라우드 워크로드를 관리하고 최적화하려면 성능 측정항목을 지속적으로 모니터링하고 분석하는 프로세스를 수립해야 합니다. 이 권장사항은 운영 준비의 중점 영역인 프로세스 및 도구와 관련이 있습니다.
지속적인 모니터링 및 분석을 위한 프로세스를 수립하려면 클라우드 환경의 다양한 측면과 관련된 데이터를 추적, 수집, 평가합니다. 이 데이터를 사용하면 개선이 필요한 영역을 사전에 파악하고, 리소스 활용을 최적화하며, 클라우드 인프라가 일관되게 성능 기대치를 충족하거나 초과하도록 할 수 있습니다.
성능 모니터링의 중요한 측면은 로그와 트레이스를 정기적으로 검토하는 것입니다. 로그는 시스템 이벤트, 오류, 경고에 대한 유용한 정보를 제공합니다. 트레이스는 애플리케이션을 통한 요청 흐름에 관한 자세한 정보를 제공합니다. 로그와 트레이스를 분석하면 잠재적 문제를 파악하고, 문제의 근본 원인을 파악하고, 다양한 조건에서 애플리케이션이 어떻게 동작하는지 더 잘 이해할 수 있습니다. 서비스 간 왕복 시간과 같은 측정항목을 사용하면 워크로드의 병목 현상을 파악하고 이해하는 데 도움이 됩니다.
또한 성능 조정 기법을 사용하여 애플리케이션 응답 시간과 전반적인 효율성을 크게 개선할 수 있습니다. 다음은 사용할 수 있는 기법의 예입니다.
- 캐싱: 자주 액세스하는 데이터를 메모리에 저장하여 데이터베이스 쿼리 또는 API 호출을 반복할 필요성을 줄입니다.
- 데이터베이스 최적화: 색인 생성 및 쿼리 최적화와 같은 기법을 사용하여 데이터베이스 작업의 성능을 개선합니다.
- 코드 프로파일링: 과도한 리소스를 소비하거나 성능 문제를 일으키는 코드 영역을 식별합니다.
이러한 기법을 적용하면 애플리케이션을 최적화하고 클라우드에서 효율적으로 실행할 수 있습니다.