接続前に認証情報を確認

クラウドMacへの3つの接続方法

仮想マシンではなく、専有物理マシンです。ホスト、ポート、ログイン情報はコンソールで確認できます。SSHでタスクを実行し、画面共有でGUIを操作、ファイル転送で成果物を取り出せます。

初回接続の前に、注文の割り当てが完了していることを確認してください。パスワードや秘密鍵、接続情報一式をメールに貼り付けないでください。

コマンドライン接続

まずSSHで接続し、次に鍵認証へ

ビルドやスクリプトの実行、システムの確認はSSHから始められます。接続にはコンソールに表示されたポートを使い、既定のポートだと思い込まないようにしましょう。

  1. 01

    接続情報をコピー

    コンソールで対象のインスタンスを開き、ホストアドレス、SSHポート、ユーザー名をそれぞれ確認します。パスワードの大文字・小文字や記号も正確に入力してください。以下は例です。ローカルのターミナルで各項目をご自身の情報に置き換え、パスワードは入力プロンプトで入力してください。

  2. 02

    ホストの正当性を確認

    初回接続時にホスト鍵の確認が表示されます。コンソールで確認した情報またはサポートチケットでフィンガープリントを照合してから受け入れてください。ホスト鍵が変わった場合は、再インストールやマシンの変更があったか確認します。警告を無視したり、ホストの確認を全体で無効にしたりしないでください。

  3. 03

    公開鍵を登録

    ローカルでパスフレーズ付きの専用鍵を生成し、公開鍵をリモートユーザーの認証鍵ファイルに追加します。秘密鍵はご自身のパソコンに保管してください。チームメンバーごとに鍵を用意すれば、個別にアクセスを取り消せます。同じ秘密鍵を共有しないでください。

  4. 04

    確認後、パスワード認証を無効化

    接続中のセッションは維持したまま、別のターミナルを開いて鍵認証で接続できるかテストします。成功を確認し、コンソールから復旧できる状態を整えてから、SSHサービスの設定でパスワード認証を調整してください。設定の構文を確認し、システムのサービス管理方式に沿って反映します。パスワード認証を無効にしても、すべての対話型認証が無効になるわけではありません。

ローカルのターミナルで実行。まず3つの接続情報を置き換えてください

HOST='控制台中的主机地址'
SSH_PORT='控制台中的SSH端口'
REMOTE_USER='控制台中的用户名'
ssh -p "$SSH_PORT" "$REMOTE_USER@$HOST"

ssh-keygen -t ed25519 -f "$HOME/.ssh/xcodenet_ed25519"
cat "$HOME/.ssh/xcodenet_ed25519.pub" | ssh -p "$SSH_PORT" "$REMOTE_USER@$HOST" 'umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys'

ssh -i "$HOME/.ssh/xcodenet_ed25519" -p "$SSH_PORT" "$REMOTE_USER@$HOST"

公開鍵を追加するコマンドは一度だけ実行してください。鍵がすでにある場合は既存ファイルを上書きせず、別のファイル名を指定します。認証方式、ポート、ファイアウォールを変更する前に復旧方法を確認し、マシンに接続できなくなる事態を防ぎましょう。

接続後の確認記録

arm64を確認してビルドを実行

以下は操作手順の例であり、インスタンスのリアルタイム出力ではありません。Xcodeでのビルドにはプロジェクトと適切なツールパスが必要です。Fastlaneで配布する場合は、ご自身の署名設定とリリース権限も必要です。

xcodenet — tokyo-m4 — ssh
$ ssh -p "$SSH_PORT" "$REMOTE_USER@$HOST"
Welcome to macOS
$ uname -m
arm64
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ cd ~/workspace/App
$ xcodebuild -scheme App archive
BUILD SUCCEEDED
$ fastlane beta
Successfully uploaded to TestFlight

出力でアーキテクチャを確認

uname -m 現在の実行アーキテクチャを確認します。ネイティブのツールチェーンはarm64環境に合わせてください。依存関係でエラーが出たら、まずバイナリのアーキテクチャを確認しましょう。接続できても、環境設定が完了しているとは限りません。

