ARTICLE

閉域ネットワーク環境へのAIアプリデプロイ完全ガイド|Bastion経由VM操作・ACRイメージ管理・3フェーズダウンタイム最小化・5つの落とし穴と対策【2026年版】

2026/9/16 (更新: 2026/9/1)

SHARE

「閉域ネットワーク環境へのAIアプリデプロイ」について、基本的な仕組みから導入手順、実務での活用方法と注意点まで分かりやすく解説します。

閉域

閉域ネットワーク環境へのAIアプリデプロイ完全ガイド|Bastion経由VM操作・ACRイメージ管理・3フェーズダウンタイム最小化・5つの落とし穴と対策【2026年版】

ARTICLE株式会社renue
renue

株式会社renue

2026/9/16 公開2026/9/1 更新

AI導入・DXの悩みをプロに相談してみませんか?

AIやDXに関する悩みがありましたら、お気軽にrenueの無料相談をご利用ください。 renueのAI支援実績、コンサルティングの方針や進め方をご紹介します。

閉域ネットワーク環境へのAIアプリデプロイは「通常のデプロイとは別物」

金融機関、官公庁、製造業の基幹システム——これらの環境では、インターネットに接続できない閉域ネットワークでのデプロイが求められます。通常のCI/CDパイプラインが使えず、Docker Hubからのイメージpullもできず、外部APIへのアクセスも制限されます。

本記事では、Azure VM+Bastion+ACR構成での閉域環境デプロイを、一般的な運用手順の考え方に基づいて解説します。

閉域環境デプロイのアーキテクチャ

開発者のローカルPC
  │
  │ docker build → docker push
  ↓
Azure Container Registry(ACR)
  │
  │ docker pull(VM→ACR間はAzureプライベートネットワーク)
  ↓
Azure VM(閉域ネットワーク内)
  ├ フロントエンド(Webアプリ)
  ├ バックエンド(APIサーバー)
  ├ mysql(port 3306)
  ├ redis(port 6379)
  └ build-runner(ビルド用)
  │
  │ az network bastion tunnel(唯一のアクセス経路)
  ↓
開発者のブラウザ(localhost経由でトンネル接続)

デプロイの3フェーズ設計

フェーズ1:イメージ反映(ダウンタイムなし)

新しいイメージをビルドしてACR経由でVMに届けます。この間、旧コンテナは稼働中のままです。

ステップ実行場所操作
1ローカルイメージビルド(--platform linux/amd64必須)
2ローカルACR認証+push(latest + git SHAタグ)
3VM不要イメージ削除(空き容量10GB以上確保)
4VM新イメージをpull(旧コンテナ稼働中のまま)

フェーズ2:コンテナ切替(ダウンタイム開始→終了)

ステップ操作影響
5前半旧appコンテナを停止・削除FEダウンタイム開始
5後半新コンテナを起動FEダウンタイム終了

事前pullによりダウンタイムは「停止→起動」の数十秒に短縮できます。

フェーズ3:検証(ダウンタイム終了後)

ステップ操作確認事項
6起動確認docker compose psでUp確認、ログにReady in XXXms
7API疎通テストFE(200) / BE(healthy) / FE→BE(200)の3系統
8ブラウザ確認Bastionトンネル経由で画面表示

閉域環境特有の落とし穴と対策

落とし穴1:DNS解決の失敗

VMからAzure OpenAIエンドポイントへのDNS解決が失敗する場合があります。

原因:プライベートリンクが設定されているが、VMのVNetにプライベートDNSゾーンがリンクされていない

暫定対策:VMの/etc/hostsにIPを追記してテスト実施(テスト後に削除)

恒久対策:プライベートDNSゾーンのVNetリンク設定を追加

落とし穴2:ディスク容量不足

旧ACRの不要イメージが蓄積し、新イメージのpullが失敗します。

対策:pull前に不要イメージを削除し、空き容量10GB以上を確認してから実行

落とし穴3:Apple Silicon環境のビルド

M1/M2/M3 Macでビルドしたイメージは、--platform linux/amd64を指定しないとLinux VMで動作しません。pullは成功するが起動時にエラーという、発見しにくい障害になります。

落とし穴4:az vm run-commandの同時実行制限

az vm run-command invoke同時に1つしか実行できない。各ステップは前のコマンドの完了を待ってから実行する必要があります。並列実行するとコマンドが失敗またはキューイングされます。

落とし穴5:環境変数ファイルの管理

環境変数ファイルはVM上で直接管理される構成が一般的です。イメージの差し替えでは変更されませんが、誤って削除すると接続設定が失われる場合があります。

Bastionトンネルの運用

基本操作

# FE確認用トンネル
az network bastion tunnel \
  --name bastion-name \
  --resource-group rg-name \
  --target-resource-id /subscriptions/.../vm-name \
  --resource-port 3000 \
  --port 3000

# BE確認用トンネル(別ターミナル)
az network bastion tunnel \
  ... \
  --resource-port 8000 \
  --port 8000

