まずは初回接続から

接続手順を確認して、
ワークフローを安定させましょう。

専有Mac miniの使い方を、実際の作業順にまとめました。納品情報を確認してからシステムに接続し、ツールを設定。最後にビルド、バックアップ、更新の準備をします。すべてを一度に読む必要はありません。今の作業に合わせてご覧ください。

ご利用中のインスタンス:コンソールで納品情報と注文状況をご確認ください。サポートが必要な場合は、ログイン後にチケットを送信してください。公開の場所にパスワード、秘密鍵、署名情報を貼り付けないでください。

接続してから設定

初回接続時に確認する4項目

各手順には完了の目安があります。まず対話型セッションで確認し、同じ設定を自動化タスクに適用しましょう。

01納品内容の確認

認証情報を受け取ったら初回ログイン

注文、マシン、接続情報を照合します。まず1台で接続を確認し、別ノードのアドレスをクライアントに入力しないようにしましょう。

手順を表示
  1. コンソールにログインし、該当する注文のインスタンス詳細を開きます。機種、ノード、利用期間、現在の納品状況を確認してください。
  2. 接続先アドレス、ログインユーザー名、実際のポート番号を保存します。認証情報はコンソールに表示された内容を使用し、転送メールやチャットの記録をつなぎ合わせて使わないでください。
  3. 初回接続後にログインパスワードを変更し、 sw_vers を実行してシステムのバージョンを確認します。続けて df -h を実行し、ディスクの空き容量を確認してください。
  4. プロジェクトと成果物の保存先、担当者を記録します。チームで利用する場合、同じ認証情報をそのままコードリポジトリに登録しないでください。

完了の目安:再接続でき、システム情報が注文内容と一致し、ビルド成果物の保存先も把握できていること。支払い済みでも認証情報が届いていない場合は、注文内からチケットを送信してください。重複して注文しないでください。

02リモート接続

画面共有とSSH公開鍵を設定

画面共有は初期設定や対話型のデバッグに、SSHはコマンド実行、ファイル転送、自動化タスクに適しています。

手順を表示
  1. 納品情報を使って画面共有に接続します。「システム設定」→「一般」→「共有」を確認し、必要なユーザーだけにアクセスを許可してください。
  2. コマンドラインを使う場合は「リモートログイン」を確認します。ローカルでSSH鍵を生成するか既存の鍵を選び、リモート側には公開鍵だけを登録してください。
  3. 公開鍵を対象ユーザーの ~/.ssh/authorized_keysに追記し、ディレクトリの権限を 700、ファイルの権限を 600に設定します。
  4. 現在のセッションを開いたまま、別のターミナルから公開鍵でログインできることを確認してから、認証方式を変更してください。秘密鍵は常にローカルまたはチームの鍵管理システムに保管します。

完了の目安:画面共有で正常に接続でき、新しいセッションでSSH公開鍵認証が通ること。ポートとファイアウォールの設定は、実際の納品情報に基づいて確認してください。

各システムの接続ガイドを見る
03ツールの確認

Xcodeコマンドラインツールを確認・インストール

まず現在の環境がプロジェクトの要件を満たしているか確認します。システムにXcodeが入っているからといって、すぐにアップグレードしないでください。

手順を表示
  1. 次のコマンドで xcodebuild -version と xcode-select -p を実行し、バージョンと開発ツールのパスを確認します。
  2. コマンドラインツールがない場合は、 xcode-select --installを実行します。完全なビルドにはプロジェクトに合ったXcodeが必要です。コマンドラインツールだけでは、すべてのSDKを利用できません。
  3. 複数のXcodeがインストールされている場合は、 DEVELOPER_DIR を使って単一タスクの開発ツールディレクトリを指定するか、 xcode-select でシステム全体の選択を切り替えます。
  4. ツールのライセンス確認と初回起動時に必要なコンポーネントのインストールを済ませ、小規模なプロジェクトをビルドしてテストします。

完了の目安:ターミナルとCIログのXcodeバージョンが一致し、対象SDKを利用できること。作業者の記憶に頼らず、バージョンをプロジェクト設定またはrunnerの起動環境に記録してください。

04自動化の設定

Mac mini serverにセルフホストrunnerを登録

まず手動ビルドを一度成功させてから、runnerにタスクを任せます。登録コマンドはCIプラットフォームのプロジェクト管理画面で確認してください。

