Skip to main content
NetApp artificial intelligence solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

7. 배포 아키텍처

기여자 nkarthik

Karthikeyan Nagalingam, NetApp

이 섹션에서는 파이프라인 운영에 필요한 인프라 배치, 소프트웨어 종속성 및 네트워크 연결을 정의합니다. 배포 시 Airflow 오케스트레이션은 XCP 데이터 이동성 호스트와 분리되고, 두 구성 요소는 StorageGRID, ONTAP NAS 및 선택한 ONTAP S3 또는 LustreFS 학습 대상에 연결됩니다.

[[7-1-reference-infrastructure-requirements]]
== 7.1 참조 인프라 요구 사항

다음 구성 요소는 최소 기능 배포 공간을 구성합니다. 선택한 준비 엔진과 동시 작업 부하에 맞게 Airflow 호스트의 크기를 조정하고, XCP 호스트는 불필요한 네트워크 홉 없이 ONTAP NAS NFS 내보내기 및 선택한 대상에 액세스할 수 있는 위치에 배치하십시오. LustreFS 모드를 사용하려면 XCP 호스트와 Airflow 워커 모두에 호환되는 마운트가 필요합니다.

요소 요구 사항

Airflow 호스트

Spark 또는 Python 변환 부하에 맞춰 CPU/메모리 크기 조정

XCP 호스트

NFS/Lustre 및 NetApp ONTAP S3 엔드포인트에 대한 네트워크 액세스

LustreFS 클라이언트

대상으로 선택된 경우 XCP 호스트 및 Airflow 호스트에 마운트됩니다.

[[7-1-1-reference-validation-environment]]
=== 7.1.1 참조 검증 환경

다음 환경은 대표적인 단일 노드 검증 프로파일로 사용되었습니다. 이는 기능 및 성능 평가를 위한 출발점일 뿐이며, 실제 운영 환경에 적합한 규모를 권장하는 것은 아닙니다. 고객은 데이터셋 규모, 동시 접속량, 데이터 보존 기간, 복구 기간 및 서비스 수준 요구 사항에 따라 컴퓨팅, 네트워크, 스토리지 용량 및 데이터 보호 수준을 결정해야 합니다.

계층 레퍼런스 하드웨어/소프트웨어

컴퓨팅 및 네트워크

256GB RAM, 64개 CPU 코어, 10GbE 연결을 갖춘 서버 1대

ONTAP 액티브 스토리지

One NetApp A800 시스템 1대 (1.8TB SSD 48개 장착)

오브젝트 스토리지

NetApp StorageGRID SG5864 어플라이언스 1대

고처리량 학습 스토리지

LustreFS가 탑재된 NetApp E2812 시스템 1대

플랫폼 소프트웨어

Kubernetes, Apache Airflow, Apache Airbyte, 단일 노드 Apache Spark, NetApp XCP 및 LustreFS

[[7-2-software-version-matrix]]
== 7.2 소프트웨어 버전 매트릭스

이 매트릭스는 검증된 파이프라인에서 사용되는 런타임 소프트웨어를 식별합니다. Airflow 및 Python 환경은 배포된 공급자 및 패키지와 호환되도록 유지해야 합니다. Spark, Delta Lake 및 Iceberg는 선택 사항이며 `data_prep`Spark 변환 경로 또는 해당 테이블 형식을 사용하는 경우에만 필요합니다.

소프트웨어 버전/참고 사항

아파치 에어플로우

2.x

파이썬

3.11

boto3

최신 안정 버전

scikit-learn

최신 안정 버전

PySpark(선택 사항)

Delta 3.2.0 / Iceberg 1.5.2 런타임 패키지와 호환됩니다.

NetApp XCP

