DevPod は、Function Compute (FC) が提供するオンライン統合開発環境 (IDE) です。ネイティブの Visual Studio Code (VS Code) 環境と同様のクラウドベースの開発体験を提供します。複雑なローカル環境を構成することなく、クラウドで直接コードの記述、デバッグ、デプロイができます。このトピックでは、DevPod の特徴と、Function Compute コンソールでの DevPod の設定および使用方法について説明します。
概要と利点
統合クラウド開発環境として、DevPod は以下の主要な利点を提供します:
すぐに使用可能:ワンクリックでクラウド IDE を起動します。ローカルでの設定は不要です。
VS Code のような体験:使い慣れたインターフェイスとユーザーエクスペリエンスにより、学習コストを削減します。
オンラインコラボレーション:チームメンバーが統一された環境で開発とデバッグを行えます。
一貫した環境:開発、テスト、本番環境の一貫性を保証します。
永続ストレージ:コアデータをインスタンスから独立して保存し、データの安全性と信頼性を確保します。
イメージのビルドと再利用:開発環境を固定化し、迅速なデプロイメントと簡単な共有を実現します。
制限事項
DevPod を使用する際は、次の制限事項にご注意ください:
ランタイムサポート:DevPod は現在、カスタムイメージランタイムのみをサポートしています。
オペレーティングシステム:glibc 2.28 以降を搭載した AMD64 ベースの Linux システムが必要です。推奨されるベースイメージには、
debian:10、ubuntu:20.04、centos:8、またはそれ以降のバージョンが含まれます。alpineイメージはサポートされていません。プリインストール済みのツール:
curlコマンドがプリインストールされている必要があります。ユーザー権限:デフォルトのユーザーは
rootです。GPU 互換性:Function Compute の GPU はドライバーバージョン 570.133.20 を使用しており、これは CUDA ユーザーモードドライバーバージョン 12.8 に対応します。最適な互換性を得るために、CUDA Toolkit 11.8 以降のバージョンを使用することを推奨します。バージョンは、プラットフォームが提供する CUDA ユーザーモードドライバーのバージョンを超えてはなりません。詳細については、「GPU ドライバーバージョンが 550.54.15 から 570.133.20 にアップグレード」をご参照ください。
コンソールでの DevPod の設定
前提条件
関数が作成されていること。詳細については、「関数の作成」をご参照ください。
手順
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、リージョンを選択します。[関数] ページで、対象の関数をクリックします。
関数詳細ページで [コード] タブをクリックし、次に [DevPod の作成] をクリックします。
DevPod インターフェイスで、必要に応じて関数コードの記述とテスト、サードパーティの依存関係のインストールができます。
永続ストレージ
すべての DevPod インスタンスは、NAS ディレクトリを /mnt/<function_name> にマウントします。このディレクトリ内のデータは、インスタンスが破棄された後も永続化されます。これにより、DevPod は、特に AI 開発において、モデルの重みやトレーニングデータなどの重要なファイルを保存するのに最適です。/mnt パス以外のファイルはローカルストレージに保存され、インスタンスが再起動すると失われる可能性があります。
DevPod は、デフォルトで以下の環境変数を有効にします:
HF_HOME=/mnt/<function_name>/hf
MODELSCOPE_CACHE=/mnt/<function_name>/modelscope
OLLAMA_MODELS=/mnt/<function_name>/ollama永続ストレージには以下の特徴があります:
作成プロセス中にイメージには含まれません。
DevPod が削除されても内容は保持されます。
この機能は、イメージサイズを抑制するために、大規模なモデルファイルを保存するのに適しています。
HTTP サービスのリモートデバッグ
DevPod を使用すると、ローカルで実行されている HTTP サービスをプロキシ経由で公開できます。この機能は、リモートデバッグやフロントエンドの統合テストに役立ちます。
手順
DevPod ターミナルで HTTP サービスを開始します。例:
python -m http.server 9000コンソールで [開発環境へのアクセス] をクリックして、プロキシアドレスを取得します。アドレスは次のフォーマットを使用します:
https://<devpod-id>.cn-<region>.ide.fc.aliyun.com/proxy/9000/このアドレスでサービスにアクセスします:
curl https://<devpod-id>.cn-<region>.ide.fc.aliyun.com/proxy/9000/
注意事項
React や Vue で構築されたような、絶対パスに依存するフロントエンドのシングルページアプリケーション (SPA) では、静的リソースの読み込みに失敗することがあります。この問題は、プロキシパスのプレフィックス /proxy/9000/ が原因で発生します。
イメージのビルドと保存
イメージビルドと ACR 連携
現在の DevPod インスタンスのランタイム環境全体 (コード、依存関係、構成を含む) を Docker イメージとしてパッケージ化できます。作成したイメージは、Alibaba Cloud Container Registry (ACR) にプッシュして保管し、再利用できます。
制限事項:
イメージのビルドは、実行中状態の DevPod インスタンスでのみ実行できます。
ACR インスタンスは、DevPod インスタンスと同じリージョンにある必要があります。ACR 個人版はリージョンをまたいだ作成をサポートしていますが、ネットワーク遅延やプッシュの失敗を避けるため、同じリージョン内のインスタンスを使用することを強く推奨します。
ACR エディションの選択
イメージを保存する際、ACR 個人版または Enterprise Edition を選択できます。
特徴 | ACR 個人版 | ACR Enterprise Edition | 推奨シナリオ |
料金 | 無料 | インスタンスタイプによる課金 | 個人版は個人の学習や機能検証に適しています。Enterprise Edition は本番環境に適しています。 |
ネットワークアクセス | パブリックネットワーク | VPC 内部ネットワーク | Enterprise Edition は、内部ネットワークを通じてより高いセキュリティと安定したネットワークアクセスを提供します。 |
パフォーマンス | パブリック帯域幅による制限 | 高速な内部ネットワーク転送 | Enterprise Edition は、大規模なイメージ (例:10 GiB 超) のプッシュまたはプル時に、より高速で高い成功率を提供します。 |
ACR インスタンスの準備
個人版:ACR コンソールに移動し、DevPod と同じリージョンにアクティブな個人版インスタンスがあることを確認します。
Enterprise Edition:ACR コンソールに移動します。DevPod インスタンスと同じ VPC に Enterprise Edition インスタンス、名前空間、およびイメージリポジトリを作成または確認します。
イメージのビルド
コンソールで [イメージのエクスポート] をクリックします。
ACR タイプを個人版または Enterprise Edition に設定し、以下のパラメーターを設定します:
設定項目
説明
[ACR リージョン]
作成した ACR インスタンスが配置されているリージョンを選択します (DevPod のリージョンと同じである必要があります)。
ACR 名前空間
作成した名前空間から選択します。
ACR イメージリポジトリ
ターゲットリポジトリを選択します (選択した名前空間に属している必要があります)。
[イメージ名 (バージョン)]
イメージタグをカスタマイズします。例:
v1.0またはlatest。カスタム除外パス
機密データの漏洩を防いだり、イメージサイズを削減したりするために、パッケージ化しないディレクトリ (例:
/data/cache) を指定できます。システムは自動的に/.function_ai、/usr/local/share/jupyter/labextensionsを除外します。注:NAS マウントディレクトリ (
/mnt/<name>) 内のコンテンツはイメージにパッケージ化されません。[OK] をクリックし、イメージのビルドとプッシュが完了するのを待ちます。
課金
DevPod は、ご利用のアカウントにデプロイされる FC 関数であり、名前にはプレフィックス _DEV_POD_ が付きます。したがって、以下の項目に対して課金されます:
Function Compute の料金:関数の呼び出しとリソース使用量に対する料金。詳細については、「課金の概要」をご参照ください。
NAS ファイルストレージの料金:マウントされた NAS ファイルシステムに対する料金。詳細については、「汎用型 NAS ファイルシステムの課金」をご参照ください。
さらに、イメージビルド機能は、ビルドプロセスを支援するためにアカウント内に FC 関数を作成します。対応する関数の呼び出しに対して課金されます。
DevPod の使用が終了したら、速やかに削除し、NAS などの関連リソースを手動でクリーンアップして、不要な料金が発生しないようにしてください。
DevPod と WebIDE の比較
比較項目 | WebIDE | DevPod |
サポートされるランタイム | Python、Node.js、PHP、およびカスタムランタイム | カスタムイメージランタイムのみ |
インターフェイスエリア | 4つのエリア:リソースマネージャー、ファイルエディター、関数操作、コマンドラインターミナル | 3つのエリア:リソースマネージャー、コマンドラインターミナル、ファイルエディター |
ストレージ制限 | ユーザーあたり 5 GB | 変更されたファイルが 100,000 未満、合計サイズが 5 GB 未満 |
永続ストレージ | 専用版は NAS と OSS をサポート |
|
VPC アクセス | サーバーレス版ではサポートされていません。専用版でサポートされています。 | 関数の設定に基づきます |
イメージビルド | サポートされていません | ACR (個人版または Enterprise Edition) へのイメージのエクスポートをサポート |
リモートデバッグ | サポートされていません | HTTP サービスプロキシを介したデバッグをサポート |
AI シナリオのサポート | 指定なし |
|
エディションの選択 | サーバーレス版または専用版 | 個別のエディションはありません。すべてのインスタンスが専用です。 |
主な用途 | 軽量なオンラインでのコード編集、デバッグ、依存関係のパッケージング | コンテナ化された開発、イメージビルド、AI モデル開発 |
課金方法 | サーバーレス版は無料です。専用版はインスタンスごとに課金されます。 | FC 関数の使用量と NAS ストレージのコストに基づいて課金されます |
まとめ:
WebIDE は、関数コードを迅速に記述およびデバッグするのに適した軽量なオンラインコードエディターです。複数のランタイムをサポートし、無料のサーバーレス版を提供しており、クラウドベースの VS Code Lite に似ています。
DevPod は、カスタムイメージランタイムに焦点を当てた強力なコンテナ化されたクラウド開発環境であり、永続ストレージ、イメージビルド、リモートデバッグなどの高度な機能を提供します。DevPod は、AI モデル開発や複雑な環境構成を必要とするシナリオに最適です。完全なクラウドコンテナ、VS Code 環境、およびイメージビルドツールを兼ね備えています。