수평 확장성 활용

Google Cloud Well-Architected Framework의 안정성 측면에서 이 원칙은 수평적 확장성을 사용하는 데 도움이 되는 권장사항을 제공합니다. 수평적 확장성을 사용하면Google Cloud 의 워크로드를 효율적으로 확장하고 성능을 유지할 수 있습니다.

이 원칙은 신뢰성의 범위 지정 중점 영역과 관련이 있습니다.

원칙 개요

시스템을 수평 아키텍처로 재설계합니다. 트래픽 또는 데이터 증가를 수용하기 위해 리소스를 더 추가할 수 있습니다. 사용 중이 아닌 리소스를 삭제할 수도 있습니다.

수평 확장의 가치를 이해하려면 수직 확장의 제한사항을 고려하세요.

수직 확장을 위한 일반적인 시나리오는 MySQL 데이터베이스를 중요 데이터가 있는 기본 데이터베이스로 사용하는 것입니다. 데이터베이스 사용량이 증가하면 RAM과 CPU가 더 많이 필요합니다. 결국 데이터베이스가 호스트 머신의 메모리 한도에 도달하여 데이터베이스를 업그레이드해야 합니다. 이 프로세스는 여러 번 반복해야 할 수 있습니다 문제는 데이터베이스가 증가할 수 있는 양에 엄격한 제한이 있다는 것입니다. VM 크기는 무제한이 아닙니다. 데이터베이스가 더 이상 리소스를 추가할 수 없는 시점에 도달할 수 있습니다.

리소스가 무제한이더라도 대규모 VM은 단일 장애점이 될 수 있습니다. 기본 데이터베이스 VM에 문제가 있으면 오류 응답이 발생하거나 시스템 전체가 중단되어 모든 사용자에게 영향을 미칠 수 있습니다. 리소스 중복을 통해 가용성이 높은 시스템 빌드에 설명된 대로 단일 장애점을 방지합니다.

이러한 확장 제한 외에도 수직 확장은 비용이 더 많이 듭니다. 컴퓨팅 성능과 메모리가 더 큰 머신을 획득하면 비용이 기하급수적으로 증가할 수 있습니다.

반면에 수평 확장은 비용이 더 저렴할 수 있습니다. 확장 가능하도록 설계된 시스템에서 수평 확장이 가능할 수 있는 가능성은 사실상 무제한입니다.

권장사항

단일 VM 아키텍처에서 수평형 다중 머신 아키텍처로 전환하려면 신중하게 계획하고 올바른 도구를 사용해야 합니다. 수평 확장을 위해서는 다음 하위 섹션의 권장사항을 고려하세요.

관리형 서비스 사용

관리형 서비스를 사용하면 수평 확장을 수동으로 관리할 필요가 없습니다. 예를 들어 Compute Engine 관리형 인스턴스 그룹 (MIG)을 사용하면 VM을 추가하거나 삭제하여 애플리케이션을 수평으로 확장할 수 있습니다. 컨테이너화된 애플리케이션의 경우 Cloud Run은 수신 트래픽에 따라 스테이트리스(Stateless) 컨테이너를 자동으로 확장할 수 있는 서버리스 플랫폼입니다.

모듈식 디자인 촉진

모듈식 구성요소와 명확한 인터페이스를 사용하면 전체 애플리케이션을 확장하는 대신 필요에 따라 개별 구성요소를 확장할 수 있습니다. 자세한 내용은 성능 최적화 핵심 요소의 모듈식 설계 촉진을 참조하세요.

스테이트리스(Stateless) 설계 구현

애플리케이션을 스테이트리스(Stateless)로 설계합니다. 즉, 로컬에 저장되는 데이터가 없습니다. 따라서 데이터 일관성에 대한 걱정 없이 인스턴스를 추가하거나 제거할 수 있습니다.