Amazon EC2 Mac インスタンス - Amazon Elastic Compute Cloud

Amazon EC2 Mac インスタンス

Mac1 インスタンスは macOS オペレーティングシステムをネイティブでサポートします。同インスタンスは Mac ミニハードウェア上に構築され、3.2 GHz Intel 第 8 世代 (Coffee Lake) Core i7 プロセッサを搭載しています。このインスタンスは、iPhone、iPad、iPod、Mac、Apple Watch、Apple TV などの Apple デバイス用のアプリケーションの開発、構築、テスト、署名に最適です。Mac インスタンスには、SSH または Apple Remote Desktop (ARD) を使用して接続できます。

詳細については、「Amazon EC2 Mac インスタンス」および「料金」を参照してください。

Considerations

Mac インスタンスには、次の考慮事項が適用されます。

  • Mac インスタンスは、Dedicated Hosts のベアメタルインスタンスとしてのみ使用でき、Dedicated Host をリリースできる前の最低割り当て期間は 24 時間です。Dedicated Host ごとに 1 つの Mac インスタンスを起動できます。Dedicated Host は、AWS アカウント、 AWS 組織内の 組織単位、あるいは AWS 組織全体と共有することができます。

  • Mac インスタンスは オンデマンドインスタンス としてのみ使用できます。スポットインスタンス または リザーブドインスタンス では使用できません。Savings Plan を購入すると、Mac インスタンスでコストを節約できます。

  • Mac インスタンスでは、次のいずれかのオペレーティングシステムを実行できます。

    • macOS Catalina (バージョン 10.15)

    • macOS Mojave (バージョン 10.14)

    • macOS Big Sur (バージョン 11)

  • 実行中の Mac インスタンスに EBS ボリュームをアタッチする場合は、インスタンスを再起動してボリュームを使用可能にする必要があります。

  • 実行中の Mac インスタンスで既存の EBS ボリュームのサイズを変更した場合、新たなサイズを使用可能にするには、そのインスタンスを再起動する必要があります。

  • 実行中の Mac インスタンスにネットワークインターフェイスをアタッチする場合は、インスタンスを再起動して、ネットワークインターフェイスを使用可能にする必要があります。

  • AWS は、Apple ハードウェアの内部 SSD を管理またはサポートしません。代わりに、Amazon EBS ボリュームを使用することを強くお勧めします。EBS ボリュームは、他の EC2 インスタンスと同じ伸縮自在性、可用性、耐久性の利点を Mac インスタンスでもたらします。

  • Mac インスタンスで EBS のパフォーマンスを最適化するには、汎用 SSD (gp2gp3) およびプロビジョンド IOPS SSD (io1io2) の併用をお勧めします。

  • Amazon EC2 Auto Scaling では Mac インスタンスを使用できません。

  • 自動ソフトウェア更新は無効になっています。インスタンスを本番環境に置く前に、更新を適用し、インスタンスでテストすることをお勧めします。詳細については、「オペレーティングシステムとソフトウェアの更新」を参照してください。

  • Mac インスタンスを停止または終了すると、Dedicated Host でスクラブワークフローが実行されます。詳細については、「Mac インスタンスの停止と終了」を参照してください。

  • 警告

    FileVault は使用しません。保存中と転送中のデータが必要な場合に、ブートの問題やパフォーマンスへの影響を回避するには、EBS 暗号化を使用します。パーティションがロックされているので、FileVault を有効にするとホストの起動に失敗します。

コンソールを使用した Mac インスタンスの起動

以下の手順で説明しているように AWS Management Console を使用して Mac インスタンスを起動できます。Mac インスタンスには Dedicated Host が必要です。

Mac インスタンスを Dedicated Host 上で起動するには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [Dedicated Hosts] を選択します。

  3. [Dedicated Host の割り当て] を選択し、次の操作を行います。

    1. [インスタンスファミリー] で、mac1 を選択します。リストに mac1 が表示されない場合は、現在選択されているリージョンではサポートされていません。

    2. [インスタンスタイプ] で [mac1.metal] を選択します。

    3. [アベイラビリティーゾーン] で、Dedicated Host のアベイラビリティーゾーンを選択します。

    4. [数量] では 1 をそのままにします。

    5. [Allocate] を選択します。

  4. 作成した Dedicated Host を選択し、次の操作を実行します。

    1. [アクション]、[ホストへのインスタンスの起動] の順に選択します。

    2. macOS AMI を選択します。

    3. mac1.metal インスタンスタイプを選択します。

    4. [インスタンスの詳細の設定] ページで、作成した Dedicated Host に基づいて [テナンシー] と [ホスト] が事前に設定されていることを確認します。必要に応じて [アフィニティ] を更新します。

    5. ウィザードを完了し、必要に応じて EBS ボリューム、セキュリティグループ、およびキーペアを指定します。

  5. インスタンスを起動することを知らせる確認ページが表示されます。[View Instances] を選択して確認ページを閉じ、コンソールに戻ります。インスタンスの初期状態は pending です。インスタンスの状態が running に変わると、ステータスチェックに合格すると、インスタンスは準備完了になります。

