外部からの接続方法

[更新: 2024年10月30日]

高火力 DOK で、外部からの接続を受け付ける方法についての説明です。

はじめに

高火力 DOK では、コンテナーがリッスンしているポートに対して外部(インターネット)からの接続を受けられます。 この機能を使うと、簡易的なサーバーとしてコンテナーを実行できます。

注釈

  • 現在のところ、対応しているプロトコルはHTTPのみです。
  • インターネットから弊社設備まではHTTPS(443/TCP)で、弊社設備からコンテナーまではHTTPで通信します。そのためインターネットからは常にHTTPS接続ですが、コンテナー側でHTTPSの設定を行う必要はありません。
  • 本機能は、外部からのHTTPS接続をコンテナーへマッピングするだけであり、コンテナー側で該当のポートを正しくリッスンしているかについては関知いたしません。
  • 本機能は、一時的にJupyter Notebookのようなサービスを起動することを想定したものであり、恒久的なデーモンとして稼働することを想定したものではありません。 よくある質問と回答 も参照ください。

警告

  • コンテナーがインターネットからの接続を受け入れるため、セキュリティーには充分にご注意ください。必要に応じてコンテナー側にファイヤーウォールの設定などを行ってください。
接続の構成

使い方

例として、 高火力 DOK で Jupyter Notebookのイメージ を使う方法を紹介します。

タスク作成画面 で、以下の情報を入力してください。

項目 指定する内容 備考
イメージ quay.io/jupyter/pytorch-notebook:cuda12-python-3.11 このタグが削除されていて使えない場合は、 タグ一覧 から cuda*-python-* の形式のタグを指定してください。
HTTPポート 8888 イメージがリッスンしているポート番号を指定してください(Jupyter Notebookのイメージでは8888ポートをリッスンしています)
HTTPパス /  
環境変数: JUPYTER_TOKEN: 任意の文字列 ここで指定した文字列を認証トークンとして使います

タスクを作成したら、コンテナーが起動するまでしばらく待ったあとでタスク詳細画面の「HTTP URI」をコピーして、ブラウザーのアドレスバーに (コピーしたHTTP URI)/?token=(JUPYTER_TOKENで指定した文字列) と入力してください。

たとえば https://XXXXXXXX.XXXXXXXX.container.sakurausercontent.com/?token=TOKEN のような形式です。

注釈

  • コンテナーが完全に起動するまでは、アクセスした時に503エラーが返ります。起動するまでしばらく時間がかかることがあるので、何度かリロードしてください。

無事Jupyter Notebookが起動したら、以下のような画面が表示されます。

接続の構成

警告

  • Jupyter Notebookを使い終わったら、タスクを中断することを忘れないでください。起動した時間に応じて料金がかかります。
  • ブラウザーを閉じてもタスクは自動的に終了されません。