Bastionトンネルの注意事項

  • トンネルを開いたターミナルは閉じないこと。閉じると接続が切れる
  • FE(3000)とBE(8000)を同時に確認する場合は別ターミナルで2本のトンネルを開く
  • Tunnel is ready, connect on port XXXXと表示されたら、http://localhost:XXXXでアクセス可能

コンテナイメージのタグ戦略

閉域環境では「どのコミットが今動いているか」の追跡性が特に重要です。

GIT_SHA=$(git rev-parse --short HEAD)
docker build --platform linux/amd64 \
  -t registry/app:latest \
  -t registry/app:${GIT_SHA} .

latestに加えてgit SHAタグを付与することで、ロールバック時に「どのバージョンに戻すか」を明確に指定できます。

マイグレーション実行のタイミング

閉域環境でのDBマイグレーションは、コンテナ起動とは分離して手動実行が推奨です。

  1. マイグレーション前に必ずDBバックアップを取得(mysqldump
  2. コンテナ起動完了を確認してからマイグレーション実行(起動直後はDB接続初期化中で失敗する場合がある)
  3. マイグレーション結果を確認してからサービス公開

ロールバック手順

問題発生時のロールバック手順を事前に文書化しておきます。

  1. VMでコンテナを停止
  2. DBバックアップから復元(マイグレーション失敗時のみ)
  3. ローカルで前のcommit SHAからイメージを再ビルド
  4. ACRにpush→VMでpull→コンテナ再作成

まとめ:閉域環境デプロイチェックリスト

フェーズチェック項目
ビルド--platform linux/amd64指定済みか
ビルドlatest + git SHAの二重タグを付与したか
pushACR認証が有効か(docker login
VM準備不要イメージ削除→空き容量10GB以上確認
pull旧コンテナ稼働中にpull実行(ダウンタイム最小化)
切替旧コンテナ停止→新コンテナ起動→旧イメージprune
DBバックアップ取得→マイグレーション→結果確認
検証FE/BE/FE→BEの3系統疎通テスト
検証Bastionトンネル経由のブラウザ確認
管理環境変数ファイルが保全されているか
管理ロールバック手順が文書化されているか

閉域環境デプロイは通常のCI/CDと全く異なるスキルセットが必要です。3フェーズ設計、5つの落とし穴への対策、ロールバック手順の事前準備——この3つを押さえることで、閉域環境でも安全・確実なデプロイが可能になります。

あわせて読みたい

AI活用のご相談はrenueへ

renueは自社開発のAIツールを自社運用する「自社実証型」AIコンサルティングファームです。

→ AIコンサルティングの詳細を見る

関連記事

開発プロセスの改善はrenueにご相談ください

SHARE

FAQ

よくある質問

インターネットに接続できない閉域環境(金融機関・官公庁・製造業の基幹システム等)にAIアプリケーションをデプロイするプロセスです。通常のCI/CDやクラウドデプロイとは異なり、Bastion経由のVM操作やオフラインイメージ転送等の特殊な手順が必要です。

Dockerイメージのインターネット経由pullが不可(プライベートレジストリへの事前転送が必要)、pip/npm等のパッケージマネージャーが外部にアクセスできない(オフラインインストール対応)、SSL証明書の更新が手動、ログの外部送信不可(閉域内での監視体制構築)が主な課題です。

Phase 1(事前準備:新バージョンのイメージを閉域ACRに転送・動作検証)、Phase 2(切り替え:既存コンテナの停止→新コンテナの起動を最短時間で実行)、Phase 3(確認:ヘルスチェック→ロールバック判断の自動化)の3段階でダウンタイムを抑える手法です。

ACRのイメージpullタイムアウト(ネットワーク帯域の制約)、環境変数の設定漏れ(閉域とクラウドで異なる設定値)、DNS解決の失敗(閉域内のDNS設定)、証明書の有効期限切れ(自動更新が効かない)、ログの取得漏れ(外部サービスに送信できない)の5つが代表例です。

主に、プライベートレジストリ/パッケージミラーの整備、依存関係の固定(requirements.lock等)、イメージ転送の自動化スクリプト、デプロイ手順のRunbook化、Bastion/Jump Host経由の操作ログ保存、監視・ログ基盤の閉域内構築、シークレット管理、SSL/CA証明書のライフサイクル管理、AIモデルのバージョン管理と再学習フロー、災害対策、です。閉域環境はクラウドの利便性が使えない分、運用ルールと自動化の徹底度がそのまま信頼性に直結するため、設計と教育の両面で運用品質を担保する仕組みが、長期運用の鍵となります。

AI導入・DXの悩みをプロに相談してみませんか?

AIやDXに関する悩みがありましたら、お気軽にrenueの無料相談をご利用ください。 renueのAI支援実績、コンサルティングの方針や進め方をご紹介します。

関連記事

AI導入・DXの悩みをプロに相談してみませんか?

AIやDXに関する悩みがありましたら、お気軽にrenueの無料相談をご利用ください。renueのAI支援実績、コンサルティングの方針や進め方をご紹介します。

無料資料をダウンロード