踏み台サーバー
企業環境では、ファイアウォールやその他のセキュリティポリシーにより、リモートマシンへの直接 SSH 接続が制限されることがよくあります。CodeCanvas は踏み台サーバーを使用して、開発者のローカルマシンから開発環境(VS Code/Cursor での開発やターミナル経由の環境へのアクセスなど)への安全な SSH 接続を実現します。踏み台サーバーは、マシン間の SSH 接続を転送する仲介役です。
設定によっては、踏み台サーバーがすでにインストールされている場合があります(例: 単一クラスタインストール)。分散環境や複数リージョンへのスケーリングでは、踏み台サーバーの追加が必要になる場合があります。レイテンシを削減するため、対象の開発環境にできるだけ近い場所(例: 同じ開発環境クラスタ内、または同じリージョン内)にデプロイすることをお勧めします。ただし、必要に応じて、CodeCanvas アプリケーションクラスタに踏み台サーバーをデプロイすることもできます。
前提条件
踏み台サーバーをデプロイする Kubernetes クラスターがあります (これを Jump クラスターと呼びます)。例: これは開発環境クラスター、または同じリージョン内の別のクラスターにすることができます。
CodeCanvas アプリケーションクラスターは、Jump クラスターからネットワークアクセスできます。
これらの手順は、
external-dnsを使用して自動 DNS 設定を行うデフォルトの CodeCanvas インストールを前提としています。異なる DNS 設定を使用する場合は、DNS レコードを手動で作成し、踏み台サーバー用に予約されているドメイン名(例:jump.example.com)が正しく解決されることを確認する必要があります。
移動サーバーをデプロイする
CodeCanvas のヘッダーナビゲーションで管理を選択し、サイドバーメニューで踏み台サーバーを選択します。
新規接続をクリックします。
移動サーバー名前とその他の設定を指定します。
SSH ホスト – 踏み台サーバー用に予約した踏み台サーバーのホスト名または IP アドレス(例:
jump.example.com)。CodeCanvas アプリケーションとユーザーのローカルマシンからアクセスできる必要があります。SSH ポート – SSH エンドポイントのポート番号 (1023 – 65535)。
オプションで、詳細設定を指定できます。
内部 SSH ホストおよび内部 SSH ポート – (オプション) SSH エンドポイントの内部ホスト名とポート番号。開発環境が外部 SSH ホスト名(上記で指定した SSH ホスト)にアクセスできない隔離されたネットワークで実行されている場合にのみ、これらの設定を使用してください。この場合、踏み台サーバーをこの内部ネットワークからアクセスできるように設定する必要があります。