원격 호스트에 설치됨(예: /usr/src/xcp/linux/xcp

[[7-3-network-requirements]]
== 7.3 네트워크 요구 사항

이러한 네트워크 흐름은 라우팅, 방화벽 및 이름 확인 정책에서 허용되어야 합니다. 프로덕션 환경의 모든 S3 호환 엔드포인트에는 HTTPS 사용을 권장합니다. 엔드포인트가 기본 HTTPS 포트를 사용하지 않는 경우 구성된 사용자 지정 포트를 사용하십시오. 배포된 LustreFS 구현에 따라 Lustre 클라이언트 연결을 확인하십시오.

흐름 프로토콜/포트

Airflow → ONTAP S3

HTTPS/HTTP (443/80 또는 사용자 지정)

Airflow → XCP 호스트

SSH(22)

XCP 호스트 → NFS 소스

NFS(2049)

XCP 호스트 → LustreFS

Lustre 클라이언트 포트

XCP 호스트 → ONTAP S3 (S3 모드)

HTTPS/HTTP

[[7-4-deployment-notes]]
== 7.4 배포 참고 사항

섹션/주제 지침/운영 실무

SSH 연결 설정

포트 22를 통해 XCP 호스트를 대상으로 하는 Airflow 연결 ssh_default`을 제한된 SSH 키 권한으로 구성합니다(`600).

서비스 수명주기 관리

`tools/airflow_ctl.sh`를 사용하여 배포 및 유지 관리 중에 로컬 Airflow 스케줄러와 웹 서버의 수명 주기를 관리합니다.

자격 증명 및 비밀 정보 저장

자격 증명, API 토큰 및 액세스 키는 인라인으로 입력하는 대신 Airflow Connections, Variables 또는 시크릿 백엔드에 저장하십시오 dag_run.conf.

인프라 및 작업 관찰 가능성

스케줄러 하트비트와 작업 실행을 독립적으로 모니터링하여 오케스트레이션 가용성 문제를 DAG 장애와 구분합니다.

[[7-5-installation-and-prerequisites]]
== 7.5 설치 및 필수 조건

이 하위 섹션에서는 새로운 환경에서 NetApp AI 검증 파이프라인을 구축, 구성 및 실행하는 데 필요한 기본 설치 단계를 정의합니다. 이 섹션은 DAG를 실행하기 전에 Airflow 워크스페이스를 설정하는 운영자, 아키텍트 및 엔지니어를 대상으로 합니다.

[[7-5-1-prerequisites]]
=== 7.5.1 필수 조건

솔루션을 설치하기 전에 대상 호스트가 다음 최소 요구 사항을 충족하는지 확인하십시오.

  • Linux 운영 체제, 가급적 Ubuntu 22.04/24.04 또는 RHEL 8+.

  • Python 3.11( pip, venv 및 빌드 툴링 포함)을 사용할 수 있습니다.

  • 소스 코드 검색 및 버전 관리를 위해 호스트에 Git이 설치되어 있습니다.

  • Apache Airflow 2.x가 전용 Python 가상 환경에 배포됩니다.

  • Airflow 호스트에서 NetApp XCP 호스트로의 SSH 접속.

  • Airflow 호스트에서 StorageGRID, ONTAP NAS 및 선택한 ONTAP S3 또는 LustreFS 대상으로의 네트워크 연결.

  • 원시 데이터, 준비된 데이터 스테이징 및 아카이브 저장소를 위한 S3 호환 엔드포인트 액세스.

  • 선택 사항: Java 런타임 및 Spark 3.x( spark 준비 경로를 사용하는 경우).

  • 선택 사항: table_format=delta 또는 `table_format=iceberg`를 선택할 경우 Delta Lake 및 Iceberg 런타임 패키지.

  • 선택 사항: Lustre 클라이언트 마운트( xcp_copy_destination=lustrefs 사용 시).

[[7-5-2-software-package-acquisition-and-repository-access]]
=== 7.5.2 소프트웨어 패키지 획득 및 저장소 접근

이 솔루션에 필요한 소프트웨어 패키지, 자동화 DAG, 배포 스크립트 및 검증 아티팩트를 얻으려면 NetApp AI 및 데이터 모빌리티 엔지니어링 팀(ng-data-mobility-in-ai-pipeline@netapp.com)으로 문의하십시오.

접근 권한이 부여되면 GitHub에서 대상 작업 디렉터리로 프로젝트 소스를 다운로드하거나 복제하십시오.

# Example GitHub clone
mkdir -p /opt/netapp-ai
cd /opt/netapp-ai

git clone https://github.com/<your-org>/<your-repo>.git
cd <your-repo>

