接続 / ツールチェーン / 診断

まずリモート接続を完了し、
次に問題を段階的に切り分けます。

このガイドは専有物理ノードへの接続を対象としています。まずノードのアドレスとシステム認証情報を確認し、SSH、VNC、Xcode、CI runnerを設定します。問題が発生した場合は、ネットワーク、認証、システム、ツールチェーン、ストレージの順に確認し、無駄な再試行を減らします。

接続方式 SSH / VNC
システムインターフェース GUI / CLI
リソース形態 専有物理マシン
ノードの稼働 365日

01 / First connection

初回接続前に5種類の情報を順番に確認

ネットワークを推測したり、先にシステムをリセットしたりしないでください。コンソールのノード情報を唯一の確認基準とし、アドレスをコピーする際はプロトコルの接頭辞、空白、ポート以外の文字を含めないでください。

  1. 01

    ノードアドレスとリージョン

    現在のインスタンスのノードID、リージョン、ホストアドレス、接続ポートを確認します。リージョンは注文内容と一致している必要があります。チームでネットワーク許可リストを使用している場合は、クライアントの現在のパブリック出口IPアドレスも記録してください。

    確認:NODE ID / HOST / REGION / PORT

  2. 02

    システムアカウント

    アカウント名では大文字と小文字が区別されます。SSHコマンド、VNCログイン画面、コンソールに表示されるアカウント名を一致させ、メールアドレスをシステムユーザー名の代わりに使用しないでください。

    形式:username@host

  3. 03

    一時認証情報

    初回利用前に、認証情報がコンソールの最新バージョンであることを確認します。ログイン後はすぐに一時パスワードを変更してください。すでに変更済みの場合は、新しい値で接続します。古い値は引き続き使用できません。

    操作:ログイン → 変更 → 安全に保存

  4. 04

    SSHクライアント

    macOSと一般的なLinux環境では、ターミナルをそのまま使用できます。まずポートの疎通を確認してからSSH接続を開始してください。初回にホストフィンガープリントが表示されたら、ノードアドレスを確認してから承認します。

    推奨:接続タイムアウト10秒 / keepalive 30秒

  5. 05

    画面共有またはVNCクライアント

    VNC対応クライアントを用意し、接続先に正しいポートが含まれていることを確認します。初回接続では低めの解像度と自動画質を使用し、入力が安定してから表示設定を上げてください。

    開始設定:1920×1080 / 24-bit / 自動

推奨する確認順序:まずSSHでアドレス、ポート、アカウント、認証情報を確認してから、グラフィカルインターフェースに接続します。SSHは正常でVNCだけ異常な場合、グラフィックサービス、VNCポート、クライアント設定に絞って確認できます。

02 / Glossary mini

用語を統一してから設定を確認

以下の用語は、注文、コンソール、接続ドキュメント、障害記録に登場します。それぞれが明確なリソース範囲または技術操作を示します。

物理ノード
macOSを実際に実行するMac miniハードウェアです。ノードアドレス、リージョン、ノードIDで現在の提供リソースを識別します。
専有
1つのテナントがデバイス全体のチップ、メモリ、ストレージを使用し、他のテナントとOSインスタンスを共有しません。
クラウドMac
リモートノードに配置され、ネットワーク経由でアクセスするMacです。MiniDeployが提供するのは専有物理マシンであり、仮想マシンではありません。
VNC
リモートのグラフィカルインターフェース、キーボード、ポインター操作を転送するプロトコルです。体感速度は往復遅延、解像度、色深度、画面の変化量に大きく左右されます。
SSH
リモートコマンドライン、ファイル同期、自動化操作に使用する暗号化接続方式です。環境確認、ビルド、ログ収集に適しています。
self-hosted runner
チームが自ら管理し、CIジョブを受け取る実行環境です。Xcodeのバージョン、キャッシュパス、作業ディレクトリ、ビルド依存関係を固定できます。
ツールチェーン
ビルドに必要なXcode、コマンドラインツール、パッケージマネージャー、Ruby、fastlane、スクリプト、環境変数の集合です。
ノード遅延
クライアントとノード間のデータ往復時間で、通常はミリ秒で表します。値が小さいほど、リモートデスクトップの入力反応は速くなります。

03 / Terminal mock

3つの出力で接続・ビルド・アップロードを確認

ターミナル出力から、正しいノードに入れているか、Xcodeが想定したバージョンを選択しているか、ビルド成果物がパイプラインに受け取られたかを確認できます。