まずシステムを確認

ビルド前にツールパスを確認

xcode-select -p 現在の開発ツールのディレクトリを表示します。Xcodeのバージョンを切り替えたら、パスを再確認し、プロジェクトのSDK、scheme、署名要件も確認してください。

次にツールチェーンを確認

配布前に権限設定を確認

Fastlaneで配布するには、有効な証明書、プロビジョニングプロファイル、リリース権限が必要です。機密ファイルはアクセス制限のあるディレクトリに保管し、コードリポジトリにコミットしたり、公開ビルドログに出力したりしないでください。

最後にリリースを確認
GUIで接続

画面共有で操作、SSHトンネルで保護

Xcodeやシミュレータ、システム設定を操作するときにデスクトップを開きましょう。GUI操作は往復遅延や回線の安定性に左右されます。まず接続を安定させてから、画質を段階的に上げてください。

macOS標準の画面共有を使う

ローカルのFinderで「移動」から「サーバへ接続」を開き、コンソールに表示された接続先を入力します。ユーザー名とパスワードには、そのインスタンスのGUIログイン情報を使ってください。コンソールのアカウント情報をマシンのパスワードとして使わないでください。

下記のSSHトンネル経由で接続する場合、接続先は vnc://127.0.0.1:5901です。トンネルを実行しているターミナルは開いたままにしてください。閉じるとポート転送が切断されます。トンネルを迂回するために、デスクトップサービスをインターネットに公開しないでください。

Macからの接続におすすめ

VNC対応クライアントを使う

クライアントにホスト、ポート、インスタンスの認証情報を入力します。SSHトンネルに対応しているか、暗号化接続が明示されているクライアントを選びましょう。VNCプロトコルは、すべての実装で通信が暗号化されるとは限りません。「接続済み」と表示されただけで安全と判断しないでください。

まずはシングルディスプレイと低めの解像度を使い、不要なデスクトップアニメーションをオフにします。文字を扱う作業では読みやすさを優先してください。動画のプレビューにはプロキシ素材を使い、最終出力はローカルにダウンロードして確認しましょう。

操作の滑らかさを優先し、画質は後から調整

暗号化トンネルの例:リモートのデスクトップサービスを有効にし、ポートはインスタンスの設定に合わせてください

VNC_PORT='5900'
ssh -N -L "127.0.0.1:5901:127.0.0.1:$VNC_PORT" \
  -i "$HOME/.ssh/xcodenet_ed25519" \
  -p "$SSH_PORT" "$REMOTE_USER@$HOST"

この例ではローカルポートをループバックアドレスにのみバインドするため、ローカルネットワークには公開されません。ローカルの5901番ポートが使用中の場合は、空いているポートに変更し、クライアントの接続先も合わせて更新してください。画面が真っ黒な場合は、まずリモートユーザーのセッションとデスクトップサービスを確認しましょう。クライアントを何度も再インストールする必要はありません。

ファイル同期

一時的な転送はscp、繰り返しの同期はrsync

ファイル転送にはSSHと同じホスト、ポート、鍵を使います。まず小さなファイルでパスと権限を確認してから、プロジェクト全体を転送してください。コマンド内のディレクトリは実際のものに置き換えます。

scp:成果物を一度だけ転送

アーカイブ、ビルドログ、完成した成果物の転送に適しています。scp ポート指定は大文字の -Pを使います。 ssh の小文字の -p とは異なります。転送先のリモートディレクトリは、事前に作成し、書き込み可能にしておいてください。

単発転送

rsync:更新が続くプロジェクトを同期

コードや素材の差分同期に適しています。転送元ディレクトリ末尾のスラッシュは、ディレクトリ内の内容を同期することを示します。初回は --dry-run を付けて対象を確認できます。リモート側にしかないファイルを削除しないよう、削除オプションを安易に追加しないでください。

差分同期

リモートディレクトリを確認してください。以下の例には削除操作は含まれていません

scp -P "$SSH_PORT" -i "$HOME/.ssh/xcodenet_ed25519" \
  ./App.zip "$REMOTE_USER@$HOST:~/uploads/"