開発環境が外部 SSH ホスト名にアクセスできる場合 (インターネットアクセス経由など)、これらのフィールドを空のままにしておくと、CodeCanvas はユーザーマシン接続と開発環境通信の両方に外部 SSH ホスト名とポートを使用します。
公開 SSH ホスト鍵 – (オプション) SSH ホスト鍵の公開鍵は、開発環境と踏み台サーバー間の信頼関係を確立するために使用されます。この鍵がない場合、開発環境は踏み台サーバーを未知のホストとして扱い、接続を拒否します。
デフォルト(フィールドが空の場合)では、CodeCanvas は踏み台サーバーの SSH キーペアを自動的に生成します。キーペアを手動で生成したい場合は、ここで公開鍵を入力してください。秘密鍵は次のステップで必要となるため、必ず安全に保管してください。
公開 JWT キー – (オプション)公開 JWT 鍵は、踏み台サーバーと CodeCanvas バックエンド間の通信を認証および保護するために使用されます。踏み台サーバーは、秘密 JWT 鍵を使用して CodeCanvas に送信されるペイロードに署名します。ここで提供される公開鍵により、CodeCanvas は署名を検証し、安全な通信を確保できます。
デフォルト(フィールドが空の場合)では、CodeCanvas は踏み台サーバー用の JWT キーペアを自動的に生成します。キーペアを手動で生成したい場合は、ここで公開鍵を入力してください。秘密鍵は次のステップで必要となるため、必ず安全に保管してください。
保存をクリックして接続を作成します。その後、CodeCanvas は Kubernetes シークレットのマニフェストを含む接続スニペットを生成します。
apiVersion: v1 kind: Secret metadata: name: codecanvas-jump-secret namespace: JUMP_NAMESPACE_PLACEHOLDER type: Opaque stringData: JUMP_SSH_HOST_KEY: SSH_PRIVATE_HOST_KEY_PLACEHOLDER JUMP_JWT_PRIVATE_KEY: JWT_PRIVATE_KEY_PLACEHOLDERここに:
metadata.nameはシークレットの名前です。この例ではcodecanvas-jump-secretです。JUMP_NAMESPACE_PLACEHOLDER– 踏み台サーバーをデプロイする Kubernetes 名前空間。kubectl create namespace JUMP_NAMESPACE_PLACEHOLDERを使用して新しい名前空間を作成することも、既存の名前空間を使用することもできます。SSH_PRIVATE_HOST_KEY_PLACEHOLDER– 踏み台サーバーの秘密 SSH ホスト鍵。キーペアを手動で生成した場合にのみ入力してください。JWT_PRIVATE_KEY_PLACEHOLDER– 踏み台サーバーの秘密 JWT キー。キーペアを手動で生成した場合にのみ入力してください。
Kubernetes シークレットファイル (例:
jump-secret.yaml) を作成し、スニペットを貼り付けます。移動クラスターにシークレットを適用します。
kubectl apply -f jump-secret.yaml次の内容の
jump.values.yamlファイルを作成します。application: secret: jump: existingSecretName: "SECRET_NAME_PLACEHOLDER" config: jump: JUMP_CANVAS_URL: "CODECANVAS_URL_PLACEHOLDER" sshService: type: LoadBalancer port: SSH_PORT_PLACEHOLDER annotations: "external-dns.alpha.kubernetes.io/hostname": "JUMP_DOMAIN_PLACEHOLDER"ここに:
SECRET_NAME_PLACEHOLDER– 移動サーバーシークレットの名前。この例ではcodecanvas-jump-secretです。CODECANVAS_URL_PLACEHOLDER– CodeCanvas アプリケーションの URL(例:https://codecanvas.example.com)。この URL は、踏み台サーバーが CodeCanvas バックエンドと通信するために使用されます。SSH_PORT_PLACEHOLDER– SSH ポートパラメーターで指定された移動サーバーの SSH ポート番号。JUMP_DOMAIN_PLACEHOLDER– 移動サーバー用に予約されたドメイン名(例:jump.example.com)。SSH ホストパラメーターと同じです。
変更を移動クラスターに適用します。
helm upgrade -n JUMP_NAMESPACE_PLACEHOLDER --wait --install \ -f jump.values.yaml \ codecanvas-jump \ oci://public.registry.jetbrains.space/p/codecanvas/release-charts/codecanvas-jump \ --version 2025.3.3JUMP_NAMESPACE_PLACEHOLDERを、踏み台サーバーをデプロイする Kubernetes 名前空間に置き換えます。CodeCanvas で、踏み台サーバーページを開き、サーバーがアクティブ状態にあることを確認します。
踏み台サーバーの使用準備が完了しました。コンピューティングプラットフォームを構成する際は、移動サーバードロップダウンから踏み台サーバーを選択してください。
関連ページ:
アーキテクチャー
CodeCanvas は、スケーラビリティと信頼性を重視し、Kubernetes クラスターへのデプロイ向けに設計されています。Amazon EKS、Azure AKS、Google GKE などの主要なクラウドプロバイダーへのインストールを想定しています。オンプレミスインフラストラクチャのサポートも予定されています。クラスター:典型的な CodeCanvas インストールは、CodeCanvas アプリケーションクラスターと任意の数の開発環境クラスターで構成されます。CodeCanvas ク...
コンピューティングプラットフォーム
コンピューティングプラットフォームは、ユーザー開発環境を実行するために使用されるインフラストラクチャを定義します。これは、特定の Kubernetes オペレーター、移動サーバー、リレーサーバーによって管理される開発環境クラスタで構成される構成エンティティです。コンピューティングプラットフォームのコンセプトは、CodeCanvas インストールのマルチリージョン性に対応しており、これらのコンポーネントの配置はエンドユーザーエクスペリエンスにとって非常に重要です。たとえば、エンドユーザーに近いリージ...
リレーサーバー
リレーサーバーは、開発者のローカルマシン上の JetBrains IDE クライアントとリモート環境で動作する IDE バックエンド間の仲介役として機能するコンポーネントです。開発環境へのインバウンド接続がファイアウォールやその他のセキュリティポリシーによって制限されている場合でも、安全な通信を可能にします。開発環境で JetBrains IDE を使用する場合は、CodeCanvas デプロイに少なくとも 1 つのリレーサーバーが必要です。設定によっては、リレーサーバーがすでにインストールされ...