外部からの接続方法

[更新: 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を使い終わったら、タスクを中断することを忘れないでください。起動した時間に応じて料金がかかります。

  • ブラウザーを閉じてもタスクは自動的に終了されません。