OpenFlow - Snowflake 배포 비용 및 확장 고려 사항

OpenFlow - Snowflake 배포 비용 및 확장 고려 사항

OpenFlow - Snowflake 배포를 실행할 때는 여러 Snowflake 구성 요소와 관련된 비용 고려 사항을 알고 있어야 해요. 여기에는 컴퓨트 풀 비용, Snowpark Container Services 인프라, 데이터 수집, 텔레메트리 데이터 수집, 이 주제에 명시되지 않은 기타 비용이 포함됩니다.

출처: Snowflake 문서 — OpenFlow Snowflake 배포 비용 및 확장 고려 사항

본문

OpenFlow를 사용하고 확장하려면 이런 비용을 이해해야 해요. 다음 섹션들에서는 OpenFlow 비용을 전반적으로 설명하고, OpenFlow 런타임 확장과 관련 비용의 여러 예시를 제공해요.

OpenFlow - Snowflake 배포 비용 (Openflow - Snowflake Deployment costs)

OpenFlow를 사용할 때 OpenFlow가 사용하는 여러 Snowflake 구성 요소에서 비용이 발생할 수 있어요. 이 비용 범주들은 다음 섹션에서 설명돼요. 다만 실제 비용은 귀하의 특정 환경에 따라 달라질 수 있어요. 다양한 비용 소비 시나리오의 예시는 OpenFlow - Snowflake 배포 소비 계산 예시를 참고하세요.

OpenFlow 컴퓨트 풀 비용 (Openflow compute pool costs)

참고: 이 비용 범주는 Snowflake 청구서에 Openflow Compute Snowflake로 표시돼요.

OpenFlow를 실행하는 총 비용은 Snowflake 계정의 Snowpark Container Services 컴퓨트 풀이 사용하는 인스턴스 수와 유형에 기반해요. OpenFlow는 컴퓨트 풀을 두 가지 목적으로 사용해요.

  • OpenFlow 관리 서비스 (Openflow_Control_Pool_0 컴퓨트 풀) — OpenFlow 관리 서비스는 OpenFlow 배포의 일부로 실행돼요. 이들은 전용 컴퓨트 풀을 사용해 OpenFlow 배포를 관리해요. 이 컴퓨트 풀은 배포를 만드는 즉시 실행을 시작하고, 배포가 활성 상태인 동안 계속 실행돼요.

주의: OpenFlow 관리 서비스와 연결된 컴퓨트 풀은 실행 중인 런타임이 없어도 계속 실행되며 비용이 발생해요.

  • OpenFlow 런타임 — OpenFlow는 컴퓨트 풀을 사용해 OpenFlow 런타임을 실행해요. 필요한 컴퓨트 풀 수와 각 컴퓨트 풀 내 노드 수는 현재 실행 중인 런타임 수에 따라 확장돼요. Snowflake는 컴퓨트 풀 노드당 여러 런타임 파드를 스케줄링하므로, 필요한 컴퓨트 풀 인스턴스 수는 보통 총 런타임 노드 수보다 적어요.

컴퓨트 풀과 연결된 모든 런타임이 중지되면 런타임과 연결된 컴퓨트 풀은 0개 노드로 축소돼요. 사용 중이 아닌 런타임 컴퓨트 풀에는 비용이 발생하지 않아요.

크레딧은 초 단위로 청구되며 최소 5분이에요. Snowpark Container Services Compute Instance Family의 시간당 요율에 대한 정보는 Snowflake Service Consumption Table의 Table 1(d)를 참고하세요. Account Usage 스키마의 다음 뷰들이 OpenFlow 컴퓨팅 비용에 대한 추가 세부 정보를 제공해요.

  • METERING_DAILY_HISTORY
  • METERING_HISTORY

OpenFlow와 관련된 컴퓨트 풀 비용은 SERVICE_TYPE이 OPENFLOW_COMPUTE_SNOWFLAKE로 표시돼요. 이 행들에서 NAME은 비용이 발생한 컴퓨트 풀의 이름을 반환하므로, OpenFlow 관리 서비스 비용과 런타임 비용을 분리할 수 있어요.

참고: OPENFLOW_USAGE_HISTORY 뷰는 현재 OPENFLOW_COMPUTE_SNOWFLAKE 서비스 유형에 대한 레코드를 포함하지 않아요. 그 뷰는 OpenFlow BYOC 배포만 다뤄요. 그 결과 OpenFlow Snowflake 배포에는 런타임별 비용 귀속이 제공되지 않아요.

Snowflake의 컴퓨팅 비용에 대한 자세한 내용은 Exploring compute cost를 참고하세요.

Snowsight에서 OpenFlow 컴퓨팅 비용 보기 (Viewing Openflow compute costs in Snowsight)

