4
0

Cloud 9のプレビューの仕様は多分こんな感じ

Last updated at Posted at 2024-03-13

Cloud 9上には、Cloud 9上で起動しているWebサーバーに外部からアクセスする機能があります。

要件に

アプリケーションはポート 8080、8081、または 8082 を経由して HTTP プロトコルを使用して実行している。

とあるのですが、8080番ポートと8081番/8082番ポートを使用した場合の動作が異なりましたので記録しておきます。

実験した環境は、パブリックサブネットで起動したCloud 9で、セキュリティグループのインバウンドルール未設定(全拒否)状態です。

8080番ポートでサーバー起動した場合

docker run -it --rm -p 8080:80 nginx

この状態で、上部のPreviewメニューのPreview Runninng Applicationをクリックします。

すると、IDE内でブラウザっぽいタブが開き、Webサーバーからのレスポンスが表示されます。

さらに、Browserボタンの右側のアイコンをクリックすると、別のタブが開いてNginxの画面が表示されます。

別タブで開いたURLでアクセスが可能なのは、Cloud 9にアクセスしているユーザーセッションがあるブラウザのみのようです。
なので、ChromeでCloud 9にアクセスしている場合はChromeでのみアクセス可能です。
シークレットモードやFirefoxではアクセスできません。

どういう仕組みなんだろう。。

8081番ポートでサーバー起動した場合

同じ手順を8081番ポートでやってみます。

docker run -it --rm -p 8081:80 nginx

すると、画面いっぱいのOops

8082番ポートを使った場合も同様です。

8081番ポートの使い方

色々試してわかったのですが、ポート番号を明示的に指定すると、同じ番号のサービスに繋がるということがわかりました。

なので、8081番ポートで起動しているサービスに接続したい場合は、https://aaaaaaaaaaaaaaaaaaaaaaa.vfs.cloud9.us-east-1.amazonaws.com:8081/のように指定します。

(ブラウザ部分のURLが/と、ドメインとポートの部分が省略されますが、8081を指定しています)

接続はHTTPS通信ですので、未指定時(=443番ポート使用時)のみ、8080に上手に転送されるようになっているようです。

まとめると

条件 接続先サービス
ポート番号未指定 8080で起動しているサービス
443を指定 8080で起動しているサービス
8080を指定 8080で起動しているサービス
8081を指定 8081で起動しているサービス
8082を指定 8082で起動しているサービス

ちなみに、8083など、8080~8082以外のポートは全ブロックされているように思います。

おまけ

8080~8082までの3つは自由に使えるので、以前紹介した、Cloud 9 でVSCodeを使うで一つポートを使っても、まだWebアプリを起動させる余裕ができます。

Cloud 9 でVSCodeを使うの実用化(?)に一歩近づきました😁

  • Cloud 9でvscode Serverを8082番ポートで起動し、vscode内で8080番ポートを使用するサーバーを起動するの図

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0