Data Science Workshop (DSW) は、インスタンス内で実行されるモデル API や Web UI などのサービスをパブリックネットワークに公開できます。これにより、ブラウザから直接サービスにアクセスしたり、共同作業者と共有してテストしたりできます。この機能は NAT Gateway と Elastic IP Address (EIP) のリソースを使用して構築されており、開発およびテスト用途を目的としています。
注意事項
別途料金が発生します:パブリックネットワークアクセスには NAT Gateway と Elastic IP Address (EIP) が必要であり、両方のリソースは別途課金されます。
サポートされるインスタンスタイプ:インスタンスタイプが
ecs.ebmで始まらないパブリックリソースグループ内のインスタンス、および Lingjun AI 計算インスタンスに対してパブリックネットワークアクセスを設定できます。各インスタンスは最大 5 つのカスタムサービスをサポートします。DSW インスタンスが停止するとカスタムサービスも停止:DSW インスタンスが停止すると、その内部のサービスとパブリックネットワークアクセスは利用できなくなります。
本番環境では PAI-EAS を使用:安定した高可用性サービスやエラスティックスケーリングをサポートするには、モデルを PAI-EAS (Elastic Algorithm Service) にデプロイしてください。
仕組み
DSW インスタンス内のサービス (たとえば、ポート 9000 でリッスンしている API) をパブリックネットワークから到達可能にするために、以下のリソースが使用されます。
EIP:固定のパブリック IP アドレス (
121.40.**.**) を提供します。これはパブリックネットワークアクセスのエントリーポイントです。NAT Gateway:仮想プライベートクラウド (VPC) 内に存在し、パブリックネットワークからのリクエスト (
EIP:ポート) をプライベートネットワーク上の DSW インスタンス (プライベート IP アドレス:ポート) にマッピングします。セキュリティグループ:ファイアウォールのように DSW インスタンスへのトラフィックを制御します。サービスがリッスンするポート (例:
9000) でのパブリックトラフィックを許可するルールを明示的に追加する必要があります。この手順は、アクセスを成功させるために不可欠です。
コアフロー:外部ユーザー (ブラウザ/ツール) -> EIP:ポート -> NAT Gateway -> vSwitch -> セキュリティグループルールチェック -> DSW インスタンスのプライベート IP アドレス:ポート -> サービス
課金
NAT Gateway と EIP の料金は、リソースが作成されるとすぐに発生し始めます。
DSW インスタンスが停止していても、NAT Gateway と EIP が削除されない限り、料金は発生し続けます。
DSW インスタンス自体は、その状態に基づいて課金されます。従量課金のインスタンスは、停止すると料金が発生しなくなります。
パブリックネットワークアクセスの設定
DSW インスタンス作成時のパブリックネットワークアクセスの設定
DSW インスタンスを作成し、以下の主要なネットワークパラメーターを設定します。
ネットワーク情報 セクションで、VPC とセキュリティグループを選択します。これらのリソースを作成するには、このセクションの手順に従ってください。詳細については、「VPC と vSwitch の作成」および「セキュリティグループの作成」をご参照ください。VPC とセキュリティグループは、DSW インスタンスと同じリージョンにある必要があります。
VPC、vSwitch、およびセキュリティグループを作成する手順
DSW 設定ページで、[Create VPC] をクリックします。

VPC 名、IPv4 CIDR ブロック、および vSwitch 情報を設定します。他のパラメーターはデフォルト値のままにし、[OK] をクリックして VPC と vSwitch を作成します。

DSW 設定ページに戻ります。[VPC Settings] で、作成したばかりの VPC を選択します。
[Create Security Group] をクリックします。デフォルトのパラメーターを維持し、[Create] をクリックします。その後、DSW 設定ページに戻り、[Security Group ID] を作成したばかりのセキュリティグループに設定します。

セキュリティグループがポート 22 でのインバウンドアクセスを許可していることを確認してください。

サービスアクセスとポート設定 で 追加 をクリックします。NAT Gateway と EIP を作成するには、次の手順をご参照ください。NAT Gateway と EIP は、DSW インスタンスと同じリージョンにある必要があります。
サービス名 と[リッスンポート] (例:
9000) を入力します。パブリックネットワークアクセス を選択し、パブリックネットワークアクセスポート (例:
9000) を設定します。[DNAT+EIP] をクリックし、NAT Gateway と Elastic IP Address を選択します。
NAT Gateway と EIP を作成する手順
[Create NAT Gateway] をクリックします。

NAT Gateway 作成ページで、パラメーターを設定するか、デフォルト値を維持し、[Create EIP] をクリックします。