AWS CLI を使用した Mac インスタンスの起動

お使いの Mac インスタンスに Dedicated Host を割り当てるには、次の allocate-hosts コマンドを使用します。

aws ec2 allocate-hosts --region us-east-1 --instance-type mac1.metal --availability-zone us-east-1b --auto-placement "on" --quantity 1

Mac インスタンスを起動するには、次の run-instances コマンドを使用します。

aws ec2 run-instances --region us-east-1 --instance-type mac1.metal --placement Tenancy=host --image-id ami_id --key-name my-key-pair

インスタンスの初期状態は pending です。インスタンスの状態が running に変わると、ステータスチェックに合格すると、インスタンスは準備完了になります。インスタンスのステータス情報を表示するには、次の describe-instance-status コマンドを使用します。

aws ec2 describe-instance-status --instance-ids i-017f8354e2dc69c4f

次に、ステータスチェックに合格した実行中のインスタンスの出力例を示します。

{ "InstanceStatuses": [ { "AvailabilityZone": "us-east-1b", "InstanceId": "i-017f8354e2dc69c4f", "InstanceState": { "Code": 16, "Name": "running" }, "InstanceStatus": { "Details": [ { "Name": "reachability", "Status": "passed" } ], "Status": "ok" }, "SystemStatus": { "Details": [ { "Name": "reachability", "Status": "passed" } ], "Status": "ok" } } ] }

SSH を使用したインスタンスへの接続

Amazon EC2 Mac インスタンスは、デフォルトではリモートルート SSH を許可しません。パスワード認証は、パスワードのブルートフォース攻撃を防ぐために無効になっています。ec2-user アカウントは、SSH を使用してリモートでログインするように設定されています。ec2-user アカウントにも sudo 権限があります。インスタンスに接続したら、他のユーザーを追加できます。

SSH を使用したインスタンスへの接続をサポートするには、SSH アクセスを許可するキーペアとセキュリティグループを使用してインスタンスを起動し、インスタンスにインターネット接続があることを確認します。インスタンスに接続するときに、キーペアの .pem ファイルを指定します。

SSH クライアントを使用して Mac インスタンスに接続するには、次の手順に従います。インスタンスの接続でエラーが発生した場合は、「インスタンスへの接続に関するトラブルシューティング」を参照してください。

SSH を使用してインスタンスに接続するには

  1. コマンドラインで「ssh」と入力して、ローカルコンピュータに SSH クライアントがインストールされていることを確認します。コンピュータがコマンドを認識しない場合は、お使いのオペレーティングシステム用の SSH クライアントを検索し、インストールします。

  2. インスタンスのパブリック DNS 名を取得します。Amazon EC2 コンソールを使用して、[詳細] タブと [ネットワーク] タブの両方でパブリック DNS 名を確認できます。AWS CLI を使用して、describe-instances コマンドを使用してパブリック DNS 名を見つけることができます。

  3. インスタンスの起動時に指定したキーペアの .pem ファイルを見つけます。

  4. 次の ssh コマンドを使用してインスタンスに接続し、インスタンスのパブリック DNS 名と .pem ファイルを指定します。

    ssh -i /path/my-key-pair.pem ec2-user@my-instance-public-dns-name

Apple Remote Desktop を使用してインスタンスに接続する

Apple Remote Desktop (ARD) を使用してインスタンスに接続するには、以下の手順に従います。

