AWS(Amazon Web Services)가 최근 Amazon SageMaker MLflow에 HTTPS로 접근할 수 있는 REST API 프록시 구축 방법을 공개했다. Flask 기반의 프록시 서버를 통해 MLflow SDK(소프트웨어 개발 키트) 없이도 외부 시스템과 연동할 수 있게 한 것이 핵심이다. 기업의 네트워크 제한이나 보안 정책으로 SDK 설치가 불가능했던 환경에서도 ML 실험 추적과 모델 관리가 가능해졌다.
ALB와 Flask로 구성된 3단계 프록시 구조
기업 내부 보안 정책으로 인해 직접적인 소프트웨어 개발 키트(SDK) 사용이 제한된 환경에서, 인공지능 모델 관리 도구인 MLflow를 활용하려는 팀의 고민은 깊어질 수밖에 없다. AWS가 최근 공개한 솔루션은 이러한 인프라 제약을 우회하면서도 관리형 서비스인 Amazon SageMaker MLflow(AWS의 관리형 머신러닝 실험 추적 및 모델 관리 서비스)를 안전하게 연동하는 통로를 제공한다. 핵심은 외부 요청을 받아 AWS 인증 API로 변환하는 세 가지 컴포넌트의 유기적인 결합이다.
첫 번째 진입점은 Application Load Balancer(ALB)다. ALB는 외부 트래픽을 받아들이는 관문 역할을 수행하며, 요청을 적절한 경로로 분배하는 라우팅 기능을 전담한다. 이 과정에서 트래픽의 흐름을 제어하고 시스템의 가용성을 확보한다. 두 번째는 Flask MLflow Proxy Service다. 파이썬 기반의 이 서버는 외부에서 들어온 HTTPS 요청을 받아 SageMaker MLflow가 이해할 수 있는 인증된 AWS API 호출로 변환한다. 마지막으로 Amazon SageMaker MLflow는 실제 머신러닝 실험과 모델의 생애 주기를 추적하고 관리하는 핵심 엔진으로 작동한다.
이 구조를 구축하는 데 소요되는 시간은 약 40분이다. 시스템 운영 환경은 Ubuntu 기반의 리눅스 배포판을 권장하며, 원활한 구동을 위해 Python 3.12 버전 이상과 패키지 관리 도구인 PIP3, 그리고 독립적인 실행 환경을 위한 Virtualenv 설치가 필수적이다. 이 설계는 기업이 기존에 보유한 레거시 시스템의 워크플로우를 유지하면서 클라우드 네이티브 환경으로 전환할 수 있도록 돕는다. 개발자는 복잡한 SDK 설정 없이도 표준화된 HTTPS 요청만으로 모델 관리 기능을 호출할 수 있다.
HTTPS 요청을 AWS SigV4 인증으로 변환하는 과정
외부 클라이언트가 AWS 서비스를 호출하려면 보통 전용 SDK를 설치하고 복잡한 인증 서명 과정을 거쳐야 한다. 이번 구조에서는 이 과정이 표준 HTTPS 요청 하나로 단순화된다. 요청은 먼저 ALB(Application Load Balancer, 애플리케이션 부하 분산기)에 도달한다. ALB는 모든 유입 트래픽의 단일 진입점 역할을 수행하며 수신된 요청을 Flask(플라스크, 파이썬 웹 프레임워크) 기반의 프록시 서비스로 전달한다. 클라이언트는 AWS 전용 라이브러리를 설치하지 않고도 일반적인 웹 요청만으로 내부 시스템에 접근한다. 인프라 진입 단계에서 트래픽 제어와 라우팅을 분리해 외부 노출 면적을 최소화했다.
Flask 프록시 서비스는 수신된 표준 HTTPS 요청을 AWS SigV4(AWS API 서명 버전 4) 인증이 포함된 요청으로 변환하는 핵심 기능을 수행한다. SigV4는 AWS API 요청의 무결성을 검증하고 요청자를 인증하는 표준 서명 방식이다. 프록시는 클라이언트로부터 받은 요청의 페이로드와 헤더를 분석해 정규 요청(Canonical Request)을 생성한다. 이후 AWS 자격 증명을 사용해 디지털 서명을 생성하고 이를 HTTP 헤더에 삽입한다. 이렇게 변환된 요청은 SageMaker MLflow(세이지메이커 ML플로우, 머신러닝 라이프사이클 관리 서비스)의 REST 엔드포인트로 전송된다. 개별 클라이언트가 인증 키를 직접 관리하거나 복잡한 서명 로직을 개별적으로 구현할 필요가 없다. 인증 권한 관리를 프록시 계층으로 집중시켜 보안 관리 포인트를 단일화했다.
[Figure 1: Architecture diagram showing the Flask proxy service integration with Amazon SageMaker MLflow]
SageMaker MLflow는 프록시가 전달한 SigV4 인증 요청을 검증하고 요청된 작업을 처리한다. 처리 결과인 응답 데이터는 다시 Flask 프록시 서비스로 반환된다. 프록시는 SageMaker MLflow로부터 받은 HTTP 상태 코드와 본문 내용을 수신하여 최초 요청을 보낸 클라이언트에게 다시 라우팅한다. 전체 데이터 흐름은 클라이언트에서 ALB, 프록시, SageMaker MLflow를 거쳐 다시 역순으로 돌아오는 구조를 가진다. 외부 시스템은 내부의 복잡한 AWS 인증 메커니즘을 알 필요 없이 표준 REST API 인터페이스만 사용한다. 이는 기업 내 보안 정책상 SDK 설치가 엄격히 금지된 환경이나 기존 레거시 시스템에서도 클라우드 네이티브 서비스를 즉시 통합할 수 있는 기술적 경로를 제공한다.
SDK 의존성 제거가 가져온 연동 제약 해소
기술적 로드맵을 거침없이 설명하던 엔지니어가 유독 보안 정책과 레거시 시스템 연동 문제를 묻는 대목에서 답변을 잠시 멈췄다. 기업이 머신러닝(ML) 실험 관리 도구인 MLflow를 도입할 때 가장 먼저 부딪히는 벽은 전용 SDK(소프트웨어 개발 키트) 설치 여부다. 기존 방식은 개발 환경 내부에 MLflow SDK를 반드시 설치해야만 서버와 통신할 수 있었다. 그러나 엄격한 보안 정책을 고수하는 엔터프라이즈 환경이나 네트워크 접근이 제한된 레거시 시스템에서는 외부 라이브러리 설치 자체가 불가능하거나 승인 절차에 수개월이 소요되는 경우가 비일비재하다. 이러한 제약은 클라우드 네이티브 서비스로의 전환을 가로막는 실질적인 병목 지점으로 작용해 왔다.
이번에 제시된 프록시 방식은 이러한 SDK 의존성을 완전히 제거하는 데 초점을 맞춘다. 핵심은 표준 HTTPS 기반의 REST API를 활용하는 우회로를 만드는 것이다. 파이썬 기반의 플라스크(Flask) 프록시 서비스를 중간에 배치하면, 클라이언트는 전용 SDK 없이도 표준 웹 요청만으로 아마존 세이지메이커(Amazon SageMaker) MLflow와 데이터를 주고받을 수 있다. 이 구조에서 프록시 서비스는 외부의 일반적인 HTTPS 요청을 수신한 뒤, 이를 아마존 세이지메이커가 인식할 수 있는 인증된 AWS API 호출로 변환하여 전달하는 중계자 역할을 수행한다. 결과적으로 개발자는 인프라의 보안 정책을 수정할 필요 없이 기존의 워크플로우를 그대로 유지하면서 클라우드 관리형 ML 서비스의 기능을 온전히 활용하게 된다.
이러한 설계는 엔터프라이즈 인프라의 안정성을 저해하지 않으면서도 클라우드 네이티브 서비스 채택을 가능하게 하는 유연성을 제공한다. 애플리케이션 로드 밸런서(ALB)가 상단에서 트래픽을 라우팅하고, 그 아래에서 프록시 서비스가 인증과 요청 변환을 처리하는 다층 구조를 갖춘 덕분이다. 기존 시스템은 마치 로컬 서버와 통신하듯 표준 API를 호출할 뿐이지만, 내부적으로는 AWS의 보안 인증 체계가 적용된 안전한 통신이 이루어진다. 이는 특정 도구의 설치를 강제하던 과거의 경직된 연동 방식에서 벗어나, 시스템 간의 결합도를 낮추면서도 확장성을 확보하는 방향으로의 전환을 보여준다. 기업은 이제 인프라의 제약 조건과 최신 ML 도구 도입 사이에서 선택을 강요받지 않아도 되는 환경을 갖추게 된 셈이다.
서버리스 배포 옵션과 API 제어 권한
인프라 구축에 며칠이 걸리던 작업이 명령어 한 줄로 압축됐다. 개발자는 배포 목적에 따라 두 가지 옵션 중 하나를 선택한다. 트래킹 서버 기반 배포를 위해서는 아래 명령어를 실행한다.
./deploy.sh -m tracking-server관리 부담을 최소화하려는 팀은 서버리스 앱 옵션을 선택해 배포한다.
./deploy.sh -m serverless-app전체 배포 과정은 약 40분이 소요된다. 이 스크립트는 우분투 기반 시스템에서 파이썬 3.12와 PIP3, 가상환경을 통해 작동한다. 인프라 설정에 소요되던 물리적 시간을 제거해 모델 실험 주기를 단축하는 결과로 이어진다.
운영자는 시스템 저널을 통해 프록시 서비스의 작동 상태를 실시간으로 확인한다.
sudo journalctl -u mlflow-proxy제어 방식은 더 직관적이다. SDK 설치 없이 표준 curl 명령어로 ALB(Application Load Balancer, 애플리케이션 로드 밸런서)를 통해 REST API를 호출한다.
curl -X POST ...제공된 curl 명령어는 트래킹 서버와 서버리스 모드 모두에서 동일하게 작동한다. 프록시 서비스가 내부적인 차이점을 투명하게 처리하기 때문이다. 제어권이 SDK라는 특정 라이브러리에서 표준 프로토콜로 이동하며 기존 레거시 시스템과의 통합 비용이 낮아졌다.
실제 서비스 적용 단계에서는 트래픽 필터링과 권한 제어가 필수적이다. AWS WAF(웹 애플리케이션 방화벽)를 적용해 일반적인 웹 취약점 공격을 차단한다. 모든 통신은 HTTPS 강제 적용을 통해 암호화한다. 권한 관리는 IAM(Identity and Access Management, ID 및 액세스 관리) 역할 기반으로 제어해 최소 권한 원칙을 준수한다. 이는 Flask 기반 프록시 서버가 단순한 통로를 넘어 기업 보안 표준을 충족하는 게이트웨이 역할을 수행하게 만든다. 보안 설정의 자동화는 클라우드 전환 과정에서 발생하는 인프라 충돌 리스크를 낮춘다. 기업은 기존의 보안 패턴을 유지하면서 클라우드 네이티브 서비스의 이점을 동시에 확보한다.
망 분리 환경의 한국 AI 실무자를 위한 시사점
같은 망 분리 환경을 두고도 기업마다 대응 방식은 정반대로 갈렸다. 보안을 이유로 외부 라이브러리 설치를 전면 차단하는 보수적인 금융·공공 기관은 그동안 표준화된 MLOps(머신러닝 운영) 도구 도입에 난항을 겪어왔다. 외부 SDK(소프트웨어 개발 키트) 사용이 불가능한 폐쇄망 환경에서는 기존의 클라우드 네이티브 도구들이 제공하는 자동화 기능을 활용하기 어렵기 때문이다. 이번에 공개된 Flask(파이썬 기반 웹 프레임워크) 기반의 MLflow(머신러닝 실험 추적 및 모델 관리 도구) 프록시 서비스는 이러한 기술적 고립을 타개할 실무적 대안을 제시한다.
이 아키텍처는 AWS(아마존 웹 서비스)가 제안하는 현대화 전략인 기존 워크로드 보존 및 클라우드 전환 모델을 충실히 따른다. 핵심은 SDK를 직접 설치하는 대신 표준 REST API 인터페이스를 통해 SageMaker(AWS의 머신러닝 플랫폼) MLflow와 통신하는 구조다. 기업 내부 시스템은 HTTPS 요청만으로 MLflow의 기능을 호출할 수 있어, 폐쇄망 내부의 보안 정책을 위반하지 않고도 클라우드 기반의 관리형 서비스를 연동할 수 있다. 실무자는 복잡한 네트워크 환경 변경 없이 기존 워크플로우를 유지하며 MLOps 환경을 구축하는 효과를 얻는다.
구체적인 구현 방식은 ALB(애플리케이션 로드 밸런서)를 상단에 배치하여 외부 트래픽을 제어하고, 내부의 Flask 프록시 서비스가 이를 인증된 AWS API 호출로 변환하는 형태다. 이 과정에서 프록시 서비스는 표준 HTTPS 요청을 수신하여 SageMaker MLflow가 인식할 수 있는 인증 프로토콜로 변환한다. 이는 SDK 설치가 원천 봉쇄된 환경에서 클라우드 서비스의 유연성을 확보하는 기술적 가교 역할을 한다. 실제 배포 시에는 다음과 같은 스크립트를 통해 인프라를 구성할 수 있다.
bash
트래픽 서버 기반 배포 명령
cdk deploy MlflowTrackingServerStack
서버리스 앱 기반 배포 명령
cdk deploy MlflowServerlessAppStack
이러한 접근은 인프라 전환 과정에서 발생하는 개발팀의 저항을 최소화한다. 기존 시스템의 소스 코드를 대대적으로 수정할 필요 없이 API 엔드포인트 설정만으로 클라우드 네이티브 환경으로 편입될 수 있기 때문이다. 특히 보안 통제가 엄격한 국내 금융권의 경우, 외부 라이브러리 반입 심사라는 고질적인 병목 현상을 우회할 수 있다는 점에서 실무적 효용성이 높다. 인프라 현대화가 단순히 시스템을 옮기는 작업이 아니라, 기존의 제약 조건을 유지하면서도 관리 효율을 높이는 최적화 과정임을 보여주는 사례다.
AWS는 SageMaker MLflow에서 SDK 의존성을 제거했다. 이제 REST API 프록시를 통해 어떤 개발 환경에서도 플랫폼 연결이 가능하다. 개발자는 특정 라이브러리를 설치하거나 코드를 수정하지 않고도 기존 툴체인을 유지하며 AWS 생태계로 진입할 수 있다. 기술적 마찰을 없애 데이터와 모델의 흐름을 AWS로 빠르게 끌어들이려는 계산이다.
인프라 종속성을 낮추는 유연함이 오히려 더 강력한 플랫폼 락인을 만든다. MLOps 시장의 주도권은 이제 개별 기능의 고도화가 아니라 외부 도구와의 연결성에서 결정된다.




