SDK依存を外したアクセス設計
AWSは公式ブログで、Amazon SageMaker MLflowへ外部からセキュアにアクセスするためのFlaskベースのプロキシ実装パターンを公開した。最大の特徴は MLflow SDK をクライアント側に組み込まなくても、IAM認証 と URLプリサイニング を使って HTTPS 経由でアクセスできる点にある。
In this post, we demonstrate how to build a secure Flask-based MLflow proxy service that provides HTTPS access to Amazon SageMaker MLflow without requiring the MLflow SDK.
アーキテクチャは ALB・Flaskアプリ・SageMaker MLflow の3コンポーネントで構成される。ALBがHTTPS終端とルーティングを担い、Flaskアプリが認証とリクエストのプリサイニングを処理する形だ。SDKのバージョン依存やSDKを導入できない外部環境という障壁を、プロキシ層に認証ロジックを寄せることで回避している。
移行中の組織に向けた具体的テンプレート
このソリューションは、クラウド移行を進めながら既存のMLワークフローを維持したい組織を想定している。導入は AWS CDK で約40分で完了し、トラッキングサーバー とサーバーレスの2つのデプロイモードに対応する。
他社が同種の課題をどう解くかという観点では、一般にマネージドサービスへの外部アクセスは認証付きプロキシやAPIゲートウェイ層を挟む方式が採られるが、本パターンはMLflow特有のトラッキングAPIに対しIAM認証ベースで統一している点が判断材料になる。コスト面の公開数値はソースに示されていないが、ALBとFlaskアプリという追加の常時稼働コンポーネントを抱える点は運用費の検討対象になる。
落とし穴として、プロキシ層を挟むことでALBとFlaskアプリの可用性・監視・スケーリングという運用責任が増える。CDKで素早く立ち上がる一方、本番運用ではこの追加レイヤーの監視設計を初手で固めておく必要がある。