DSW インスタンス内でモデル API や Web UI などのサービスを実行している場合、そのサービスをインターネットに公開できます。DSW には、パブリックネットワークアクセスを設定するためのカスタムサービス機能が用意されています。この機能を使用すると、ブラウザから直接サービスにアクセスしたり、ログイン不要でテスト用のパブリック URL を共同作業者と共有したり、外部アプリケーションからサービスを呼び出すことができます。注:この機能は、主に開発およびテスト用途を想定しています。
重要な注意事項
追加料金が発生します:パブリックネットワークアクセスを設定するには、NAT ゲートウェイとEIPが必要です。これらの製品は個別に課金されます。
サポートされるインスタンスタイプ:この機能は、パブリックリソースグループ内のインスタンス (リソース仕様が
ecs.ebmで始まらないもの) および Lingjun インテリジェントコンピューティングインスタンスに対応しています。1 つのインスタンスにつき、最大 5 つのカスタムサービスを設定できます。サービスの中断:DSW インスタンスを停止すると、その内部サービスも停止し、パブリックネットワークアクセスが無効になります。
本番環境の推奨事項:安定性、高可用性、スケーラビリティを備えた本番サービスの場合は、モデルをElastic Algorithm Service (EAS)にデプロイすることを推奨します。
仕組み
DSW インスタンス内のサービス (ポート 9000 上の API など) をインターネットからアクセスできるようにするには、以下のリソースが連携して動作します。
EIP:固定パブリック IP アドレス (例:
121.40.**.**) を提供し、トラフィックのパブリックエントリポイントとして機能します。NAT ゲートウェイ:VPC 内に配置され、パブリックインターネットからのリクエスト (
EIP:ポート宛) をプライベート DSW インスタンス (プライベートIP:ポート宛) にマッピングします。セキュリティグループ:DSW インスタンスの仮想ファイアウォールとして機能します。サービスの特定のリッスンポート (例:
9000) へのトラフィックを許可する インバウンドルールを明示的に追加 する必要があります。これは接続性を確保するための重要なステップです。
コアワークフロー:パブリックユーザー (ブラウザ/ツール) -> EIP:ポート -> NAT Gateway -> vSwitch -> セキュリティグループルールチェック -> DSW インスタンスプライベート IP:ポート -> サービス
課金
NAT ゲートウェイと EIP の課金は、作成時から開始されます。
DSW インスタンスを停止した場合でも、NAT ゲートウェイと EIP が削除されていない限り、これらの課金は継続されます。
DSW インスタンスの料金は、その実行ステータスによって異なります (従量課金インスタンスは停止時に課金されません)。
パブリックネットワークアクセスの設定
インスタンス作成時にパブリックアクセスを設定する
DSW インスタンスを作成し、以下の主要なネットワークパラメータを設定します。
Network Information セクションで、VPC とセキュリティグループを選択します。 これらは以下の手順で作成できます。 詳細については、「VPC と vSwitch を作成する」および「セキュリティグループを管理する」をご参照ください。 注: VPC とセキュリティグループは、DSW インスタンスと同じリージョンにある必要があります。
Service Access and Port Configuration セクションで、Add をクリックし、Service Name と Listener Port (例:
9000) を入力します。Access over Internet チェックボックスを選択し、Internet Access Port (例:9000) を設定します。[DNAT+EIP] をクリックし、お使いの NAT Gateway と EIP を選択します。以下の手順に従って、NAT ゲートウェイと EIP を作成できます。注意: NAT ゲートウェイと EIP は、DSW インスタンスと同じリージョンにある必要があります。または、[NLB] オプションを選択することもできます。NLB を作成する際は、[インスタンスネットワークタイプ] を [パブリック] に設定し、DSW インスタンスと同じ VPC を選択します。詳細な手順については、「NLBを使用したIPv4サービスのロードバランシングの実現」をご参照ください。
説明複数の DSW インスタンスが同じ DNAT と EIP (または NLB) を共有する場合、インスタンスごとに異なるパブリックアクセスポートを使用する必要があります。
選択したセキュリティグループで、サービスのリッスンポート用のインバウンドルールを設定します。詳細な手順については、「セキュリティグループの作成」をご参照ください。以下のパラメータを設定します。
アクション:許可
プロトコルタイプ:サービスに基づいて選択します (例:
TCP)。ポート範囲:設定したリッスンポートを入力します (例:
9000/9000)。ソース:
0.0.0.0/0(テスト用にすべてのパブリック IP アドレスからのアクセスを許可) または必要に応じて特定の IP 範囲。本番環境では、送信元 IP アドレス範囲を制限することを強く推奨します。設定が完了すると、セキュリティグループの インバウンド ルールリストにルールが表示されます。ルールのプロトコルは [Custom TCP]、ポート範囲は
9000/9000、送信元は0.0.0.0/0です。
既存のインスタンスにパブリックアクセスを設定する
既存の DSW インスタンスにパブリックネットワークアクセスを設定するには、以下のいずれかの方法を使用します。
注意: VPC や NAT Gateway などのネットワークリソースを追加または変更するには、インスタンスの再起動が必要な Change Settings オプションを使用する必要があります。
インスタンス詳細ページ
DSW インスタンスリストページで、インスタンス名をクリックして詳細ページを開き、パブリックネットワークアクセス設定を変更できます。
インスタンス詳細ページの [アクセス設定] セクションで、[カスタムサービス] 行を見つけ、対応する [変更] ボタンをクリックしてパブリックネットワークアクセスを設定します。ポートを開く必要がある場合は、[ネットワーク情報] セクションで [セキュリティグループID] (例: sg-bp1g37d4lmajq...) を確認し、そのセキュリティグループに必要なルールを追加します。
DSWインスタンス
DSW 開発環境内では、ページの上部にあるChange Settingsをクリックして、カスタムサービスを変更できます。
左側メニューで、[アクセス設定] をクリックします。カスタムサービスエリアでは、設定済みのサービス (サービス名 gradio やリッスンポート 9000 など)、そのパブリックアクセス URL、および設定ステータスを確認できます。[変更] をクリックして、カスタムサービスを編集します。
左側のメニューで [ネットワーク] をクリックします。右側にネットワークの詳細が表示されます。[セキュリティグループID] (例: sg-bp1g37d4lmajugsicmz2) を確認し、後でセキュリティグループルールを設定する際に使用するためにメモします。
接続のテスト
DSW ターミナルで、以下のコマンドを実行して、Python の組み込み HTTP サーバーを起動します。
# テストコンテンツを含むHTMLファイルを作成 echo 'Hello, World!' > index.html # Pythonの組み込みHTTPサーバーを起動 (ポート 9000 でリスニング) python -m http.server 9000 --bind 0.0.0.0インスタンス詳細ページで、Access Configurations セクションからアクセス URL を取得します。
[アクセス設定] セクションで、[パブリックアクセス] 列の URL を確認します。この URL は、[設定ステータス] が [準備完了] になると利用可能になります。
たとえば、パブリックアクセス URL
121.40.**.**:9000をコピーして、ブラウザで開きます。Hello, World!が表示されれば、サービスは正しく設定されています。
本番環境の推奨事項
開発およびテスト専用:DSW のパブリックネットワークアクセス機能は、一時的なテストや共同でのデバッグ用に設計されています。
本番環境ではEASにデプロイ:本番環境の推論サービスには、Elastic Algorithm Service (EAS) へのデプロイを推奨します。EAS は以下を提供します。
高可用性とロードバランシング。
トラフィック変動に対応するオートスケーリング。
包括的な監視、アラート、バージョン管理、カナリアリリース。
パブリックネットワークアクセスの最適化された統合と課金。詳細については、「モデルをオンラインサービスとしてデプロイする」をご参照ください。
コスト削減:
よくある質問
Q: パブリックネットワークアクセスを設定しましたが、This site can't be reached、接続が拒否されました、またはTimeoutなどのエラーが表示されて接続できません。
ステップ 1:セキュリティグループのルールを確認してください。(最も一般的な原因)
セキュリティグループに インバウンド ルールが追加されていることを確認します。
ルールのポート範囲には、設定したポート (例:
9000) が含まれていますか?ルールのソースには、お客様のパブリック IP アドレスまたは
0.0.0.0/0が含まれていますか?プロトコルタイプ (TCP/UDP) は正しいですか?
ステップ 2:サービスが実行され、正しいポートでリスニングしていることを確認してください。
DSW インスタンスのターミナルで、
netstat -tunlp | grep <port_number>(例:netstat -tunlp | grep 9000) を使用して、ポートでサービスがリスニングしているかどうかを確認してください。アプリケーションプロセスが実行され、設定されたポートでリスニングしていることを確認します。
ステップ 3:NAT ゲートウェイと EIP のステータスを確認してください。
ステップ 4:ローカルでテストしてください。DSW インスタンス内で、
curl http://localhost:<port_number>またはcurl http://<instance_private_IP>:<port_number>を使用して、サービスが応答するかどうかを確認します。ステップ 5:ネットワーク診断ツールを使用してください。
Alibaba Cloud VPC は、パスの問題を診断するためのNetwork Intelligence Service (NIS)を提供しています。NIS は使用前にアクティベーションが必要です。
DSW インスタンス内で、
telnet <EIP> <port>を実行して、ポート接続をテストしてください。telnetがインストールされていない場合は、先にインストールしてください。
Q: DSW インスタンスを停止した後も、パブリックネットワークアクセスの料金は発生しますか?
はい。従量課金 DSW インスタンスは、停止時に課金は停止します。ただし、関連付けられた NAT ゲートウェイ と EIP は独立したリソースであり、削除されるまで課金は継続されます。コストを節約するために、手動で削除してください。
Q: 1 つの EIP で複数のポートにマッピングできますか?
はい。1 つの EIP と NAT ゲートウェイを使用して、同一の DSW インスタンスから複数のサービスポート (最大 5 つ) をマッピングできます。 EIP:different_port を使用して各サービスにアクセスできます。
Q: 作成した VPC または NAT ゲートウェイがドロップダウンリストに表示されません。なぜですか?
最も一般的な理由は、リージョンの不一致です。DSW ページの左上隅で選択されている現在のリージョンが、VPC または NAT ゲートウェイのリージョンと同じであることを確認してください。DSW インスタンスは、同じリージョンの VPC と NAT ゲートウェイのみを使用できます。
ドロップダウンリストが更新されていない可能性があります。VPC または NAT ゲートウェイを作成したばかりの場合は、リソースの作成が完了するまで待ってから、DSW 設定ページの更新アイコン
をクリックしてリストを再読み込みしてください。
VPC 名、IPv4 CIDR ブロック、および vSwitch 情報を設定し、その他のパラメーターはデフォルト値のままにして、OK をクリックして VPC と vSwitch を作成します。



