開発・ビルド・推論を1台のクラウドMacに集約
VMKeepは、仮想マシンではないApple Silicon専有物理マシンを365日継続稼働で提供します。チップ、メモリ、ツールチェーンを固定し、MLX推論、モバイルビルド、リモートコラボレーションを再利用可能な実行環境に変えられます。
- 3件
- 開発・ビルド・推論パス
- 3プラン
- 固定Apple Silicon構成
- 5か所
- 注文可能なノードまたはデータセンター
タスクに必要な環境を見極め、ノードを長期利用するか決める
クラウドMacへの移行に適したタスクには、macOSまたはApple Siliconへの依存、ローカルの稼働時間を超える実行、固定環境での結果再現という3つの特徴があります。短時間のローカル検証だけなら、既存の端末で十分な場合もあります。
ワークスペースをリモートに置く
SSHでコマンドライン開発と自動化を行い、VNCでmacOSのGUIを操作します。コード、依存関係、ローカルサービスを保持でき、毎日環境を作り直す必要がありません。
- 入力
- リポジトリ、依存関係ロックファイル、開発ツール
- 実行
- 対話型開発、デバッグ、短期コラボレーション
- 成果物
- コミット履歴、テスト結果、再利用可能なワークスペース
固定マシンにパイプラインを任せる
runner、Xcode、CocoaPods、Node.js、依存キャッシュを同じ物理ノードに配置し、毎回同じディレクトリ、バージョン、権限境界でビルドを実行します。
- 入力
- ソースコード、ビルドパラメータ、承認済み署名素材
- 実行
- テスト、パッケージ化、アーカイブ、失敗時の再試行
- 成果物
- ログ、テストレポート、追跡可能なビルド成果物
固定モデル評価のハードウェア基準
明確なチップとメモリ構成でMLXを実行し、モデルの量子化バージョン、ピークメモリ、TTFT、持続スループットを記録して、端末ごとの結果差を防ぎます。
- 入力
- モデル重み、量子化パラメータ、評価データセット
- 実行
- 推論サービス、バッチ評価、ログ収集
- 成果物
- API、ベンチマークデータ、構成選定の根拠
モデルファイルから呼び出し可能なAPIまで、最短の検証経路をまず通す
初回デプロイで複雑なオーケストレーションを組む必要はありません。まずノード上でモデルを読み込めること、リクエストが返ること、メモリが増え続けないことを確認し、その後、管理対象の呼び出し元に公開します。これによりモデル互換性とネットワークの問題を切り分けられます。
-
01
モデルと検証情報を準備
モデルの出所、バージョン、量子化方式、コンテキスト長、ファイルのチェックサムを記録します。モデルディレクトリとサービスコードを分離し、起動ロジックを変えずに量子化版を交換できるようにします。
-
02
独立した実行環境を構築
PythonとMLX関連依存関係のバージョンを固定し、インストール一覧をリポジトリに保存します。まず単発のCLI推論を実行し、トークナイザー、重み形式、メモリ要件を確認します。
-
03
ローカル待受サービスを起動
サービスはまずローカルアドレスで待ち受け、ヘルスチェック、リクエストタイムアウト、構造化ログを追加します。固定プロンプトで応答形式を確認し、TTFTとピークメモリを観測します。
-
04
アプリから呼び出す
ローカルリクエストが安定したら、チームのネットワークポリシーに従ってアクセス範囲を開放します。呼び出し元はタイムアウト、再試行、リクエストIDを保持し、サーバーはモデルバージョンと推論パラメータを記録します。
curl -X POST http://127.0.0.1:8080/infer \
-H "Content-Type: application/json" \
-d '{
"prompt": "Summarize build log",
"max_tokens": 128
}'
- まず確認
- モデルの読み込み完了、プロセスメモリの安定性
- 次に記録
- TTFT、合計実行時間、出力token数
- 最後に公開
- 待受範囲、アクセス制御、呼び出し元のタイムアウト
ハードウェアと入力条件を固定してこそ、評価結果を比較できる
スループットの数値だけを記録してはいけません。モデルバージョン、量子化方式、コンテキスト長、同時実行数、ウォームアップ回数で結果は変わります。まずテスト条件を固定し、そのうえでモデル変更や構成アップグレードを判断します。
再検証できる評価で残すべき項目
- ハードウェア基準:チップ、メモリ、OSバージョン、使用可能ディスク。
- モデル基準:モデルバージョン、量子化形式、コンテキスト長、バッチサイズ。
- 実行基準:ウォームアップ回数、同時実行数、プロンプトセット、停止条件。
- 結果基準:ピークメモリ、TTFT、持続スループット、エラー、終了理由。
| 記録項目 | 固定条件 | 用途 |
|---|---|---|
| 量子化バージョン | 同一モデル・同一コンテキスト長 | 精度、メモリ、速度のトレードオフを比較 |
| ピークメモリ | 同一入力・同時実行数 | 構成に安定稼働の余裕があるか判断 |
| TTFT | 同一ウォームアップ状態 | 対話型リクエストの待ち時間を評価 |
| 持続スループット | 同一出力長 | 長文出力とバッチ処理の性能を評価 |
| 失敗記録 | リクエストIDとログを保持 | モデル、メモリ、サービス、呼び出しの問題を切り分け |
継続ビルドを6つの確認可能な納品ポイントに分解
固定物理ノードの価値は「Xcodeを実行できる」ことだけではありません。ソース、依存関係、テスト、署名操作、アーカイブ場所の境界を明確にできます。失敗時も環境差を推測し直さず、実行順に沿って原因を特定できます。
-
01
コードを取得
制限付き認証情報で指定リポジトリを読み込み、ブランチ、コミット、サブモジュールの状態を固定します。
-
02
依存関係を復元
ロックファイルに従って依存関係をインストールし、キャッシュディレクトリをプロジェクトとバージョンごとに分離して古いキャッシュの混入を防ぎます。
-
03
ビルドを実行
workspace、scheme、configuration、destinationを明確にし、完全なコマンドを保存します。
-
04
テストを実行
ユニットテスト、UIテスト、失敗ケースを分けて記録し、機械可読なレポートを保持します。
-
05
署名を処理
署名素材の読み取り範囲を制限し、証明書の内容や機密認証情報をビルドログに出力しません。
-
06
成果物をアーカイブ
コミットとタスク番号ごとにアーカイブ、ログ、テストレポートを保存し、クリーンアップ方針を設定します。
まず失敗段階を確認し、テスト再実行、依存関係の再構築、再アーカイブのいずれかを判断します。キャッシュ無効、ネットワーク障害、コード不具合には異なる再試行戦略を適用します。
JavaScript依存関係とネイティブプロジェクトは同じバージョン記録で管理
React NativeビルドはNode.js、パッケージマネージャー、CocoaPods、Xcodeにまたがります。JavaScriptパッケージのバージョン固定だけでは不十分です。Ruby、Pods、Xcodeプロジェクト設定、ビルドコマンドも再現可能な一覧に含めます。
依存関係のインストールから自動リリースまで同じ作業ディレクトリで進める
ランタイムとパッケージマネージャーのバージョンを固定し、ロックファイルの指紋でキャッシュを分離します。
Podsの状態、scheme、ビルド構成、対象デバイスを記録します。
コミット番号、ビルドタスク、成果物ディレクトリを関連付けます。
キャッシュの境界
JavaScriptパッケージ、Pods、Xcode派生データのキャッシュを個別に管理します。キャッシュヒットで高速化できますが、バージョン不一致を覆い隠してはいけません。
記録推奨:ロックファイルの概要、Podsの状態、Xcodeバージョンリリースの境界
自動化スクリプトは実行に必要な認証情報だけを読み取ります。ログでは機密情報を隠し、ビルド終了後にチーム方針に従って一時ファイルを削除します。
保持推奨:コミット番号、タスク番号、成果物のチェックサム自動化はSSH、GUI操作はVNCで行う
2つの接続方式は同じ専有物理マシンで利用できますが、用途は異なります。初回接続後にパスワードを更新し、SSH鍵を設定して、認証情報の配布範囲を制限してください。接続情報と実際の利用可能状況は、コンソールのリアルタイム表示を基準にします。
CLIと自動タスクに適する
- リポジトリ操作、依存関係のインストール、サービス起動
- runner管理、ログ確認、プロセスチェック
- ポート転送、管理対象APIの検証
macOS GUIに適する
- Xcodeプロジェクト設定、シミュレーター操作
- ウィンドウ操作が必要なデバッグと確認
- リモートデモ、短期チームコラボレーション
地域をまたぐ協業、一時的な増設に適する
- メンバーの役割に応じて最小限の必要権限を付与
- プロジェクト離脱後は速やかに鍵を失効
- レンタル終了前にデータをエクスポートし、認証情報を削除
複数ノードをキューで分担し、1台にすべてのタスクを詰め込まない
チームは異なる物理ノードにrunner、モデル実験、ビルドキューを割り当てられます。各ノードでタスク範囲、環境バージョン、成果物ディレクトリを個別に記録すれば、共有の混在環境より障害特定と容量計画が容易になります。
依存関係の復元、テスト、アーカイブを固定ビルドディレクトリで実行。
JavaScript、Pods、Xcode派生データのキャッシュを分離。
チップ、メモリ、モデルバージョン、入力条件を固定。
メモリの余裕とタスクの実行時間で構成を選ぶ
3プランすべてApple Silicon専有物理マシンで、仮想マシンではありません。軽量検証はコストを抑え、継続パイプラインはキャッシュと同時実行、高メモリ推論はモデル読み込み後のピーク使用量を確認します。
VMKeep M4 Core
M4 · 16GB · 256GB
単一プロジェクト開発、軽量iOSビルド、MLX環境検証、小規模モデルの互換性テストに適しています。ストレージに余裕がない場合は、キャッシュと成果物の削除を早めに計画してください。
VMKeep M4 Plus
M4 · 24GB · 512GB
常駐runner、中規模プロジェクトの依存キャッシュ、React Native継続ビルド、より大きなメモリ余裕が必要なMLX推論実験に適しています。
VMKeep M4 Pro
M4 Pro · 64GB · 2TB
高メモリMLX推論、大規模モデルの量子化比較、並列実験、高負荷ビルドキューに適しています。実際のモデルと同時実行パラメータで事前に検証してください。
3つのモデルすべてが上記5ノードの注文対象です。実際の利用可能状況はコンソールのリアルタイム表示を基準にします。
実際のタスクを固定クラウドMacに割り当てる
構成を選び、シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部のいずれかのノードを選択します。レンタル期間は日、週、月、四半期から指定でき、注文とマシン管理はコンソールで完了します。