手順を表示
  1. 専用のビルドユーザーと作業ディレクトリを作成し、CIプロジェクトの設定からmacOSとApple Siliconに対応するrunnerのインストーラーを取得します。
  2. 有効期間の短い登録トークンを使って接続します。ラベルにはOS、チップ、ノード、用途を明記し、長期間使えるアクセストークンをリポジトリに保存しないでください。
  3. まずフォアグラウンドで最小限のタスクを実行し、PATH、Xcodeのパス、キーチェーンへのアクセス、成果物のアップロードを確認します。
  4. 無人実行に必要な権限を確認してから、CIプラットフォームの手順に沿ってサービスを設定します。GUI操作を含むタスクは、セッションの要件を個別に確認してください。

完了の目安:テスト変更を一度コミットするとタスクが実行され、ログから該当インスタンスを特定でき、成果物がマシン外に保存されていること。マシンを専有していても、タスクを無制限に並列実行できるわけではありません。まず直列で検証し、メモリとディスクの使用量に応じて並列数を調整してください。

再現性をワークフローに組み込む

ビルド・署名・キャッシュ

Unity、Flutter、ネイティブのいずれのプロジェクトでも、ツールのバージョン、依存関係のロックファイル、ビルドコマンドを記録しましょう。署名情報と再生成可能なキャッシュは分けて管理してください。

Unity iOSのクラウドビルド手順

UnityプロジェクトのエクスポートとXcode Archiveを、個別に検証できる2段階に分けます。問題が起きたとき、どの段階で発生したか特定しやすくなります。

手順を表示
  1. Unity Editorのバージョン、パッケージ依存関係、iOSビルドサポートモジュールを固定します。ライセンス要件も先に確認し、ライセンスの問題をマシンの不具合と誤認しないようにしてください。
  2. プロジェクトを同期したら、Xcodeプロジェクトをエクスポートします。生成先はソースコードと分け、エクスポートログと今回のコミットIDを保存してください。
  3. プロジェクトに必要なネイティブ依存関係をインストールし、scheme、対象デバイスの種類、Bundle Identifier、署名設定を確認します。
  4. Archiveを実行し、エクスポートした成果物を検証してから、チームで定めた配布手順でアップロードします。「ビルド成功」を「配布完了」とみなさないでください。

保存をおすすめする情報:コミットID、ツールのバージョン、エクスポートログ、Archiveログ、成果物のチェックサム。失敗後に再試行する前に最初のエラーを解決し、ログ末尾の一般的な失敗メッセージだけを切り取らないでください。

Xcodeの証明書とプロビジョニングプロファイルを移行

ビルドの署名には、証明書と対応する秘密鍵、有効なプロビジョニングプロファイルが必要です。証明書ファイルだけをコピーしても、通常は署名できません。

手順を表示
  1. チームで管理している場所から、秘密鍵を含む署名情報を用意し、暗号化して転送します。エクスポートパスワードは別の安全な経路で共有してください。
  2. ビルドユーザーがアクセスできるキーチェーンにインポートし、証明書の有効期限と秘密鍵とのペアを確認します。利用可能なIDは security find-identity -v -p codesigning で確認できます。
  3. 対象アプリ、チーム、配布方法に合ったプロビジョニングプロファイルをインポートし、Bundle Identifier、有効期限、必要な機能を確認します。
  4. runnerと同じユーザー、同じ実行方法で署名をテストし、無人タスクが権限確認のダイアログで停止しないことを確認してください。

セキュリティ上の注意:ログにエクスポートパスワード、秘密鍵、署名ファイル全体を出力しないでください。情報を更新または失効させる場合は、ビルド設定も同時に更新します。利用期間の終了前にマシン内の機密情報を削除し、チーム側に安全なコピーを保管してください。

ビルドキャッシュを追加SSDに保存

+1TB SSDは、再生成可能なキャッシュや中間生成物の保存に適しています。ビルドスクリプトを変更する前に、実際のマウントパスを確認してください。

