클라우드 탄력성은 클라우드 시스템이 변화하는 워크로드에 맞게 컴퓨팅 리소스를 자동으로 변경하는 기능입니다. 탄력적 컴퓨팅이라고도 하는 이 개념은 고무줄과 같습니다. 더 많은 작업을 처리하기 위해 늘어났다가 작업이 완료되면 다시 줄어들기 때문에 사전에 필요한 용량을 추측할 필요가 없습니다. 대신 트래픽이 급증하면 클라우드 서비스가 자동으로 더 많은 처리 능력, 메모리 또는 스토리지를 제공하고, 트래픽이 줄어들면 다시 축소합니다. 이를 통해 비즈니스는 사용하는 리소스에 대해서만 비용을 지불하여 비용을 절감할 수 있습니다.
클라우드 탄력성은 클라우드 컴퓨팅의 주요 이점 중 하나로, 기업의 클라우드 인프라가 수요에 따라 리소스를 자동으로 늘리거나 줄일 수 있게 해줍니다. 클라우드 탄력성의 핵심 의미는 사람의 도움 없이 예측할 수 없는 워크로드 변화에 적응하는 것입니다.
예를 들어 전자상거래 웹사이트는 블랙 프라이데이와 같은 공휴일에 트래픽이 급증할 수 있습니다. 탄력적인 컴퓨팅을 사용하면 웹사이트가 자동으로 더 많은 서버를 확보하여 트래픽 급증을 처리하므로 고객에게 원활한 쇼핑 경험을 제공할 수 있습니다. 공휴일이 지나면 시스템은 리소스를 정상 수준으로 줄입니다.
시스템이 탄력성을 사용하는 방법에는 수평적 방법과 수직적 방법, 두 가지가 있습니다.
이를 '수평 확장' 또는 '수평 축소'라고도 합니다. 시스템에 더 많은 머신 또는 인스턴스를 추가하거나 삭제하는 작업이 포함됩니다. 용량이 더 필요하면 서버를 추가합니다. 필요하지 않을 때는 삭제합니다. 이는 분할하여 여러 서버에서 동시에 실행할 수 있는 애플리케이션에 자주 사용됩니다.
이를 '수직 확장' 또는 '축소'라고도 합니다. 여기에는 단일 머신의 리소스를 늘리거나 줄이는 작업이 포함됩니다. 예를 들어 특정 서버에 더 많은 성능이 필요하다면 CPU, 메모리 또는 스토리지를 더 많이 제공합니다. 작업이 완료되면 이러한 리소스를 줄일 수 있습니다.
탄력성과 확장성은 종종 함께 사용되는 용어이지만 서로 다른 개념을 설명합니다.
확장성은 수개월 동안 훈련하여 대규모 마라톤을 준비하는 것과 같습니다. 탄력성은 마치 경주 중에 다른 주자들과 보조를 맞추기 위해 즉시 속도를 높이거나 늦출 수 있는 주자와 같습니다.
탄력적 컴퓨팅은 비즈니스와 개발자에게 여러 가지 잠재적인 이점을 제공합니다.
비용 효율성
탄력적인 컴퓨팅을 사용하면 사용한 리소스에 대해서만 비용을 지불하므로 비용을 절감할 수 있습니다. 수요가 적을 때는 추가 서버를 계속 실행할 필요가 없으므로 불필요한 지출을 줄일 수 있습니다. 또한 연중 몇 번만 필요한 트래픽 급증을 처리하기 위해 값비싼 하드웨어를 구매할 필요가 없습니다.
고가용성 및 안정성
탄력적인 컴퓨팅은 리소스를 자동으로 조정하여 예기치 않은 트래픽 급증이 발생하더라도 애플리케이션의 가용성과 반응성을 유지하는 데 도움이 됩니다. 이를 통해 사용자의 불만을 야기하거나 비즈니스 평판을 저해할 수 있는 속도 저하 또는 비정상 종료를 방지할 수 있습니다.
성능 향상
시스템은 필요할 때 자동으로 리소스를 추가하므로 빠른 응답 시간과 원활한 사용자 경험을 유지하는 데 도움이 될 수 있습니다. 이는 온라인 게임, 스트리밍 서비스, 전자상거래와 같이 예측할 수 없는 워크로드가 있는 애플리케이션에 특히 중요합니다.
간소한 관리
확장 프로세스가 자동화되어 있으므로 개발자와 IT팀은 리소스를 수동으로 모니터링하고 조정할 필요가 없습니다. 이를 통해 새로운 기능을 개발하거나 사용자 경험을 개선하는 등 다른 중요한 작업에 집중할 수 있는 시간과 노력을 확보할 수 있습니다.
엔터프라이즈 환경의 개발자에게 탄력적인 컴퓨팅은 단순한 기능이 아니라 복원력 있고 비용 효율적이며 성능이 뛰어난 애플리케이션을 빌드하는 데 도움이 되는 중요한 전략입니다. 예측할 수 없는 워크로드에 지능적으로 적응할 수 있는 시스템을 설계하여 초과 프로비저닝과 과소 프로비저닝을 모두 피하는 것이 핵심입니다. 이는 전자상거래 플랫폼, 금융 서비스, 데이터 처리 파이프라인과 같이 24시간 연중무휴로 사용 가능해야 하는 미션 크리티컬 애플리케이션에 특히 중요합니다.
클라우드 탄력성은 Compute Engine의 관리형 인스턴스 그룹(MIG)이 작동하는 방식의 핵심 원칙입니다. 트래픽을 처리하기 위해 VM을 수동으로 프로비저닝하는 대신 수요 변화에 자동으로 적응하는 시스템을 설계할 수 있습니다. MIG는 단일 항목으로 관리할 수 있는 동일한 VM 그룹이며, Compute Engine에서 탄력적인 시스템을 빌드하기 위한 기본 도구입니다. MIG는 자동 확장 처리를 사용하여 사전 정의된 측정항목을 기반으로 그룹에서 VM을 자동으로 추가하거나 삭제하여 탄력성을 확보합니다.
엔터프라이즈 개발자가 이러한 개념을 실제로 적용하여 확장 가능한 시스템을 빌드하는 방법은 다음과 같습니다.
VM 청사진 만들기: 인스턴스 템플릿 | 탄력적인 시스템을 만들려면 먼저 인스턴스 템플릿이 필요합니다. 이 템플릿은 머신 유형, 부팅 디스크, 필요한 시작 스크립트를 포함한 애플리케이션의 VM 구성에 대한 단일 정보 소스 역할을 합니다. 이렇게 하면 모든 새 VM이 마지막 VM의 정확한 복제본이 되어 일관성이 유지되고 출시가 간소화됩니다. |
관리형 인스턴스 그룹 구성 | Google Cloud 콘솔에서 '인스턴스 그룹' 페이지로 이동하여 새 관리형 인스턴스 그룹을 만듭니다. 생성한 인스턴스 템플릿을 선택하고, 최소 및 최대 인스턴스 수를 설정하고, 그룹의 영역을 선택하여 중복성과 고가용성을 보장합니다. |
자동 확장 규칙 구현 | 이것이 바로 클라우드 탄력성의 핵심입니다. 엔터프라이즈 개발자는 단순한 CPU 기반 확장 대신 Cloud Monitoring 측정항목(예: 백엔드 작업자 서비스의 큐 길이)을 기반으로 고급 자동 확장 규칙을 구현하거나, 과거 데이터를 사용하여 트래픽 급증이 예상되기 전에 새 VM을 가동하는 예측 자동 확장을 사용할 수 있습니다. |
부하 분산기 추가 | 공개 애플리케이션의 경우 부하 분산기는 수신되는 사용자 트래픽을 관리형 인스턴스 그룹의 모든 VM에 분산하는 데 필수적입니다. 이를 통해 단일 VM에 과부하가 걸리지 않고 애플리케이션의 가용성이 높게 유지됩니다. |
VM 청사진 만들기: 인스턴스 템플릿
탄력적인 시스템을 만들려면 먼저 인스턴스 템플릿이 필요합니다. 이 템플릿은 머신 유형, 부팅 디스크, 필요한 시작 스크립트를 포함한 애플리케이션의 VM 구성에 대한 단일 정보 소스 역할을 합니다. 이렇게 하면 모든 새 VM이 마지막 VM의 정확한 복제본이 되어 일관성이 유지되고 출시가 간소화됩니다.
관리형 인스턴스 그룹 구성
Google Cloud 콘솔에서 '인스턴스 그룹' 페이지로 이동하여 새 관리형 인스턴스 그룹을 만듭니다. 생성한 인스턴스 템플릿을 선택하고, 최소 및 최대 인스턴스 수를 설정하고, 그룹의 영역을 선택하여 중복성과 고가용성을 보장합니다.
자동 확장 규칙 구현
이것이 바로 클라우드 탄력성의 핵심입니다. 엔터프라이즈 개발자는 단순한 CPU 기반 확장 대신 Cloud Monitoring 측정항목(예: 백엔드 작업자 서비스의 큐 길이)을 기반으로 고급 자동 확장 규칙을 구현하거나, 과거 데이터를 사용하여 트래픽 급증이 예상되기 전에 새 VM을 가동하는 예측 자동 확장을 사용할 수 있습니다.
부하 분산기 추가
공개 애플리케이션의 경우 부하 분산기는 수신되는 사용자 트래픽을 관리형 인스턴스 그룹의 모든 VM에 분산하는 데 필수적입니다. 이를 통해 단일 VM에 과부하가 걸리지 않고 애플리케이션의 가용성이 높게 유지됩니다.