git checkout main
ls -la

이미 /opt/netapp-ai/<your-repo> 아래에 저장소를 복제했다면, 다른 복사본을 다운로드하는 대신 해당 작업 디렉터리에서 계속 진행하세요.

[[7-5-3-create-the-python-environment]]
=== 7.5.3 Python 환경 생성

전용 가상 환경을 만들고 Airflow 및 파이프라인에 필요한 기본 종속성을 설치합니다.

export REPO_ROOT=/opt/netapp-ai/<your-repo>
cd "$REPO_ROOT"
python3 -m venv "$REPO_ROOT/.venv"
source "$REPO_ROOT/.venv/bin/activate"

python -m pip install --upgrade pip setuptools wheel
pip install "apache-airflow>=2.8,<3.0" boto3 scikit-learn

Spark 기반 준비 및 Lakehouse 테이블 형식을 사용하려면 필요에 따라 선택적 패키지를 설치하십시오.

pip install pyspark==3.5.*
pip install delta-spark==3.2.0
pip install apache-iceberg==1.5.2

사용 중인 Spark 런타임 및 클러스터 토폴로지에서 지원하는 정확한 패키지 버전을 사용하십시오. 호환되지 않는 Spark, Delta 및 Iceberg 조합을 혼용하지 마십시오.

[[7-5-4-configure-airflow-and-the-repository]]
=== 7.5.4 Airflow 및 저장소 구성

복제한 저장소 루트에서 Airflow 메타데이터 데이터베이스를 초기화하고 DAG 파일이 Airflow에서 보이는지 확인합니다.

export AIRFLOW_HOME="$REPO_ROOT/.airflow"
export AIRFLOW__CORE__DAGS_FOLDER="$REPO_ROOT"
export AIRFLOW__CORE__LOAD_EXAMPLES=False

airflow db init
airflow dags list | grep -E "example_ai_pipeline|example_ai_pipeline_sklearn"

워크스페이스에는 검증된 파이프라인에 필요한 Airflow 구성 파일과 DAG가 포함되어 있습니다. 저장소에 로컬 라이프사이클 관리를 위한 헬퍼 스크립트가 있는 경우, Airflow를 수동으로 실행하는 대신 해당 스크립트를 사용하여 스케줄러와 웹 서버를 시작하십시오.

# Start the Airflow scheduler and webserver with the deployment's service manager.
# or, if using the standard commands:
# airflow scheduler
# airflow webserver

[[7-5-5-required-connectivity-and-secret-configuration]]
=== 7.5.5 필수 연결 및 비밀 구성

파이프라인을 실행하기 전에 Airflow 호스트에서 다음 리소스에 접근할 수 있는지 확인하십시오.

  • StorageGRID 원시 데이터 S3 엔드포인트.

  • ONTAP NAS 준비된 데이터 버킷 엔드포인트.

  • ONTAP S3 대상 엔드포인트( xcp_copy_destination=s3).

  • LustreFS 마운트 시점 xcp_copy_destination=lustrefs.

  • XCP host over SSH using ssh_default 또는 구성된 SSH 연결을 사용합니다.

자격 증명을 셸 기록이나 DAG 코드에 직접 삽입하는 대신 Airflow 연결, 변수 또는 시크릿 백엔드에 저장하십시오. 파이프라인 실행을 시작하기 전에 필요한 액세스 키, 엔드포인트 및 프로필 매핑을 설정하십시오.

[[7-5-6-verify-the-installation]]
=== 7.5.6 설치 확인

Airflow 스케줄러와 DAG가 실행되고 예제 파이프라인을 구성 오류 없이 나열하고 실행할 수 있으면 설치가 성공적으로 완료된 것입니다.

airflow dags list
airflow tasks list example_ai_pipeline_sklearn

설치가 올바르게 완료되면 DAG가 Airflow에 존재하게 되며, 저장소 루트에 있는 트리거 스크립트를 사용하여 `CONF_JSON`기반 실행을 위한 준비가 됩니다.

./trigger_and_wait_ai_pipeline_sklearn.sh

이 시점에서 환경은 8절의 구성 예제와 운영 가이드에 설명된 배포 시나리오를 실행할 준비가 되었습니다.