例のホスト名はコマンド構造を示すためのものです。実際のアドレス、ポート、アカウント、ノードIDはコンソールの記録を確認してください。ログを収集する際はタイムスタンプと失敗したコマンドを残し、パスワード、秘密鍵、署名素材を削除します。

04 / Migration path

ローカルMacからクラウドMacへ移行する3段階

すべてのディレクトリを一度に移行しないでください。まずプロジェクトデータを移行し、次にツールチェーンを再現し、最後にCIへ接続します。各段階に検証可能な完了条件を設定してください。

  1. STEP 01

    プロジェクトと設定一覧を同期

    コードリポジトリ、ビルドスクリプト、必要なリソースを優先して同期します。大容量ファイルは個別に転送し、転送前後にチェックサムを計算してください。旧マシンのキャッシュをすべて直接コピーしないでください。

    • リポジトリのブランチとコミットハッシュを記録
    • 依存関係のバージョン一覧を出力
    • 重要ファイルの数とサイズを検証
    受け入れ条件 コードをチェックアウトでき、依存関係一覧を読み取れる
  2. STEP 02

    Xcodeと署名ツールチェーンを再現

    Xcodeのメジャーバージョン、コマンドラインツールのパス、Rubyとfastlaneのバージョンを明確にします。署名素材は管理された手順でインポートし、ファイル権限と有効範囲を確認してください。

    • 確認: xcode-select -p
    • パッケージマネージャーとスクリプトのバージョンを固定
    • ローカルでReleaseビルドを1回実行
    受け入れ条件 同じコミットで安定してアーカイブを完了できる
  3. STEP 03

    self-hosted runnerを接続

    runner専用の作業ディレクトリとサービスアカウントを作成します。ラベルのマッチ範囲と同時実行数を制限し、キャッシュ、ログ、成果物のパスをソースコードのディレクトリから分離します。

    • 登録後に最小テストジョブを実行
    • キャッシュヒットとクリーンアップルールを検証
    • 失敗ログが返送されることを確認
    受け入れ条件 コミットのトリガー、ビルド、返送までの一連の流れが完了する

05 / Remote desktop

リモートMacのデスクトップ設定は低負荷から開始

リモートデスクトップの体感は帯域幅だけで決まりません。ノード遅延、解像度、色深度、フレームレート、クライアントのスケーリング、バックグラウンドのファイル転送が入力反応に影響します。

macOS画面共有

Macクライアントからグラフィカルインターフェースに入る用途に適しています。接続先にはコンソールに表示されたホストアドレスとポートを使用し、ログインアカウントはシステムアカウントと完全に一致させてください。

初期解像度
1920×1080
色深度
24-bit
推奨帯域幅
≥ 15 Mbps
操作の推奨設定
自動画質を優先

画面が遅れる場合は、まずバックグラウンド同期を停止し、次にリモート側の解像度を下げます。解像度、色深度、圧縮レベルを同時に変更すると、影響要因を特定しにくくなります。

汎用VNCクライアント

クロスプラットフォームアクセスに適しています。自動圧縮を有効にし、不要なアニメーション効果を無効にしてください。画質と色深度を個別に設定できる場合は、画質を自動のままにして、先に色深度だけを下げます。

初期解像度
1600×900
低帯域時の色深度
16-bit
推奨帯域幅
≥ 10 Mbps
接続キープアライブ
30–60秒

入力に明らかな遅延があるのに画面が鮮明な場合は、クライアントからノードまでの往復遅延を優先して確認します。高解像度ではネットワークの揺らぎは改善せず、エンコードと転送の負荷が増えるだけです。

用途 解像度の目安 色深度 推奨帯域幅 優先して調整する項目
ターミナルと軽量編集 1600×900 16-bit ≥ 8 Mbps 動きの多い画面を減らす
Xcodeでのコーディングとデバッグ 1920×1080 24-bit ≥ 15 Mbps 低遅延の経路を維持
マルチウィンドウ開発 2560×1440 24-bit ≥ 25 Mbps まず安定性を確認
画面変化が多い作業 1920×1080 24-bit ≥ 30 Mbps フレームレートまたは画質を下げる

帯域幅は設定開始点であり、遅延を保証する数値ではありません。リモートデスクトップを主に開発や管理に使う場合は、クライアントに近いノードを優先し、実際のネットワーク環境で検証してください。

06 / CI/CD

runnerは一度動かすだけでなく再現可能にする

CI接続の完了条件は、一度グリーンの結果を見ることではありません。作業ディレクトリをクリーンアップした後も同じコミットを繰り返しビルドでき、失敗時にも十分なログを保持できることが重要です。