Snowsight에서 OpenFlow 컴퓨팅 비용을 보려면:

  1. Snowsight에 로그인해요.
  2. 비용 및 사용량 데이터에 접근할 수 있는 역할로 전환해요.
  3. 탐색 메뉴에서 Admin » Cost management를 선택해요.
  4. 사용량 데이터를 보는 데 사용할 웨어하우스를 선택해요.
  5. Consumption을 선택해요.
  6. Usage Type 드롭다운에서 Compute를 선택해요.
  7. By Service를 선택하고 Openflow Compute Snowflake를 찾아요.
쿼리: 일별 OpenFlow 컴퓨트 크레딧 소비 (Query: Daily Openflow compute credit consumption)

다음 쿼리는 지난 30일 동안 OpenFlow 컴퓨팅의 일별 크레딧 소비를 반환해요.

SELECT TO_DATE(usage_date) AS date,
  service_type,
  SUM(credits_used) AS credits_used
FROM snowflake.account_usage.metering_daily_history
WHERE service_type = 'OPENFLOW_COMPUTE_SNOWFLAKE'
  AND usage_date >= DATEADD(month, -1, CURRENT_TIMESTAMP())
GROUP BY 1, 2
ORDER BY 1 DESC;
쿼리: 시간별 OpenFlow 컴퓨트 크레딧 소비 (Query: Hourly Openflow compute credit consumption)

다음 쿼리는 OpenFlow 컴퓨팅의 시간별 크레딧 소비를 반환하는데, 최대 사용 기간을 식별하는 데 유용해요.

SELECT start_time,
  service_type,
  credits_used
FROM snowflake.account_usage.metering_history
WHERE service_type = 'OPENFLOW_COMPUTE_SNOWFLAKE'
  AND start_time >= DATEADD(day, -7, CURRENT_TIMESTAMP())
ORDER BY 1 DESC;

Snowpark Container Services 인프라 비용 (Snowpark Container Services infrastructure costs)

컴퓨트 풀 비용 외에도 스토리지와 데이터 전송을 포함한 추가 Snowpark Container Services 인프라와 관련된 비용이 있어요. 자세한 내용은 Snowpark Container Services 비용을 참고하세요.

데이터 수집 비용 (Data ingestion costs)

Snowpipe 또는 Snowpipe Streaming 같은 서비스를 사용해 데이터를 Snowflake에 로드할 때 비용이 발생해요. 이 비용은 수집된 데이터 양에 기반해요.

참고: 이 비용은 Snowflake 청구서의 각 수집 서비스 라인 항목 아래 표시돼요(예: Snowpipe의 경우 Pipe, Snowpipe Streaming의 경우 Snowpipe Streaming).

또한 일부 커넥터는 웨어하우스를 요구하며 웨어하우스 비용이 발생할 수 있어요. 예를 들어 데이터베이스 CDC 커넥터는 초기 스냅샷과 지속적인 증분 CDC(Change Data Capture) 모두에 웨어하우스가 필요해요.

텔레메트리 데이터 수집 비용 (Telemetry data ingestion costs)

참고: 이 비용 범주는 Snowflake 청구서에 Telemetry Data Ingest로 표시돼요.

OpenFlow용 텔레메트리 데이터를 저장하기 위해 이벤트 테이블을 사용하면, OpenFlow 배포로 로그와 메트릭을 보내는 것에 대해 Snowflake가 요금을 부과해요. 또한 Snowflake 내의 이벤트 테이블로 런타임 텔레메트리 데이터를 보내는 요금도 있어요.

텔레메트리 데이터 GB당 크레딧 요율은 Snowflake Service Consumption Table의 Table 5에 지정돼 있어요. 이 항목은 Telemetry Data Ingest로 불러요.

OpenFlow 크레딧 소비 줄이기 (Reducing Openflow credit consumption)

다음 전략이 OpenFlow 크레딧 소비를 낮추는 데 도움이 될 수 있어요.

유휴 런타임 중단 (Suspend idle runtimes)

활발히 사용하지 않는 런타임이 있으면 중단(suspend)하세요. 런타임을 중단하면 관련 런타임 컴퓨트 풀에 대한 크레딧 소비가 멈춰요. 런타임이 중단되면 그 컴퓨트 풀은 0개 노드로 축소되고 더 이상 비용이 발생하지 않아요.

워크로드를 충족하는 가장 작은 런타임 유형 선택 (Choose the smallest runtime type that meets your workload)

