수평 확장성 활용

Last reviewed 2024-12-30 UTC

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

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

원칙 개요

시스템을 수평 아키텍처로 재설계합니다. 트래픽 또는 데이터 증가에 맞게 리소스를 추가할 수 있습니다. 사용하지 않는 리소스는 삭제할 수도 있습니다.

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

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

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

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

반면 수평 확장은 비용이 적게 들 수 있습니다. 확장하도록 설계된 시스템에서 수평 확장의 잠재력은 사실상 무제한입니다.

권장사항

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

관리형 서비스 사용

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

모듈식 설계 촉진

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

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

애플리케이션을 스테이트리스(Stateless), 즉 로컬에 저장된 데이터가 없도록 설계합니다. 이렇게 하면 데이터 일관성에 대해 걱정하지 않고 인스턴스를 추가하거나 삭제할 수 있습니다.