手順を表示
  1. まず df -h を実行して追加SSDのマウント先と空き容量を確認します。プロジェクトごとに専用ディレクトリを作成し、複数のタスクで同じ書き込み可能なキャッシュを共有しないでください。
  2. Xcode DerivedDataの保存先を専用キャッシュディレクトリに設定します。Unity Libraryキャッシュは、プロジェクト、Editorのバージョン、依存関係の状態ごとに分けてください。
  3. キャッシュ、Archive、エクスポートしたパッケージは別々のディレクトリに保存します。成果物をSFTPまたはチームのストレージに転送した後、保存ルールに沿って削除してください。
  4. 再起動または再接続の後にマウント状態を確認します。パスが利用できない場合はタスクを明示的に失敗させ、気づかないままシステムディスクへの書き込みを続けないでください。

容量の見積もり:作業用コピー、依存関係、キャッシュ、並列タスク、成果物の容量をそれぞれ見積もります。追加SSDはマシンの返却時にデータが消去されます。利用期間終了後もアクセスできるバックアップドライブではありません。

まず動作を確認し、その後速度を測定

24GBモデルでローカル推論を始める

GNU Studio M4はM4・24GB RAM・512GB SSDを搭載しています。モデルファイルのサイズと推論時の総メモリ使用量は一致しません。量子化方式、コンテキスト長、同時リクエスト数によって必要なリソースは変わります。

再現可能なMLX推論環境を構築

まず小さなモデルで読み込みと出力を確認し、その後コンテキスト長や並列数を調整します。最初からサービスプロセスに最大負荷をかけないでください。

手順を表示
  1. 依存関係が現在のmacOS、Python、Apple Silicon環境に対応していることを確認します。実験ごとに独立した仮想環境を作成してください。
  2. 必要な依存関係をインストールしてバージョンを記録し、ロックファイルを保存します。モデルのバージョンと量子化形式を固定し、テストごとに異なる重みを使わないようにしてください。
  3. まず単一リクエストと短いコンテキストでモデルを読み込み、プロセスのメモリ使用量、メモリプレッシャー、スワップ領域の変化を記録してから、入力を段階的に長くします。
  4. 結果を比較するときはプロンプト、生成長、ウォームアップ条件を固定し、初回の読み込みとその後の生成を分けて記録してください。

完了の目安:同じ設定でモデルを繰り返し読み込み、結果を生成できること。並列数を増やす前にリソースを確認してください。ディスク上のファイルサイズだけで処理可能なリクエスト数を推測しないでください。

モデルファイルとディスク容量を計画

モデルの重み、ダウンロードキャッシュ、変換したコピー、実験結果は別のディレクトリに保存します。複数の量子化バージョンを残す場合、ディスク使用量はその分増加します。

手順を表示
  1. ダウンロード前に、モデルリポジトリで実際のファイルサイズを確認します。ディスク容量は元ファイル、量子化・変換後のファイル、一時ダウンロードファイル、実行ログを含めて見積もってください。
  2. モデル用ディレクトリとPython環境を分けます。追加SSDを使う場合は、モデルキャッシュの保存先を起動設定に明示してください。
  3. まず du -sh でディレクトリの使用量を確認し、 df -h でボリュームの空き容量を確認します。2つのコマンドで分かることは異なります。
  4. ダウンロードや変換の失敗時に備え、一時ファイル用の空き容量を確保します。古いモデルを削除する前に、実行中のタスクがそのディレクトリを参照していないことを確認してください。

選ぶ際の注意点:+1TBまたは+2TBのSSDで増えるのはストレージ容量であり、ユニファイドメモリではありません。返却前に実験設定、結果、保存が必要な重みをエクスポートし、唯一のコピーをインスタンス内に残さないでください。

期限をスケジュールに記録

更新・プラン変更・支払い

請求期間、利用期限、支払い状況はコンソールの注文表示を基準にしてください。インスタンスは年間365日稼働しますが、バックアップと移行の時間を作業スケジュールに確保しておきましょう。

更新と期限前の確認

日、週、月、四半期から利用期間を選べます。支払いを開始しただけで更新が完了したと思い込まないでください。

手順を表示
  1. コンソールで該当する注文を開き、インスタンスと利用期限を確認します。実行中のビルドや実験を終えられるだけの期間が残っているか確認してください。
  2. コンソールに表示された更新手順に従って、期間と金額を確認します。注文に利用可能な操作がない場合は、チケットを送信して対応方法を確認してください。
  3. 支払い後、注文状況と新しい利用期限を確認します。更新されていない場合は、注文番号と支払い証明を用意して、チケットからお問い合わせください。
  4. 返却を予定している場合は、新しいタスクを停止し、成果物と設定をエクスポートしてから、ローカルまたはチームのストレージにあるコピーを開けることを確認してください。

