워크로드에 맞는 Compute Engine 배포 전략 선택


클라우드 설계자 또는 IT 관리자는 Compute Engine에서 애플리케이션을 실행할 때 효율적으로 프로비저닝 및 운영할 수 있는 VM 토폴로지를 설계해야 합니다.

Compute Engine은 다양한 배포 옵션을 제공합니다. 예를 들어 단일 항목으로 관리하는 VM 그룹을 배포하거나 VM을 개별 리소스로 프로비저닝 및 관리할 수 있습니다. 각 접근법에는 고유한 이점과 제한사항이 있습니다. 최적의 배포 전략을 선택하려면 어떻게 해야 할까요?

  1. 먼저 애플리케이션의 주요 요구사항을 평가합니다.
  2. 사용 가능한 배포 옵션 및 관련 이점을 검토합니다.
  3. 요구사항을 충족하고 Compute Engine의 기능을 최적으로 사용하는 전략을 선택합니다.

워크로드 평가

다음 질문을 통해 배포하려는 워크로드의 주요 요구사항을 분석할 수 있습니다. 해당 답변은 다음 섹션에 나열된 각 배포 옵션의 기능을 워크로드 요구사항에 매핑하는 데 도움이 됩니다.

  • 애플리케이션 상태

    • 애플리케이션이 스테이트풀(Stateful)인가요?

      • 스테이트풀(Stateful) 애플리케이션은 데이터가 더 이상 필요하지 않을 때까지 클라이언트 또는 세션 ID와 같은 특정 데이터를 저장합니다. 예를 들어 온라인 쇼핑 앱에서 장바구니 서비스는 사용자가 쇼핑을 계속할 때 추가되거나 삭제되는 항목의 세부정보를 저장하고 사용자가 결제 프로세스를 시작할 때 최종 장바구니 상태를 유지할 수 있습니다.
      • 스테이트리스(Stateless) 애플리케이션은 클라이언트, 트랜잭션 또는 세션 데이터를 저장할 필요가 없습니다. 예를 들어 웹 서버는 클라이언트가 요청한 콘텐츠를 제공한 후 세션을 종료할 수 있습니다.

      스테이트풀(Stateful) 및 스테이트리스(Stateless) 애플리케이션에 대한 자세한 내용은 스테이트풀(Stateful) 워크로드와 스테이트리스(Stateless) 워크로드의 차이점을 참조하세요.

    • VM을 재부팅하거나 Compute Engine이 VM을 다시 만들 때(자동 복구) 인스턴스별 메타데이터를 보존해야 하나요?

  • 프로비저닝

    • VM에서 머신 유형이나 이미지의 조합을 사용해야 하나요? 예를 들어 일부 VM은 메모리 최적화 머신 유형을 필요로 하지만 다른 VM은 범용 머신 유형을 사용하나요?
    • 비용과 응답 시간 간에 최적의 균형을 유지하기 위해 인프라가 부하의 변화에 따라 자동으로 확장되어야 하나요?
    • 모든 VM을 단일 영역, VPC 네트워크, 서브넷 내에서 실행할 수 있나요?
    • 애플리케이션을 다른 특정 리소스와 동일한 영역에서 실행해야 하나요? 예를 들어 애플리케이션을 사용하려면 데이터베이스와의 지연 시간이 짧은 연결이 필요한가요?
  • 작업

    • VM을 단일 그룹으로 관리하고 싶으신가요? 예를 들어 모든 VM에서 애플리케이션 업데이트를 자동화하고 싶으신가요?
    • VM을 관리하려면 커스텀 또는 타사 도구를 사용해야 하나요?
    • 실패한 VM 처리에 대한 제어가 필요한가요? 예를 들어 VM이 실패한 경우 근본 원인을 확인하는 동안 VM을 중지된 상태로 유지하시겠어요?
    • VM의 시작-중지-일시중지-재개 시퀀스나 일정을 제어해야 하나요? 예를 들어 비용을 절약하기 위해 주말 또는 하루 중 특정 시간에 VM을 중지할 계획인가요?
  • 탄력성

    • 애플리케이션이 영역 장애에 대한 보호가 필요한가요? 즉, 영역이 다운된 경우 애플리케이션이 리전의 다른 영역에 있는 VM의 요청을 계속 처리하도록 하시겠어요?
    • 어떤 이유로든 VM이 중지 또는 비정상 종료되거나 애플리케이션이 요청에 응답하지 않는 경우 Compute Engine이 자동으로 VM을 다시 만들어야 하나요?
    • 애플리케이션에 호스트 VM의 고정 내부 또는 외부 IP 주소가 필요한가요?

