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