ご注意:自動更新や期限後の固定猶予期間があると想定しないでください。マシンの返却後にデータは消去され、追加SSDも同様に処理されます。重要なデータは利用期間の終了前に移行してください。

プラン変更とオプションの追加

メモリの必要量とディスクの必要量は分けて判断してください。機種を変更する前に、データとビルド環境の移行を計画しましょう。

手順を表示
  1. 現在の負荷におけるメモリプレッシャー、ディスクの空き容量、エラーの内容を記録します。キャッシュが大きいからといって、メモリ容量の大きいプランが必要とは限りません。
  2. プラン変更を希望する場合は、現在の注文番号、希望するプラン、移行要件をコンソールからチケットでお知らせください。料金と手順を事前に確認します。
  3. +1TB SSD、+2TB SSD、またはThunderbolt 5による並列接続をご希望の場合は、コンソールで選べるオプションと料金を確認してください。並列接続では、台数、ソフトウェアの用途、データのやり取り方法を事前にお知らせください。
  4. 構成変更後、マウントパス、権限、runnerのラベル、タスクのルーティングを再確認してから、本番タスクを再開します。

注意点:ストレージを追加してもメモリ容量は増えません。Thunderbolt 5で複数台を接続しても、各マシンのメモリが自動的に統合されるわけではなく、任意のソフトウェアがタスクを自動分散するわけでもありません。

2つの機種とオプションの料金を確認

支払いを完了し、入金状況を確認

お支払い方法はUSDT-TRC20、またはStripe経由のVisa、Mastercard、Amexのみです。すべて米ドル(USD)で決済されます。

手順を表示
  1. 注文内容で機種、ノード、期間、オプション、支払額を確認します。実際に利用できる決済手段は、決済画面の表示をご確認ください。
  2. USDT-TRC20で支払う場合は、現在の決済画面に表示されているネットワーク、受取情報、金額を使用してください。過去のスクリーンショットにあるアドレスを再利用しないでください。
  3. カードで支払う場合は、Stripeの決済手順に従ってカード認証を完了し、コンソールに戻って注文状況を確認してください。
  4. 支払い状況が確認できない場合は、支払い時刻、注文番号、取引IDを記録してからチケットを送信してください。理由が分からないまま再度支払わないでください。

支払い証明:オンチェーン決済の場合はトランザクションハッシュ、カード決済の場合は支払いレシートをお知らせください。カード番号全桁、セキュリティコード、パスワード、秘密鍵は送信しないでください。

請求明細や経理資料を確認・申請

まず該当する注文から支払い記録を特定して必要な資料を申請すると、引き落とし画面のスクリーンショットだけを送るより確認がスムーズです。

手順を表示
  1. コンソールの請求情報と注文履歴で該当する支払いを見つけ、金額、通貨、期間、注文番号を確認します。
  2. 利用可能な請求明細または支払いレシートを保存します。請求書や追加の経理資料が必要な場合は、コンソールから送るチケットに用途と必要な項目を記載してください。
  3. 宛名など必要な情報を送る前に、入力ミスがないか確認してください。関係のない個人情報をチケットの添付ファイルに含めないようにしましょう。
  4. 資料の種類、発行方法、対応結果はチームで確認して回答します。決済代行会社のレシートがあらゆる用途の請求書に該当するとは限りません。

注文以外のお問い合わせ:メールで support@gnumac.comまでご連絡ください。注文に関する請求のお問い合わせは、対応履歴をすべて残せるチケットの利用をおすすめします。

ワークフローを記録する

次に読む:手順から実践例まで

各ガイドでは、今必要な操作をすぐに確認できます。プロジェクト事例や技術情報はブログにまとめており、公開後は記事一覧からご覧いただけます。

状況を記録して、順に切り分ける

接続できない・ディスク警告が出たら、まず3項目を確認

まず、ネットワークに接続できないのか、認証に失敗しているのか、アプリケーションでエラーが起きているのかを切り分けます。元のエラーメッセージ、発生時刻、試した操作を記録し、設定を何度も変更しないようにしてください。