요구사항을 평가했으므로 이제 Compute Engine에서 제공하는 배포 옵션에 대해 알아보세요.

사용 가능한 배포 옵션 검토

Compute Engine에 워크로드를 배포할 때 고려할 수 있는 옵션의 기능과 상대적인 이점을 검토하고 이해합니다.

독립형 VM
이 옵션을 사용하면 프로비저닝하는 각 VM에 대해 머신 유형, 이미지, 디스크, 기타 속성을 개별적으로 선택합니다. 또한 VM을 별도의 리소스로 관리합니다.
비관리형 인스턴스 그룹
독립형 VM을 프로비저닝하고 인스턴스 그룹에 추가할 수 있습니다. 그러면 비관리형 인스턴스 그룹을 부하 분산기의 백엔드로 사용할 수 있습니다.
관리형 인스턴스 그룹(MIG)

MIG는 인스턴스 템플릿을 사용하여 프로비저닝하는 동일하거나 유사한 구성의 인스턴스 그룹입니다.

  • 특정 디스크 또는 메타데이터를 보존하도록 MIG를 스테이트풀(Stateful)로 만들 수 있습니다.

  • 스테이트리스(Stateless) MIG의 경우 자동 확장을 사용 설정하고 확장 정책을 구성할 수 있습니다.

  • MIG를 만드는 동안 단일 영역 내에 VM을 배포하거나 고가용성을 위해 한 리전의 2개 이상의 영역에 배포할 수 있습니다.

다음은 각 배포 옵션의 주요 기능을 요약한 표입니다.

기능 독립형 VM 비관리형 인스턴스 그룹 스테이트풀(Stateful) MIG 스테이트리스(Stateless) MIG
VM 그룹의 템플릿 기반 프로비저닝
머신 유형이미지의 조합
고정 내부 또는 외부 IP 주소
실패한 VM의 자동 복구
VM 시작-중지일시중지-재개 작업 제어
VM 그룹을 부하 분산기 백엔드로 설정
스테이트풀(Stateful) 워크로드의 디스크 및 메타데이터 보존
특정 VM의 제어되는 업데이트
모든 VM의 자동 순차적 업데이트
자동 및 예측 수평 확장

다음 다이어그램은 주요 차이를 이해하는 데 도움이 되는 샘플 배포를 나란히 보여줍니다.

독립형 VM 스테이트풀(Stateful) MIG 스테이트리스(Stateless) MIG
이 예시에서는 개별적으로 생성된 3개의 VM을 보여줍니다. 이 예시에서는 인스턴스 템플릿을 사용하여 프로비저닝된 유사하게 구성된 3개의 VM을 포함하는 MIG를 보여줍니다.

이 예시에서는 인스턴스 템플릿을 사용하여 프로비저닝된 3개의 동일한 VM이 포함된 MIG를 보여줍니다.

3개의 독립형 VM
인스턴스 템플릿을 사용하여 만들어진 3개의 VM이 있는 스테이트풀(Stateful) MIG
인스턴스 템플릿을 사용하여 만들어진 3개의 VM이 있는 스테이트리스(Stateless) MIG
  • 이 예시에서는 각 VM이 고유한 머신 유형, 이미지, 디스크, 기타 속성을 사용합니다.
  • VM이 비관리형 인스턴스 그룹에 개별적으로 추가되었습니다.
  • 이 예시에서는 VM이 인스턴스 템플릿에 정의된 머신 유형과 이미지를 사용합니다.
  • 스테이트풀(Stateful) 정책은 모든 VM에 연결된 부팅 디스크가 스테이트풀(Stateful)인지 확인합니다.
  • 인스턴스별 구성은 필수 스테이트풀(Stateful) 데이터 디스크를 추가합니다.
  • 이 예시에서 VM은 인스턴스 템플릿에서 머신 유형과 이미지를 상속합니다.
  • VM이 업데이트되거나 다시 만들어지면 디스크가 다시 만들어집니다.
  • MIG는 자동 확장 구성을 기반으로 VM을 자동으로 만들고 삭제합니다.