Registration

runner登録

  • 専用サービスアカウントで実行
  • ラベルで少なくともアーキテクチャとXcodeバージョンを区別
  • デフォルトの同時実行数を 1に設定し、負荷を確認してから調整
  • 登録トークンは設定時のみ使用
Workspace

作業ディレクトリを分離

  • ジョブごとに独立したチェックアウトディレクトリを使用
  • ソースコード、キャッシュ、ログ、成果物を分けて保存
  • ジョブ終了後に一時ファイルを削除
  • 異なるプロジェクトで書き込み可能な設定ファイルを共有しない
Cache

キャッシュ戦略

  • キャッシュキーに依存関係ロックファイルの要約を含める
  • キャッシュに容量上限と有効期限を設定
  • ヒットに異常がある場合は完全な再ビルドを許可
  • 署名素材と短期認証情報をキャッシュしない
Signing

ビルド証明書

  • プロジェクトごとに必要な素材をインポート
  • ファイル権限とアクセス可能なアカウントを制限
  • 有効期限を記録し、早めに確認
  • ジョブログに機密情報を出力しない
Logs

ログの保持

  • ジョブID、コミットハッシュ、タイムスタンプを保持
  • 標準出力と標準エラー出力を両方保存
  • 失敗段階で診断概要をアップロード
  • サポートに送る前に必ずマスキング
Validation

最小受け入れタスク

  • システムとXcodeのバージョンを出力
  • 依存関係を取得して単体テストを実行
  • 識別可能なビルド成果物を1つ生成
  • ディレクトリをクリーンアップして再実行
リソースの目安:M4 CoreはMac Mini M4、16GB RAM、256GB SSDの構成です。並列ジョブはメモリ、ストレージI/O、ネットワークを同時に使用します。複数のパイプラインを接続する前に、同時実行数をすぐ増やすのではなく、単一ジョブのピーク値を測定してください。

07 / Diagnosis tree

症状からトラブルシューティングツリーに進む

毎回変更する変数は1つだけにし、時刻、コマンド、戻り値、クライアントのネットワークを記録します。接続ボタンを繰り返しクリックしても、有効な情報は通常増えません。

接続できない:アドレスとポートのどちらが到達不能かを確認
  1. コンソールでノードの状態、アドレス、リージョン、ポートに誤りがないことを確認します。
  2. ローカルネットワークが対象ポートを制限していないか確認します。ネットワークの切り替えは比較用に使い、恒久的な解決策にはしません。
  3. ポートチェックでタイムアウト、拒否、接続確立のいずれかを確認し、正確な時刻を記録します。
  4. SSHとVNCの両方に到達できない場合は、ノードID、クライアントの都市、通信事業者、チェック結果を提出します。
  5. SSHには到達できるがVNCに到達できない場合は、VNCポート、クライアントの接続先形式、グラフィックサービスの状態を確認します。
認証に失敗する:アカウント、認証情報の版、入力方法を確認
  1. メールアドレス、ノードID、デバイス名ではなく、システムアカウント名を使用していることを確認します。
  2. コンソールで一時認証情報を再確認します。パスワードを変更済みの場合は、更新後の認証情報を使用してください。
  3. キーボードレイアウト、大文字・小文字、前後の空白、特殊文字の入力を確認し、リッチテキストからのコピーは避けます。
  4. SSH鍵認証に失敗する場合は、公開鍵が正しいアカウントに登録されているか、ディレクトリとファイルの権限を確認します。
  5. 連続して失敗したら再試行を停止し、クライアント、時刻、戻り情報を記録してからチケットを提出します。
画面が遅れる:高遅延、帯域不足、バックグラウンド負荷を切り分ける
  1. まずクライアントからノードまでの往復遅延を測定し、明らかな揺らぎやパケットロスがないか継続的に確認します。
  2. コード同期、依存関係のダウンロード、大容量ファイルのアップロードを停止し、入力反応が戻るか確認します。
  3. 解像度を 1600×900に下げ、色深度を 16-bitに下げます。その他の設定は変更しません。
  4. 動的デスクトップ、透明効果、高頻度で更新されるウィンドウを閉じ、画面の変化量を減らします。
  5. 特定のクライアントだけで異常が発生する場合は、別のクライアントで比較し、バージョンを記録します。