ARD を使用してインスタンスに接続するには

  1. ローカルコンピューターに、ARD をサポートしている ARD クライアントまたは VNC クライアントが、インストールされていることを確認します。macOS では、組み込みの画面共有アプリケーションを利用できます。インストールされていない場合は、お使いのオペレーティングシステム向けの ARD を検索し、インストールします。

  2. ローカルコンピューターから、SSH を使用してインスタンスに接続します

  3. 次のように passwd コマンドを使用して、ec2-user アカウントのパスワードを設定します。

    [ec2-user ~]$ sudo passwd ec2-user
  4. 次の手順に従って Apple Remote Desktop エージェントを起動し、リモートデスクトップへのアクセスを有効にします。

    [ec2-user ~]$ sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \ -activate -configure -access -on \ -restart -agent -privs -all
  5. コンピュータから、次の ssh コマンドを使用してインスタンスに接続します。前のセクションで示したオプションに加えて、ポート転送を有効にしローカルポート 5900 のすべてのトラフィックをインスタンスの ARD サーバーに転送する場合は、-L オプションを使用します。

    ssh -L 5900:localhost:5900 -i /path/my-key-pair.pem ec2-user@my-instance-public-dns-name
  6. ローカルコンピュータから、ARD をサポートしている ARD クライアントまたは VNC クライアントを使用して、ポート 5900 を通じローカルホストに接続します。例えば、macOS で画面共有アプリケーションを次のように使用します。

    1. Finder を開き、画面共有アプリケーションを起動します。

    2. [Connect to] に、「localhost」と入力します。

    3. プロンプトに従って、ec2-user を使用して ec2-user アカウント用に作成したユーザ名とパスワードでログインします。

Mac インスタンスで macOS の画面解像度を変更する

ARD またはインストールされた ARD をサポートする VNC クライアントを使用して EC2 Mac インスタンスに接続したら、displayplacer などの公開されている macOS ツールまたはユーティリティのいずれかを使用して macOS 環境の画面解像度を変更できます。

displayplacer を使用して画面解像度を変更する

  1. displayplacer をインストールします。

    brew tap jakehilborn/jakehilborn && brew install displayplacer
  2. 現在の画面情報と可能な画面解像度を表示します。

    displayplacer list
  3. 希望の画面解像度を適用します。

    displayplacer "id:<screenID> res:<width>x<height> origin:(0,0) degree:0"

    次に例を示します。

    RES="2560x1600" displayplacer "id:69784AF1-CD7D-B79B-E5D4-60D937407F68 res:${RES} scaling:off origin:(0,0) degree:0"

EC2 macOS AMI

Amazon EC2 macOS は、Amazon EC2 Mac インスタンスで実行されるデベロッパーワークロードに対して、安定性、安全性、高パフォーマンスの環境を実現するように設計されています。EC2 macOS AMI には、起動設定ツールや一般的な AWS ライブラリやツールなど、AWS との統合を容易にするパッケージが含まれています。EC2 macOS AMI には、デフォルトで以下が含まれます。

  • ENA ドライバー

  • EC2 macOS Init

  • macOS 用の EC2 System Monitoring

  • macOS 用の SSM Agent

  • AWS Command Line Interface (AWS CLI) バージョン 2

  • Xcode 用のコマンドラインツール

  • Homebrew

AWS は、AWS 所有パッケージや完全にテストされた最新バージョンの macOS バージョンへの更新プログラムを含む、更新された EC2 macOS AMI を定期的に提供します。さらに、AWS は更新された AMI を提供し、さらに完全にテストおよび検証できるとすぐに最新のマイナーバージョンアップデートやメジャーバージョンアップデートを提供します。Mac インスタンスのデータやカスタマイズ情報を保持する必要がない場合は、現在の AMI を使用して新しいインスタンスを起動してから、前のインスタンスを終了することで、最新の更新プログラムを取得できます。また、Mac インスタンスに適用するアップデートを選択できます。

オペレーティングシステムとソフトウェアの更新

softwareupdate コマンドを使用して、Appleからオペレーティングシステムのアップデートをインストールできます。

Apple からオペレーティングシステムの更新プログラムをインストールするには

  1. 次のコマンドを使用して、利用可能な更新プログラムを含むパッケージを一覧表示します。

    [ec2-user ~]$ softwareupdate --list
  2. すべての更新プログラムをインストールするか、特定の更新プログラムのみをインストールします。特定の更新プログラムをインストールするには、次のコマンドを使用します。

    [ec2-user ~]$ sudo softwareupdate --install label

    すべての更新プログラムをインストールするには、次のコマンドを使用します。

    [ec2-user ~]$ sudo softwareupdate --install --all