이제 워크로드를 평가하고 Compute Engine에서 제공하는 배포 옵션을 검토했으므로, 배포 방식을 선택할 준비가 되었습니다.

배포 전략 선택

여기서 설명하는 권장사항은 각 Compute Engine 배포 옵션의 기능에 배포된 특정 워크로드 특성을 기반으로 합니다.

다음과 같은 의사 결정 흐름을 사용합니다. 시각적 가이드를 선호하는 경우 이 문서 뒷부분의 결정 트리를 참조하세요.

  1. 독립형 VM과 인스턴스 그룹 중에서 선택합니다.

    요구사항 권장 배포 전략
    다음 요구사항 중 하나 이상이 워크로드에 필수입니다.
    • 애플리케이션은 머신 유형이나 이미지의 조합을 사용하는 VM에서 실행되어야 합니다.
    • 애플리케이션에 호스트 VM의 고정 내부 또는 외부 IP 주소가 필요합니다.
    • 실패한 VM 처리를 제어해야 합니다.
    • VM의 시작-중지 또는 일시중지-재개 작업을 제어해야 합니다.
    • VM을 프로비저닝하고 삭제하려면 커스텀 스크립트 또는 타사 도구를 사용해야 합니다.

    독립형 VM을 선택합니다.

    모든 독립형 VM을 단일 영역, VPC 네트워크, 서브넷에서 실행할 수 있는 경우 VM을 비관리형 인스턴스 그룹에 추가하는 것이 좋습니다. 그러면 비관리형 인스턴스 그룹을 부하 분산기의 백엔드로 사용할 수 있습니다.

    이 결정 흐름의 나머지 부분을 건너뜁니다.

    사용 사례에서는 위의 요구사항 중 어느 것도 필요하지 않습니다.

    MIG를 사용하여 관리하기 쉽고 가용성이 높고 확장 가능한 Compute Engine 토폴로지를 설정합니다.

    다음 단계로 진행합니다.

  2. 스테이트풀(Stateful) MIG와 스테이트리스(Stateless) MIG 중에서 선택합니다.

    요구사항 권장 MIG 유형
    애플리케이션을 사용하려면 디스크 및 메타데이터 보존이 필요합니다. 즉, 애플리케이션은 스테이트풀(Stateful)입니다.

    스테이트풀(Stateful) MIG를 선택하고 VM 재생성, 자동 복구, 업데이트와 같이 중단을 유발하는 이벤트 동안 Compute Engine에서 보존해야 하는 디스크를 구성합니다.

    다음 단계로 진행합니다.

    애플리케이션이 스테이트풀(Stateful)이 아닙니다.

    스테이트리스(Stateless) MIG를 선택하고 자동 확장 기능을 활용합니다. 중단을 유발하는 작업 중에 Compute Engine은 인스턴스 템플릿에 따라 디스크를 다시 만듭니다.

    다음 단계로 진행합니다.

  3. 영역 MIG와 리전 MIG 중에서 선택합니다.

    요구사항 권장 MIG 유형
    애플리케이션은 단일 영역에서 실행되어야 합니다. 그렇지 않으면 영역 장애에 대한 보호가 필요하지 않습니다. 영역 MIG를 선택합니다.
    영역 장애가 발생하더라도 애플리케이션은 계속 실행되어야 합니다. 리전 MIG를 선택합니다.

결정 트리

다음 다이어그램은 Compute Engine 배포 전략을 결정할 때 고려해야 할 요소를 안내합니다.

Compute Engine 배포 전략을 선택하기 위한 결정 트리

다음 단계