scp -P "$SSH_PORT" -i "$HOME/.ssh/xcodenet_ed25519" \
  "$REMOTE_USER@$HOST:~/exports/App.zip" ./downloads/

rsync -av --dry-run \
  -e "ssh -p $SSH_PORT -i $HOME/.ssh/xcodenet_ed25519" \
  ./project/ "$REMOTE_USER@$HOST:~/workspace/project/"

rsync -av \
  -e "ssh -p $SSH_PORT -i $HOME/.ssh/xcodenet_ed25519" \
  ./project/ "$REMOTE_USER@$HOST:~/workspace/project/"

大規模プロジェクト、モデルファイル、メディア素材用に容量を増やしたい場合は、外付けSSDを追加できます。+1TBは$2.2/日、+2TBは$4.4/日です。追加ディスクを利用しても、販売中の各モデルの標準ストレージ容量は変わりません。接続後、まず df -h で実際のマウント先と空き容量を確認し、ダウンロード、キャッシュ、書き出し先を設定してください。

圧縮済みの動画、音声、アーカイブは、再圧縮して転送しても効果が出にくい場合があります。重要な成果物を転送したら、ファイルサイズやチェックサムを確認し、ローカルにもコピーを保管しましょう。同期に成功しても、バックアップが完了したとは限りません。

6拠点から、回線に合わせて選択

近い都市を選び、操作感を試す

シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部、米国西部の各拠点で、2種類のモデルを提供しています。地域の目安は拠点選びの参考であり、遅延を保証するものではありません。利用可能状況はコンソールでご確認ください。

シンガポール

東南アジアからの利用で比較候補になります。画面共有では、利用場所から拠点までの往復遅延を確認しましょう。チームで自動ビルドを行う場合は、コードリポジトリや成果物ストレージへの転送経路も確認してください。

2モデルから選択

日本(東京)

東アジアからの利用で候補になります。GUIでデバッグする場合は、テキストのスクロールやウィンドウのドラッグを試してください。SSHが中心なら、依存関係のダウンロード速度とビルド成果物の転送速度も比較しましょう。

2モデルから選択

韓国(ソウル)

北東アジアからの利用で比較候補になります。リモートシミュレータの操作は回線の揺らぎに影響されやすいため、同じ解像度と画質でテストし、クライアント設定の違いを拠点の差と混同しないようにしましょう。

2モデルから選択

香港

中国南部や東南アジアからの利用で比較候補になります。まず有線接続または安定したネットワークを使ってWi-Fiの影響を除き、画面共有の操作感と連続転送の安定性を確認してください。

2モデルから選択

米国東部

北米東部や西ヨーロッパからの利用で候補になります。CIタスクでは、操作する場所から拠点までの距離だけでなく、チームのコードソース、依存サービス、成果物ストレージへの経路も比較しましょう。

2モデルから選択

米国西部

北米西海岸からの利用で比較候補になります。対話型の開発では往復遅延を、バッチビルドではタスクの実行から成果物の受け取りまでの所要時間を重視しましょう。用途によって最適な拠点は異なります。

2モデルから選択

遅延の数値だけでなく、実際の操作感を確認

割り当て済みのホストで、まず ping -c 10 "$HOST"を実行し、往復時間とパケットロスを確認します。ICMPに応答しないネットワークもあるため、それだけでSSHが使えないとは判断できません。同じクライアント設定でデスクトップを操作し、同じテストファイルを転送してみましょう。利用日時、現地のネットワーク、解像度、結果を記録しておくと、サポートチケットで状況を再現しやすくなります。

このページでは、地域ごとの目安を実測遅延として示していません。利用中の通信事業者、地域間のルーティング、Wi-Fi環境、クライアントの画質設定によって使い心地は変わります。地図上の距離だけで判断せず、まず1日単位でワークフローを試してから利用期間を延長するか決めると安心です。

セキュリティ設定

一度に一項目ずつ変更し、その都度再接続を確認