각 런타임 유형은 시간당 크레딧 요율이 다른 서로 다른 컴퓨트 풀 인스턴스 패밀리에 매핑돼요. Small 런타임은 CPU_X64_S 인스턴스를, Medium 런타임은 CPU_X64_SL을, Large 런타임은 CPU_X64_L을 사용해요. 워크로드의 CPU와 메모리 요구를 충족하는 가장 작은 런타임 유형을 선택하면 사용하지 않는 용량에 비용을 지불하는 것을 피할 수 있어요. 자세한 내용은 런타임-컴퓨트 풀 매핑을 참고하세요.

적절한 최대 노드 한도 설정 (Set appropriate maximum node limits)

OpenFlow는 런타임 생성 중 지정한 최대 노드 설정까지, CPU 소비에 기반해 컴퓨트 풀 노드를 확장해요. 최대 노드 한도를 낮게 설정하면 런타임이 확장할 수 있는 정도가 제한되어 최대 컴퓨팅 비용이 직접 제한돼요. 워크로드의 실제 확장 필요를 평가하고 필수보다 높게 최대값을 설정하지 마세요.

활성 배포 수 최소화 (Minimize the number of active deployments)

OpenFlow 관리 서비스 컴퓨트 풀은 런타임이 실행되지 않아도 배포가 활성 상태인 동안 계속 실행돼요. 각 배포는 이 고정 비용(CPU_X64_S 인스턴스 1개)을 발생시켜요. 통합할 수 있는 배포가 여러 개 있다면 활성 배포 수를 줄여 중복 관리 풀 요금을 없앨 수 있어요.

텔레메트리 데이터 양 관리 (Manage telemetry data volume)

Snowflake는 이벤트 테이블로 수집되는 텔레메트리 데이터 GB당 비용을 부과해요. 런타임이 많은 양의 로그와 메트릭을 생성한다면 텔레메트리 구성을 조정해 이벤트 테이블로 보내는 데이터 양을 줄이는 것을 고려하세요. GB당 요율은 Snowflake Service Consumption Table의 Table 5에 지정돼 있어요.

CDC 커넥터용 웨어하우스 적정화 (Right-size warehouses for CDC connectors)

데이터베이스 CDC 커넥터는 초기 스냅샷과 지속적인 증분 CDC 모두에 웨어하우스가 필요해요. 이 연산들에 컴퓨팅을 과도하게 프로비저닝하지 않도록 적절한 크기의 웨어하우스를 선택하세요.

런타임 및 확장 동작과 관련된 OpenFlow - Snowflake 배포 비용 (Openflow - Snowflake Deployment costs associated with runtimes and scaling behavior)

런타임을 어떻게 구성하고 확장할지 선택하는 것이 비용을 효과적으로 관리하는 데 중요해요. OpenFlow는 각각 고유한 확장 특성과 관련 비용을 가진 여러 런타임 유형을 지원해요.

런타임을 Snowflake 컴퓨트 풀에 매핑 (Mapping runtimes to Snowflake compute pools)

선택한 런타임 유형은 관련 컴퓨트 풀에 스케줄링되는 런타임 파드를 결정해요. 더 큰 런타임 유형을 사용하면 더 큰 컴퓨트 풀이 사용되어 더 높은 비용이 발생해요.

런타임 크기와 확장 동작은 다음 표에 설명돼요.

런타임 유형 vCPU 사용 가능한 메모리 (GB) Snowflake Compute Pool 인스턴스 패밀리 Snowflake Compute Pool 인스턴스 패밀리 - vCPU 인스턴스 패밀리 - 메모리 (GB)
Small 1 2 CPU_X64_S INTERNAL_OPENFLOW_0_SMALL 4 16
Medium 4 10 CPU_X64_SL INTERNAL_OPENFLOW_0_MEDIUM 16 64
Large 8 20 CPU_X64_L INTERNAL_OPENFLOW_0_LARGE 32 128

OpenFlow는 추가 컴퓨트 풀 노드를 스케줄링해야 할 때 CPU 소비에 기반해 기본 Snowflake 컴퓨트 풀을 확장하며, 런타임 생성 시 지정한 최대 노드 수까지 확장돼요.

컴퓨트 풀은 최소 0개 노드, 최대 50개 노드로 구성돼요. 필요한 크기는 런타임의 CPU와 메모리 요구 사항에 따라 동적으로 조정돼요. 리소스 수요가 없으면(예: 런타임이 실행 중이 아닐 때) 컴퓨트 풀은 600초(10분) 후 0개 노드로 축소돼요.

