code-server にリバースプロキシを組み合わせてマルチユーザー対応の Web IDE 環境にしてみた
Link copied to clipboard!
2025-03-29T05:37:24Z

目次 はじめに 検証環境 構成図 証明書はLet's Encrypt 環境構築手順 Route 53でドメイン設定 セキュリティグループの設定 code-serverのインストールと設定 管理者向け情報 Caddy の設定 各ユーザーの code-server の設定 動作確認 まとめ おわりに 大村 保貴 プログラミングやバイオインフォマティクスを学ぶ講義では、実習環境の準備が欠かせません。しかし、受講者ごとに環境を準備するのは大変な作業です。そこで、複数ユーザーが同時に利用できるブラウザベースの開発環境として、code-server の活用を検討しました。 以前検証した単一 EC2 上でのマルチユーザー向け code-server 環境を受講者視点で使いやすいように改善しました。具体的にはリバースプロキシの追加と HTTPS 対応しました。 https://dev.classmethod.jp/articles/multi-user-code-server-on-single-ec2/ 今回も技術的には可能でしたが、公式の見解では code-server のマルチテナント構成は非推奨です。 今回の検証では以下の構成で code-server 環境を導入しました。 今回の構成はシンプルです。1 台の EC2 インスタンス上に code-server とリバースプロキシ(Caddy)を配置します。 Let's Encrypt は無料で SSL 証明書を提供する認証局です。自動化されたプロセスにより、証明書の取得と更新が簡単に行えます。今回は Let's Encrypt を使用して、セキュアな HTTPS 接続を実現しています。 https://letsencrypt.org/ja/ まず、Route 53 でドメインを設定します。今回はcode.ohmura.example.comというドメインを使用しました。EC2 にアタッチした EIP のパブリック IP アドレスを A レコードとして登録します。 EC2 インスタンスのセキュリティグループで、HTTP と HTTPS アクセスを許可します。HTTP ポート(80 番)は Let's Encrypt の認証に必要なため、事前に開放しておきます。 code-server の設定と Caddy の設定用の自動化スクリプトを用意しました。このスクリプトでは以下の処理を行います。 スクリプトを実行すると、以下のような出力が表示されます。 各ユーザーの code-server パスワードは自動生成され、CSV ファイルに保存されます。 リバースプロキシの設定は以下のファイルが作成されます。各ユーザー名に対応したパスへのアクセスを想定しています。 トップページはこちらです。各ユーザーのパスへのリンクを作成しています。 /var/www/code-server/index.html ~/.config/code-server/config.yaml配下に各ユーザーのホームディレクトリ配下にポート別の code-server の設定ファイルが作成されます。 セットアップが完了したら、ブラウザからアクセスして動作確認を行います。 まず、トップページにアクセスすると、各ユーザーの code-server インスタンスへのリンクが表示されます。 各ユーザーのリンクをクリックすると、各ユーザーに対応した code-server のログイン画面が表示されます。CSV ファイルに記録されたパスワードを入力してログインします。 ログイン後は通常の code-server の環境が利用できます。各ユーザーは独立した環境で作業できます。 code-server の基本的な機能は以下の記事で検証しましたので参考にしてください。 https://dev.classmethod.jp/articles/code-server-multi-user-ec2-review/ 今回は、EC2 インスタンス 1 台でマルチユーザー対応の code-server 環境を構築しました。Caddy をリバースプロキシとして利用することで、各ユーザー専用の URL を提供し、Let's Encrypt による HTTPS 対応も実現できました。 この構成の主なメリットは以下の通りです。 小規模向けの Linux の演習環境として、手軽に導入できて良いのではないでしょうか。 繰り返しになりますが、code-server の公式見解ではマルチテナント構成は非推奨です。本記事は技術検証目的の内容であることをご理解ください。本番環境での利用は自己責任でお願いします。 code-server はシングルユーザー向けのプロダクトなこともあり、そのままではマルチユーザーで使うには難しいことは以前検証して把握していました。 EC2 1 台で複数ユーザーが利用可能な Web IDE 環境を code-server で実現できるのか試してみた | DevelopersIO その後、HTTPS 対応のためにリバースプロキシを経由する方法を検証しました。 Caddy で簡単構築!code-server の HTTPS 環境セットアップ | DevelopersIO リバースプロキシを配置してアクセスできるならやりようがあるではないかということで今回の検証に至りました。複数ユーザーアクセス時のメモリ消費量が気がかりですので、負荷かけて試したいところです。 code-server の代わりに JupyterHub の活用も検討しました。 https://dev.classmethod.jp/articles/jupyterhub-on-aws-for-linux-training/ Share this article Caddy で簡単構築!code-server の HTTPS 環境セットアップ EC2 1 台で複数ユーザーが利用可能な Web IDE 環境を code-server で実現できるのか試してみた Ubuntu 24.04 LTS に code-server を導入してみた EC2 1 台で複数ユーザーが利用可能な Web IDE 環境を code-server で実現できるのか調べてみた © Classmethod, Inc. All rights reserved.
Link copied to clipboard!
BANNER
This is a advertising space.
BANNER
This is a advertising space.