ビルドに失敗する:バージョン、依存関係、権限、環境変数から切り分ける
  1. 現在のXcodeバージョン、コマンドラインツールのパス、アーキテクチャ、対象SDKを出力します。
  2. 依存関係のロックファイルを確認し、プロジェクト単位の派生データを削除して完全ビルドを1回実行します。
  3. ローカルとノードのRuby、fastlane、パッケージマネージャー、スクリプトのバージョンを比較します。
  4. 作業ディレクトリ、一時ディレクトリ、成果物ディレクトリに正しい読み書き権限があるか確認します。
  5. 最初に発生した実際のエラーと前後のログを保存し、最終終了コードだけを提出しないでください。
ディスク容量不足:まず増加しているディレクトリを特定し、ロールバック可能な削除を行う
  1. システムボリュームの空き容量を確認し、ソースコード、キャッシュ、派生データ、シミュレーターデータ、アーカイブの容量をディレクトリ別に集計します。
  2. 再生成できるプロジェクトキャッシュと失敗したジョブの一時ファイルを先に削除します。
  3. CI作業ディレクトリの保持数を設定し、過去のチェックアウトと成果物が蓄積し続けないようにします。
  4. 長期保存する成果物をチームストレージへ同期し、チェックサムを確認してからノード側のコピーを削除します。
  5. ワークロードが長期的に256GB SSDの容量を超える場合は、注文時にストレージ追加オプションを検討します。

08 / Security operations

初回接続を安全な引き継ぎとして扱う

専有物理マシンではリソース境界が明確になりますが、ノード内のアカウント、鍵、プロジェクトファイル、アクセス元は、チームが最小権限の原則に従って管理する必要があります。

一時認証情報を変更

初回ログイン後、すぐに新しい強力なパスワードを設定し、チームで承認された認証情報管理ツールに保存します。ビルドログや通常の文書でパスワードを共有しないでください。

リモートアクセス元を制限

SSHとVNCの公開範囲を、実際に必要なチームの出口IPアドレスに限定します。メンバーのネットワークが変わったらルールを更新し、テスト用のアクセス元を長期間残さないでください。

最小権限アカウントを使用

日常のビルド、リモート操作、runnerサービスには、それぞれ役割を明確にしたアカウントを使用します。インストールやシステム設定時だけ一時的に権限を昇格し、完了後はすぐに戻してください。

一時鍵を削除

移行、トラブルシューティング、外部との共同作業が終わったら、一時公開鍵、短期トークン、テストアカウントを削除します。自動化スクリプトが古い認証情報を参照していないかも確認してください。

ログのマスキング範囲:ノードID、タイムスタンプ、コマンド名、終了コード、エラースタックは保持できます。パスワード、秘密鍵、アクセストークン、署名素材、完全な環境変数、プロジェクト内の機密業務データは削除してください。

09 / Support escalation

再現可能な情報を提出すれば、サポートがすぐに調査を開始できます

技術的な問題は、インスタンスと関連付けてログを継続的に追加できるよう、まずコンソールのチケットから提出してください。コンソールに入れない場合や導入前の確認には、メールを利用できます。

コンソールチケット

ノードと接続に関する問題に適しています

コンソールにログインしてチケット画面を開き、新しいテクニカルサポート依頼を作成し、該当ノードを関連付けます。1件のチケットでは主な問題を1つに絞り、無関係な異常を同じ記録に混在させないでください。

  • ノードIDとリージョン
  • タイムゾーン付きの発生時刻
  • クライアントの都市、ネットワーク、接続方式
  • 最短の再現手順と期待される結果
  • マスキング済みのコマンド出力とログ
コンソールにログインしてチケットを提出
サポートメール

アカウントアクセスと導入前の確認に適しています

メールの件名は「問題の種類 + ノードIDまたは注文識別子」とすることをおすすめします。本文には実施済みの確認内容を時系列で記載し、パスワード、秘密鍵、マスキングしていない署名素材は送信しないでください。

  • 連絡先メールアドレスとタイムゾーン
  • 問題の影響範囲と優先度
  • 実施済みのトラブルシューティング手順
  • 調査に対応できる時間帯
  • 確認したい具体的な問題
提出前 1回再現して正確な時刻を記録
提出時 ノードIDとマスキング済みログを添付
提出後 同じチケットに継続して情報を追加

Ready to connect

ノード情報が揃ったら、コンソールから接続を開始

まずノードアドレス、システムアカウント、現在の認証情報をコピーし、SSH接続を1回確認してからリモートMacデスクトップに入ります。新しい専有物理マシンが必要な場合は、固定モデルと契約期間の料金を確認できます。