専有ノードでも、アクセス範囲の設定は必要です。「鍵、接続元、サービス、後片付け」の順に権限を絞り、必ず確認済みの復旧手段を確保してください。

  1. 01

    ポートを変更

    SSHの待ち受けポートを変更すると、一般的なスキャンによるノイズを減らせますが、鍵認証の代わりにはなりません。ポート転送とネットワークルールで変更が許可されていることを確認します。クライアント設定とチームの記録を更新し、新しいセッションから接続できるかテストしてください。

  2. 02

    接続元IPを制限

    インスタンスで利用できるアクセスルールを設定し、必要な接続元だけを許可します。会社や自宅のグローバルIPアドレスは変わることがあり、モバイル回線では接続元が切り替わる場合もあります。ルールを適用する前に現在の接続元IPを確認し、変更後の復旧手順も把握しておきましょう。

  3. 03

    ファイアウォールを有効化

    macOSのアプリケーションファイアウォールと、ポートや接続元で絞り込むルールは別の役割を持つため、それぞれ確認してください。必要な接続サービスだけを許可し、使っていないサービスは無効にします。変更するたびに別のターミナルからSSHとデスクトップへの接続をテストし、複数の変更をまとめて適用しないでください。

  4. 04

    利用終了前に整理

    まずプロジェクト、ビルド成果物、実験記録を同期します。次に一時的なリリース権限を取り消し、チームの公開鍵を削除し、証明書やキャッシュに含まれる機密ファイルを消去してください。バックアップを開けることを確認してから作業を終了しましょう。利用期間終了後のデータ保管に頼らず、バックアップを取ってください。

サポートチケットにはインスタンスID、症状、確認結果のみを記載してください。秘密鍵、ログインパスワード、署名証明書のパスワード、カード番号は送信しないでください。スクリーンショットでも認証情報を隠してください。サポート担当者にインスタンスの操作を依頼する場合は、チケットに許可する範囲を明記してください。

接続トラブルの確認

接続できないときは、まず5項目を確認

エラーをタイムアウト、接続拒否、認証失敗に分けて考えると、何度も接続を試すより早く原因を見つけられます。順番に確認して元のエラーを記録し、ヘルプページまたはコンソールからサポートチケットを送信してください。

  1. 01

    注文とインスタンス

    支払いと割り当ての状態を確認し、正しいインスタンスの詳細を開いてください。接続情報が表示されない場合は、まず注文状況を確認します。アドレスを推測したり、別のインスタンスの古いメモを使ったりしないでください。

  2. 02

    アドレスとポート

    コンソールに表示されるホスト、ポート、ユーザー名を一つずつ照合してください。タイムアウトの場合はネットワークとアクセスルールを優先して確認します。「接続拒否」の場合は、サービスの待ち受け状態、ポート、転送設定を確認してください。

  3. 03

    認証と鍵

    認証に失敗する場合は、正しい秘密鍵、リモートユーザー、公開鍵の認証ファイルを指定しているか確認します。 ssh -v で認証の進行状況を確認できます。ログを共有する前に、ホスト名、ユーザー名、ローカルパスなどの機密情報を削除してください。

  4. 04

    ローカルネットワークとトンネル

    プロキシ、会社のネットワークポリシー、最近変更したファイアウォールルールを確認してください。トンネル経由でデスクトップに接続する場合は、SSHが動作していて、ローカルポートが競合していないことを確認します。SSHは接続できてもデスクトップが真っ黒な場合は、GUIセッションとデスクトップサービスを確認してください。

  5. 05

    サポートチケットの情報を整理

    インスタンスID、拠点、モデル、発生日時とタイムゾーン、接続方法、エラー全文、試した手順を記載してください。直前にシステムを再インストールしたか、セキュリティ設定を変更したかも伝えると、変更と障害の関連を判断しやすくなります。

利用時間を選んで、いつもの方法で接続

クラウドMacは1日$21.4から。モデル、都市、利用期間を選び、支払いと割り当てが完了したら、コンソールで接続情報を確認できます。初回はまずSSH接続を確認し、その後デスクトップと開発環境を準備しましょう。