런타임 활동 Snowflake 비용 클라우드 비용
런타임 없음 없음 Openflow Control Pool × 1 노드 = 1 CPU_X64_S 인스턴스-시간 없음
1 small 런타임 (1 vCPU) (최소=1 최대=2) 1시간 동안 활성. 런타임은 2로 확장되지 않음 Openflow Control Pool × 1 노드 + Small Openflow Compute Pool (CPU_X64_S) × 1 노드 = 2 CPU_X64_S 인스턴스-시간 없음
2 small 런타임 (1 vCPU) (최소/최대=2), 1 large 런타임 (8 vCPU) (최소/최대=10) Small: 4개 노드 1시간 활성. Large: 10개 노드 1시간 활성 Openflow Control Pool × 1 노드 + Small Openflow Compute Pool (CPU_X64_S) × 2 노드 + Large Openflow Compute Pool (CPU_X64_L) × 4 노드 = 3 CPU_X64_S 인스턴스-시간 + 4 CPU_X64_L 인스턴스-시간 없음
1 medium (4 vCPU) (최소=1 최대=2) 처음 20분: 1개 노드 실행. 20분 후: 2개 노드로 확장. 40분 후: 1개 노드로 다시 축소. 총 1시간 Openflow Control Pool × 1 노드 + Medium Openflow Compute Pool (CPU_X64_SL) × 1 노드 = 1 CPU_X64_S 인스턴스-시간 + 1 CPU_X64_SL 인스턴스-시간 없음
1 medium (4 vCPU) (최소/최대=2) 처음 30분: 2개 노드 실행. 처음 30분 후 중단 Openflow Control Pool × 1 노드 + Medium Openflow Compute Pool (CPU_X64_SL) × 1 노드 × 1/2시간 = 1 CPU_X64_S 인스턴스-시간 + 1/2 CPU_X64_SL 인스턴스-시간 없음

OpenFlow - Snowflake 배포 소비 계산 예시 (Examples for calculating Openflow - Snowflake Deployment consumption)

OpenFlow Snowflake 배포를 만들고 런타임을 만들지 않은 경우

  • Openflow_Control_Pool_0 컴퓨트 풀이 CPU_X64_S 인스턴스 1개로 실행 중
  • 총 OpenFlow 소비 = 1 CPU_X64_S 인스턴스-시간

Min Nodes=1, Max Nodes=2인 small 런타임 하나를 만들고, 런타임이 1시간 동안 1개 노드로 유지되는 경우

  • Openflow_Control_Pool_0 컴퓨트 풀이 CPU_X64_S 인스턴스 1개로 실행 중
  • INTERNAL_OPENFLOW_0_SMALL 컴퓨트 풀이 CPU_X64_S 인스턴스 1개로 실행 중
  • 총 OpenFlow 소비 = 2 CPU_X64_S 인스턴스-시간

각각 최소/최대 2개 노드인 small 런타임 두 개와 최소/최대 10개 노드인 large 런타임 하나를 만들어 1시간 동안 활성화한 경우

  • Openflow_Control_Pool_0 컴퓨트 풀이 CPU_X64_S 인스턴스 1개로 실행 중
  • 2개 노드의 small 런타임 두 개 = INTERNAL_OPENFLOW_0_SMALL 컴퓨트 풀이 CPU_X64_S 인스턴스 2개로 실행 = 2 CPU_X64_S 인스턴스-시간
  • 10개 노드의 large 런타임 하나 = INTERNAL_OPENFLOW_0_LARGE 컴퓨트 풀이 CPU_X64_L 인스턴스 4개로 실행 = 4 CPU_X64_L 인스턴스-시간
  • 총 OpenFlow 소비 = 3 CPU_X64_S 인스턴스-시간 + 4 CPU_X64_L 인스턴스-시간

1개 노드의 medium 런타임 하나를 만들고, 20분 후 2개 노드로 확장하고, 다시 20분 후 1개 노드로 축소되어 20분 더 실행되는 경우

  • Openflow_Control_Pool_0 컴퓨트 풀이 CPU_X64_S 인스턴스 1개로 실행 중
  • 2개 노드로 확장하는 medium 런타임 하나 = INTERNAL_OPENFLOW_0_MEDIUM 컴퓨트 풀이 CPU_X64_SL 인스턴스 1개로 실행 = 1 CPU_X64_SL 인스턴스-시간
  • 총 OpenFlow 소비 = 1 CPU_X64_S 인스턴스-시간 + 1 CPU_X64_SL 인스턴스-시간

2개 노드의 medium 런타임 하나를 만들고 30분 후 중단한 경우

  • Openflow_Control_Pool_0 컴퓨트 풀이 CPU_X64_S 인스턴스 1개로 실행 중
  • 1개 노드의 medium 런타임 하나 = INTERNAL_OPENFLOW_0_MEDIUM 컴퓨트 풀이 CPU_X64_SL 인스턴스 1개로 실행
  • 30분 = 1/2시간
  • 총 OpenFlow 소비 = 1 CPU_X64_S 인스턴스-시간 + 1/2 CPU_X64_SL 인스턴스-시간

더 알아보기 (Learn more)