システム管理者は、AWS Systems Manager を使用して、事前に承認されたオペレーティングシステムの更新プログラムをロールアウトできます。詳細については、AWS Systems Manager ユーザーガイドを参照してください。

Homebrew を使用して、EC2 macOS AMI にパッケージへの更新プログラムをインストールします。これにより、インスタンスでこのパッケージの最新バージョンを使用できます。また、Homebrew を使用して Amazon EC2 macOS に共通の macOS アプリケーションをインストールして実行することもできます。詳細については、Homwbrew ドキュメントを参照してください。

Homebrew を使用して更新プログラムをインストールするには

  1. 次のコマンドを使用して Homwbrew を更新します。

    [ec2-user ~]$ brew update
  2. 次のコマンドを使用して、利用可能な更新プログラムを含むパッケージを一覧表示します。

    [ec2-user ~]$ brew outdated
  3. すべての更新プログラムをインストールするか、特定の更新プログラムのみをインストールします。特定の更新プログラムをインストールするには、次のコマンドを使用します。

    [ec2-user ~]$ brew upgrade formula

    すべての更新プログラムをインストールするには、次のコマンドを使用します。

    [ec2-user ~]$ brew upgrade
警告

この構成は現在サポートされていないため、EC2 Mac インスタンスにベータ版またはプレリリース版の macOS をインストールしないでください。ベータ版またはプレリリースの macOS バージョンをインストールすると、インスタンスを停止または終了すると EC2 Mac Dedicated Host がデグレードし、そのホストで新しいインスタンスを起動または起動できなくなります。

EC2 macOS Init

EC2 macOS Init は、起動時に EC2 Mac インスタンスを初期化するために使用します。優先順位グループを使用して、タスクの論理グループを同時に実行します。

launchd plist ファイルは /Library/LaunchDaemons/com.amazon.ec2.macos-init.plist です。EC2 macOS Init 用のファイルは、/usr/local/aws/ec2-macos-init にあります。

詳細については、https://github.com/aws/ec2-macos-init を参照してください。

macOS 用の EC2 System Monitoring

macOS 用の EC2 System Monitoring は、Amazon CloudWatch で CPU 使用率メトリクスを使用できるようにします。このメトリクスは、カスタムシリアルデバイス経由で 1 分間隔で CloudWatch に送信されます。このエージェントを有効または無効にするには、次の手順に従います。このエージェントは、デフォルトでは有効になっています。

sudo setup-ec2monitoring [enable | disable]

Mac インスタンスの EBS ボリュームのサイズを増やす

Mac インスタンスの Amazon EBS ボリュームのサイズを増やすことができます。詳細については、「Amazon EBS Elastic Volumes」を参照してください。

ボリュームのサイズを大きくした後、APFS コンテナのサイズを以下のように大きくする必要があります。

使用可能なディスク容量を増やす

  1. 再起動が必要かどうかを判断します。実行中の Mac インスタンスで既存の EBS ボリュームのサイズを変更した場合、新たなサイズを使用可能にするには、そのインスタンスを再起動する必要があります。起動中にディスク領域の変更が行われた場合、再起動は必要ありません。

    ディスクサイズに関する現在のステータスを表示します。

    [ec2-user ~]$ diskutil list external physical /dev/disk0 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *322.1 GB disk0 1: EFI ⁨EFI⁩ 209.7 MB disk0s1 2: Apple_APFS ⁨Container disk2⁩ 321.9 GB disk0s2
  2. 以下のコマンドをコピーして貼り付けます。

    PDISK=$(diskutil list physical external | head -n1 | cut -d" " -f1) APFSCONT=$(diskutil list physical external | grep "Apple_APFS" | tr -s " " | cut -d" " -f8) yes | sudo diskutil repairDisk $PDISK
  3. 以下のコマンドをコピーして貼り付けます。

    sudo diskutil apfs resizeContainer $APFSCONT 0

Mac インスタンスの停止と終了

Mac インスタンスを停止すると、インスタンスは、stopping 状態に入るまでの約 15 分間は stopped 状態のままになります。