EIP 作成ページで、パラメーターを設定するか、デフォルト値を維持し、[Buy Now] をクリックします。
NAT Gateway 作成ページに戻ります。[Elastic IP Address Instance] で、作成したばかりの EIP を選択し、[Buy Now] をクリックして NAT Gateway を作成します。
さらに、代わりに Network Load Balancer (NLB) を使用することもできます。NLB を作成する際に、[Instance Network Type] を [Public] に設定し、DSW インスタンスと同じ VPC を選択します。詳細については、「Network Load Balancer」をご参照ください。
説明複数の DSW インスタンスが同じ DNAT エントリと EIP (または NLB) を共有する場合、パブリックアクセスには異なるポートを使用してください。
選択したセキュリティグループに、リスナーポートに対するインバウンドルールを追加します。主要なパラメーターは次のとおりです。詳細については、「セキュリティグループルールの追加」をご参照ください。
承認ポリシー: Allow
[Protocol Type]:サービスが使用するプロトコル (例:
TCP) を選択します。[Port Range]:設定したリスナーポート (例:
9000/9000) を入力します。ソース:
0.0.0.0/0(すべてのパブリック IP アドレスからのアクセスを許可。テスト専用) または、必要に応じた制限付き IP 範囲。本番環境では、ソース IP アドレスを厳密に制限してください。ルールが追加されると、セキュリティグループの [inbound] ルールリストに、プロトコルが [Custom TCP]、ポート範囲が
9000/9000、ソースが0.0.0.0/0のルールが表示されます。
既存の DSW インスタンスに対するパブリックネットワークアクセスの設定
既存の DSW インスタンスの場合、以下のいずれかの方法でパブリックネットワークアクセスの設定を変更できます。
注意:VPC や NAT Gateway などのリソースを追加または変更するには、設定の変更 を使用してからインスタンスを再起動する必要があります。
インスタンス詳細ページでの設定
DSW インスタンスリストページで、インスタンス名をクリックして詳細ページに移動し、パブリックネットワークアクセスの設定を変更します。
詳細ページの [Access Configurations] セクションで、[Custom Service] の行で、[Modify Configuration] をクリックしてパブリックネットワークアクセスを設定します。設定中にポートを開く必要がある場合は、[Network Configuration] セクションから [Security Group ID] (例:sg-bp1g37d4lmajq...) を取得し、セキュリティグループに移動して対応するルールを追加します。
DSW インスタンス内での設定
DSW 開発環境で、ページ上部の 設定の変更 をクリックしてカスタムサービスを変更します。
左側メニューで、[Access Configurations] をクリックします。カスタムサービスセクションには、設定済みのサービス (例:gradio という名前でリスナーポートが 9000 のサービス) とそのパブリックアクセス URL および設定ステータスが表示されます。[Modify Configuration] をクリックしてカスタムサービスを編集します。
左側メニューで、[Network] をクリックします。右側のネットワーク設定情報で、[Security Group ID] (例:sg-bp1g37d4lmajugsicmz2) を確認し、セキュリティグループのルール設定のためにメモしておきます。
接続のテスト
DSW Terminal で、次のコマンドを実行して Python の組み込み HTTP サーバーを起動します。
# テストコンテンツを含む HTML ファイルを作成 echo 'Hello, World!' > index.html # Python の組み込み HTTP サーバーを起動 (ポート 9000 でリッスン) python -m http.server 9000 --bind 0.0.0.0インスタンス詳細ページで、アクセス設定 を表示してアクセス URL を取得します。
[Access Configurations] セクションのテーブルには、[VPC Access] と [Public Access] の 2 つのアドレス情報列があります。設定ステータスが [Ready] の場合、対応するアクセス URL が利用可能です。
パブリックネットワークアクセスの場合、パブリックアクセス URL
121.40.**.**:9000をコピーしてブラウザで開きます。Hello, World!が返された場合、サービスはパブリックネットワーク経由でアクセス可能です。
本番運用時の注意点
開発およびテスト専用:DSW のパブリックネットワークアクセス機能は、一時的なテストおよび共同デバッグを目的としています。
本番サービスは PAI-EAS にデプロイ:本番環境で使用する推論サービスは、PAI-EAS にデプロイしてください。PAI-EAS は以下の機能を提供します。
高可用性と負荷分散。
トラフィックの変動に対応するための自動エラスティックスケーリング。
包括的なモニタリングとアラート、バージョン管理、およびカナリアリリース。
最適化されたパブリックネットワークアクセスと課金モデル。詳細については、「PAI-EAS」をご参照ください。
コストの削減:
よくある質問
Q:パブリックネットワークアクセスを設定しましたが、ブラウザからのアクセスや外部接続に失敗します (「This site can't be reached」、「接続が拒否されました」、またはタイムアウト)。どうすればよいですか?
ステップ 1:セキュリティグループのルールを確認する (最も一般的な原因)
セキュリティグループにインバウンドルールが追加されていることを確認します。
ルールの [Port Range] に、設定したポート (例:
9000) が含まれていることを確認します。ルールのソースに、ご自身のパブリック IP アドレスまたは
0.0.0.0/0が含まれていることを確認します。ルールの [Protocol Type] (TCP/UDP) が正しいことを確認します。
ステップ 2:サービスが実行され、正しいポートでリッスンしていることを確認する
DSW インスタンスの Terminal で
netstat -tunlp | grep <ポート>(例:netstat -tunlp | grep 9000) を実行し、プロセスがそのポートでリッスンしているかどうかを確認します。アプリケーションサービスプロセスが起動し、設定されたポートでリッスンしていることを確認します。
ステップ 3:NAT Gateway と EIP のステータスを確認する
ステップ 4:ローカルでテストする:DSW インスタンス内で
curl http://localhost:<ポート>またはcurl http://<インスタンスのプライベート IP>:<ポート>を実行し、サービスが応答するかどうかを確認します。ステップ 5:ネットワーク診断ツールを使用する:
Alibaba Cloud VPC は、パスの問題のトラブルシューティングに役立つ Network Intelligence Service (NIS) を提供しています (NIS は事前にアクティブ化する必要があります)。
DSW インスタンス内で
telnet <EIP> <ポート>を実行してポートの接続性をテストします (telnetを事前にインストールしてください)。
Q:Web UI に「disconnected (1006): no reason」と表示された場合はどうすればよいですか?
このメッセージは、ブラウザとインスタンス内のサービスとの間の WebSocket 接続が予期せず切断されたことを示します。まず DSW インスタンス自体が正常に実行されていることを確認し、次にパブリックネットワークアクセスパスのトラブルシューティングを行ってください。
ステップ 1:DSW インスタンスの状態を確認する
Platform for AI (PAI) コンソールの DSW インスタンスリストページで、対象のインスタンスを見つけ、その状態が [Running] であることを確認します。
ステップ 2:異常なインスタンスを再起動する
インスタンスが [Running] 以外の状態 (例:[Stopped] または [Failed]) である場合、[Actions] 列の [Start] をクリックするか、DSW の
StartInstanceAPI を呼び出してインスタンスを起動します。インスタンスが [Running] 状態に戻った後、Web UI を再度開いてアクセスを復元します。
ステップ 3:インスタンスの状態は正常だがエラーが続く場合は、パブリックネットワークアクセスパスのトラブルシューティングを行う:前の質問のトラブルシューティング手順に従ってください。セキュリティグループのインバウンドルール、サービスが設定されたポートでリッスンしているか、NAT Gateway と EIP のステータスを順に確認します。
DSW インスタンス内で ps aux | grep gateway を実行してゲートウェイプロセスを検索したり再起動したりしないでください。DSW ゲートウェイは PAI のプラットフォーム側サービスであり (dsw-gateway-<region>.data.aliyun.com のようなプラットフォームドメイン名に対応)、DSW インスタンス内では実行されません。そのため、インスタンス内でプロセスを見つけたり、インスタンス内から再起動したりすることはできません。supervisord によって管理される DSW インスタンス内のプロセスには、dsw-agent、dsw-manager、jupyter-lab、web-terminal があり、それぞれポート 8888、8887、8088、8090 でリッスンします。
Q:DSW を停止した後も、パブリックネットワークアクセスの設定について、課金は継続しますか?
はい。DSW インスタンスを停止すると、インスタンス自体 (従量課金) は課金されなくなります。しかし、関連付けられた NAT Gateway と EIP は、削除されない限り独立して課金され続けます。コストを節約するために、手動で削除してください。
Q:1つの EIP で複数のポートをマッピングできますか?
はい。同じ DSW インスタンスに設定された複数のサービスポート (最大 5 つ) は、すべて同じ EIP と NAT Gateway を通じてアクセス用にマッピングされます。各サービスにアクセスするには EIP:<ポート> を使用します。
Q:作成した VPC や NAT Gateway がドロップダウンリストに見つからないのはなぜですか?
最も一般的な原因はリージョンの不一致です。DSW ページの左上隅で、現在のリージョンが VPC または NAT Gateway のリージョンと一致しているか確認してください。DSW は同じリージョン内の VPC と NAT Gateway のみを使用できます。
ドロップダウンリストが更新されていない可能性があります。VPC または NAT Gateway を新規に作成した場合、リソースが作成されるまで待ってから、DSW 設定ページの更新ボタン
をクリックしてリストを再読み込みしてください。