画面共有に接続できない

アドレスに到達できない、認証が拒否される、接続後に画面が真っ黒になるのは、それぞれ異なる問題です。原因が分からないままインスタンスを何度も再起動しないでください。

トラブルシューティングの手順を表示
  1. コンソールでアドレス、ポート、ユーザー名をもう一度確認し、クライアントに別のインスタンスの古い設定が残っていないか確認してください。
  2. ローカルネットワークで外向きの接続が許可されているか確認します。許可された別のネットワーク環境から再試行し、ローカルのポリシー制限かどうかを切り分けてください。
  3. SSHが使える場合は、画面共有の設定とアクセスを許可されているユーザーを確認します。どちらの方法でも接続できない場合は、それぞれのエラーを記録してチケットを送信してください。
  4. 接続できても画面に問題がある場合は、解像度と画質を下げ、クライアント名、バージョン、問題のスクリーンショットを記録してください。

チケットに添付する情報:注文番号、発生日時とタイムゾーン、クライアント、エラーの原文、SSHで接続できるかどうか。スクリーンショットでは認証情報を隠してください。

SSHのタイムアウト・認証エラー

タイムアウトはアドレス、ポート、ネットワーク経路の問題であることが多く、認証エラーの場合はまずユーザー名、公開鍵、権限を確認します。

トラブルシューティングの手順を表示
  1. 納品情報に記載された実際のポートを使って接続します。標準ポートだと決めつけないでください。 ssh -vv で、接続、ネゴシエーション、認証のどの段階で失敗しているかを確認します。
  2. タイムアウトの場合は、ローカルの外向き接続制限とインスタンスの状態を確認してください。「接続拒否」の場合は、リモートログインサービスが有効か確認します。
  3. 「 Permission denied 」と表示された場合は、対象ユーザー、公開鍵の内容、ファイル権限を確認し、ローカルで正しい秘密鍵を選択しているか確認してください。
  4. ホストの指紋が変わった場合は、コンソールで再インストールやマシン交換が行われたか確認します。原因を確認してからローカルの記録を更新し、セキュリティ警告をそのまま無視しないでください。

チケットに添付する情報:機密情報を伏せた接続コマンド、エラー末尾、発生日時とタイムゾーン。秘密鍵の内容やパスワードは送信しないでください。

ディスク容量の警告

まず書き込みを続けている大きなタスクを停止し、容量を使っているファイルを探します。システムディレクトリや他のタスクが使用中のファイルを削除しないでください。

トラブルシューティングの手順を表示
  1. まず df -h を実行して空き容量が不足しているボリュームを探します。システムディスクと追加SSDを区別し、Finderに表示される総容量だけで判断しないでください。
  2. 続けて du -sh でプロジェクト、ビルドキャッシュ、モデルのダウンロード、成果物のディレクトリを確認します。現在もタスクが書き込み中かどうかも確認してください。
  3. 保存が必要な成果物を先に移動してから、再生成できるキャッシュや失敗したダウンロードの一時ファイルを削除します。ログのローテーションが正常かも確認してください。
  4. 削除後に空き容量を再確認し、タスクを1つ再開して書き込み量の増加を観察します。空き容量が継続的に足りない場合は、必要なデータを何度も削除するのではなく、追加SSDを検討してください。

チケットに添付する情報:注文番号、該当ボリュームの容量出力、使用量が最も多いディレクトリ、最近のタスクの変化。機密性の高いファイル名を含むディレクトリ一覧全体はアップロードしないでください。

チケット送信前に、再現手順を整理

  • 対象:注文番号、インスタンス、ノード、問題の発生日時とタイムゾーン。
  • 症状:期待した結果と実際の結果、初回のみか毎回発生するか。
  • 証拠:最短の再現手順、機密情報を伏せたログ、これまでに試した確認内容。

ご注文に関するお問い合わせは、コンソールからチケットを送信してください。ご契約前の機種選びやアカウントにログインできない場合は、メールで support@gnumac.comまでご連絡ください。パスワード、秘密鍵、カード番号全桁、署名情報は送信しないでください。

手順を確認してから、利用を始めましょう。

機種、ノード、利用期間を選び、プロジェクト設定とバックアップ先をご用意ください。ご利用中のインスタンスに関するお問い合わせは、コンソールの注文から続けて手続きできます。