Mac インスタンスを停止または終了すると、Amazon EC2 は基盤となる Dedicated Host 上でスクラブワークフローを実行して、内部 SSD を消去し、永続的な NVRAM 変数をクリアし、必要に応じて、基盤となる Mac mini 上の bridgeOS ソフトウェアを更新します。これにより、Mac インスタンスは、他の EC2 Nitro インスタンスと同じセキュリティとデータプライバシーを提供できます。また、bridgeOS ソフトウェアを手動で更新することなく、最新の macOS AMI を実行することもできます。スクラブワークフロー中、Dedicated Host は一時的に pending 状態になります。bridgeOS ソフトウェアを更新する必要がない場合は、スクラブワークフローが完了するまで最長で 50 分かかります。bridgeOS ソフトウェアを更新する必要がある場合は、スクラブワークフローが完了するまでに最長で 3 時間かかる場合があります。

スクラブワークフローが完了するまで、停止した Mac インスタンスを起動したり、新しい Mac インスタンスを起動したりすることはできません。完了の時点で、Dedicated Host は available 状態になります。

専有ホストが pending 状態になると、メータリングと課金が一時停止されます。スクラブワークフロー中は課金されません。

macOS AMI の通知へのサブスクライブ

新しい AMI のリリース時、あるいは BridgeOS の更新時に通知を受け取るには、Amazon SNS を使用して通知にサブスクライブします。

macOS AMI の通知にサブスクライブするには

  1. Amazon SNS コンソール(https://console.aws.amazon.com/sns/v3/home)を開きます。

  2. ナビゲーションバーで、必要に応じて、リージョンを [米国東部 (バージニア北部)] に変更します。購読する SNS 通知がこのリージョンで作成されているため、このリージョンを使用する必要があります。

  3. ナビゲーションペインで [Subscriptions] を選択します。

  4. [Create subscription] を選択します。

  5. [サブスクリプションの作成] ダイアログボックスで、次の操作を行います。

    1. [ARN のトピック] で、次の Amazon リソースネーム (ARN) のいずれかをコピーアンドペーストします。

      • arn:aws:sns:us-east-1:898855652048:amazon-ec2-macos-ami-updates

      • arn:aws:sns:us-east-1:898855652048:amazon-ec2-bridgeos-updates

      [プロトコル] の設定

    2. E メール:

      [エンドポイント] では、通知を受信するために使用できる E メールアドレスを入力します。サブスクリプションを作成した後、件名が「AWS Notification - Subscription Confirmation」とされた確認メッセージが送られてきます。このメールを開き、[サブスクリプションの確認] をクリックして受信登録を完了します。

    3. SMS:

      エンドポイントに、通知を受信するために使用する E メールアドレスを入力します。

    4. AWS Lambda、Amazon SQS、Amazon Kinesis Data Firehose (通知は JSON 形式で送信されます):

      [Endpoint] (エンドポイント) に、通知を受信するために使用する Lambda 関数、SQS キュー、または Firehose ストリームの ARN を入力します。

    5. [Create subscription] を選択します。

macOS AMI がリリースされるたびに、amazon-ec2-macos-ami-updates トピックのサブスクライバーに対し通知が送信されます。BridgeOS が変更されるたびに、amazon-ec2-bridgeos-updates トピックのサブスクライバーに対し通知が送信されます。通知が不要になった場合は、次の手順で受信登録を解除します。

macOS AMI の通知のサブスクライブを解除するには

  1. Amazon SNS コンソール(https://console.aws.amazon.com/sns/v3/home)を開きます。

  2. ナビゲーションバーで、必要に応じて、リージョンを [米国東部 (バージニア北部)] に変更します。SNS 通知はこのリージョンで作成されたため、このリージョンを使用する必要があります。

  3. ナビゲーションペインで [Subscriptions] を選択します。

  4. サブスクリプションを選択し、[アクション]、[サブスクリプションの削除] を選択します。確認のプロンプトが表示されたら、[削除] を選択します。

Mac インスタンス用の Dedicated Host を解放する

Mac インスタンスの使用が終了したら、Dedicated Host を解放することでクリーンアップできます。Dedicated Host を解放する前に、Mac インスタンスを停止または終了する必要があります。割り当て期間が少なくとも 24 時間を超えるまで、ホストを解放することはできません。

Dedicated Host を解放するには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択し、[インスタンスの状態] をクリックしてから、[インスタンスの停止] または [インスタンスの終了 ] を選択します。

  4. ナビゲーションペインで [Dedicated Hosts] を選択します。

  5. Dedicated Host を選択し、[アクション]、[ホストの解放] の順に選択します。

  6. 確認を求めるメッセージが表示されたら、[解放] を選択します。