こんにちは🐱
カスタマーサクセス部の山本です。
Mac の M2 Pro が EC2 にやってきた (オハイオ、オレゴンのみ)ので触ってみました。
開発環境として使ったり、作成したアプリを M2 Pro から試験するときに使えそうですね。
Announcing general availability of Amazon EC2 M2 Pro Mac instances for macOS
本日より、Amazon Elastic Compute Cloud (Amazon EC2) M2 Pro Mac インスタンスが一般提供 (GA) になりました。これらのインスタンスは、iOS、macOS、iPadOS、tvOS、watchOS、visionOS、Safari などの Apple プラットフォーム用のアプリケーションを構築およびテストする際に、既存の M1 Mac インスタンスよりも最大 35% 高速なパフォーマンスを実現します。M2 Pro Mac インスタンスは AWS Nitro System を搭載しており、12 コア CPU、19 コア GPU、32 GiB のメモリ、16 コア Apple Neural Engine を搭載した Apple M2 Pro Mac Mini コンピュータ上に構築されています。
M2 Pro Mac インスタンスは、EC2 M1 Mac インスタンスと比較して 2 倍の RAM、1.5 倍の CPU コア、2 倍以上の GPU コアを提供するため、Apple 開発者はメモリを大量に使用するビルドおよびテストのワークロードを AWS に移行し、複数の Xcode を使用してより多くのテストを並行して実行できるようになります。これにより、アプリケーションの反復と製品の市場投入までの時間が短縮されます。お客様は、特定の要件を満たすために AWS 上でさらに幅広い Apple Silicon Mac にアクセスできるようになり、また、Amazon Virtual Private Cloud (VPC)、Amazon Elastic Block Store などの数十の AWS サービスを使用して Apple CI/CD を最新化できるようになりました。 (EBS)、および Elastic Load Balancing (ELB)。
Amazon EC2 Mac インスタンスは、高速 Thunderbolt 接続を介して AWS Nitro System によって独自に有効化され、最大 10 Gbps の VPC ネットワーク帯域幅と最大 8 Gbps の Amazon EBS ストレージを備えた、完全に統合され管理されたコンピューティング インスタンスとしてこれらの Mac mini コンピューターを提供します。帯域幅。EC2 M2 Pro Mac インスタンスは、macOS Ventura バージョン 13.2 以降を AMI (Amazon Machine Images) としてサポートします。
EC2 M2 Pro Mac インスタンスは、米国西部 (オレゴン) と米国東部 (オハイオ) の AWS リージョンで利用できます。詳細を確認したり、開始するには、「Amazon EC2 Mac インスタンス」を参照するか、「EC2 Mac ドキュメントリファレンス」を参照してください。
以下のユーザーガイドに仕様の解説があります。
Amazon EC2 Mac インスタンス - Amazon Elastic Compute Cloud
考慮事項の記載を見ておくと良さそうです。
Dedicated Hosts を使用して、オンデマンドインスタンスとして動かす必要があるようです。
Spot インスタンスやリザーブドインスタンスは不可で、Savings Plan には対応しているようです。
SSM Agent や AWS CLI 、cloud-Initなど、EC2 ではよく使うものは同梱しているようです。
CloudWatch で CPU 使用率を見れたりもします。
試してみる
前置き
作成した M2 Pro のグラフィカル ユーザー インターフェイス (GUI) への接続は私の MacBook Pro (M2 Pro) から実施しています。
Windows などから接続する場合は VNC ツールなどを用意してご実施ください。
Dedicated Hosts を割り当て
オレゴン、またはオハイオリージョンで、EC2 のサービス画面を開きます。 (例はオレゴンリージョンです。)
Dedicated Hosts を選択し、「Dedicated Hosts を割り当て」ボタンを押します。
以下を入力し、「割り当て」ボタンを押します。
- インスタンスファミリー:mac2-m2pro
- インスタンスタイプ:mac2-m2pro.metal
- ホストのメンテナンス:チェックなし (非対応のため)
- アベイラビリティーゾーン:us-west-2a (適当に選択)
※キャプチャ内の「名前タグ」内に "macbook" と書いてしまっています。実際のハードウェアは Mac mini です。
エラーが出ました。適当に選択したアベイラビリティーゾーン (us-west-2a) が非対応みたいですね。
以下に修正して、「割り当て」ボタンを押します。
- アベイラビリティーゾーン:us-west-2b
作成できたようです。
インスタンスを起動
「インスタンスを起動」画面から Mac を選択します。
※ キャプチャ内の「名前」内に "macbook" と書いてしまっています。実際のハードウェアは Mac mini です。
「macOS Ventura」 を選択し、「64 ビット (Mac-Arm)」を選択します。
「mac2-m2pro.metal」を選択します。
のちほど Apple Remote Desktop (ARD) を使って、グラフィカル ユーザー インターフェイス (GUI) に接続するため、キーペアを作成しておきます。
ネットワーク設定は記載割愛します。GUI 接続をするため、パブリック IP アドレスを使用して、インターネットと双方向通信が可能な設定としました。
IAM Role も記載割愛します。 SSM 用のポリシーが付いたロールを付与しました。
「テナンシー」は「専有ホスト」を選択し、先ほど割当をした Dedicated Hosts の「ホストID」を選択します。
右下にある「インスタンスを起動」ボタンを押します。
「インスタンスの起動を正常に開始しました」と出ています。
公式ドキュメント によると、起動には 6 〜 20 分くらいかかると書いてありますので、待ちます。
SSM のセッションマネージャーで接続します。(SSM だと GUI で接続はないみたいです。)
確かに Mac OS です。(ターミナルで CUI のみだと Mac 感はありません・・。)
Apple Remote Desktop (ARD) を使って、グラフィカル ユーザー インターフェイス (GUI) に接続
SSM または ssh 接続した事前準備
SSM 接続でも良いものの、せっかくなので、ssh でも接続してみます。
ssh -i キー.pem ec2-user@パブリック IP アドレス
筆者は Mac に ssh したのは初めてだったので、見慣れないバナーでした。
Finder のアイコンがあります。
ログインに使用する ec2-user のパスワードを変更します。
sudo passwd ec2-user
以下のコマンドを実行し、ARD を起動してリモート管理を有効にします。
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \ -activate -configure -access -on \ -restart -agent -privs -all
Apple Remote Desktop (ARD) を使って、グラフィカル ユーザー インターフェイス (GUI) に接続
Mac への ssh 接続からログアウト (exit) し、自分の端末で以下のコマンドを実行し、ポートフォワードします。
ssh -L 5900:localhost:5900 -i キー.pem ec2-user@パブリック IP アドレス
Finder を開いて、メニューバーの「移動」にある「サーバーへ接続」をクリックします。
vnc://localhost:5900 と入力し「接続」を押します。
ユーザー名に ec2-user と入れ、パスワードに先程変更したパスワードを入れます。
ログイン画面が出るので、再度パスワードを入れます。
ログインできました。
OS の言語は英語です。
チップが「Apple M2 Pro」になっています。(下の「日本語化」をした後に見たので日本語になってます。)
CPU は物理 8 コア、メモリは 32 GB です。
ストレージは EBS に割り当てた 100 GiB でした。
日本語化
日本語にしてみます。
「日本語」をドラッグアンドドロップで一番上に持ってくると、変更できました。
「Restart Now」を押して再起動します。
ポートフォワードが切れているので再実行します。
ssh -L 5900:localhost:5900 -i キー.pem ec2-user@パブリック IP アドレス
もう一度ログインします。
日本語になっています。
日本語が最優先になっています。
キーボード入力も日本語が選べるようになっていました。「英数」キーや「かな」キーで切り替えできました。
その他
Launchpad 画面です。
ターミナルを開いてみました。
バナー:
┌───┬──┐ __| __|_ ) │ ╷╭╯╷ │ _| ( / │ └╮ │ ___|\___|___| │ ╰─┼╯ │ Amazon EC2 └───┴──┘ macOS Ventura 13.5.2
EC2 のインスタンス画面から、CPU 使用率は確認できません。
M1 や M2 など、Apple シリコンの CPU の場合、OS 上から確認するしかないようです。参考:macOS 用の EC2 System Monitoring
料金
Dedicated Hosts の料金のみとのことです。
以下のユーザーガイドより抜粋します。
Amazon EC2 Mac インスタンス - Amazon Elastic Compute Cloud
[unit of billing] (請求の単位) は [dedicated host] (専有ホスト) です。そのホストで実行されているインスタンスには追加料金はかかりません。
以下に Dedicated Hosts の料金ページがあります。
Amazon EC2 Dedicated Host Pricing
m2 Pro は m1 よりも 1.5 倍ほど料金が上がっています。
本日 (2023/9/28) 時点では、1 時間あたり 1.56 ドルなので、1 ドル 150 円とすると、24 時間で 5616 円ですね。
テスト時などに一時的な利用に止めるのが良さそうです。
削除
環境を削除していきます。
EC2 のサービス画面からインスタンスにチェックを入れ、「インスタンスを終了」を押して、インスタンスを削除します。
公式ドキュメントによると、15 分程度かかるようです。
待つ間に作成したキーペアやセキュリティグループ (ある場合) を削除しましょう。
実際、15 分くらいでインスタンスが「終了済み」になりました。
次に、割り当てていた Dedicated Hosts を リリースしましょう。「Pending」状態ではリリースできませんので、 「Available」になるのを待ちます。
Apple シリコンの Mac は、「Available」になるには最大で 110 分かかるようです。注意ですね。
Stop and terminate your Mac instance より以下を引用します。
On Amazon Silicon Mac instances, the scrubbing workflow may take up to 110 minutes to complete.
「Available」になったら、ホストをリリースします。実際に 110 分かかりました。^^;
と思ったら、またエラーになりました。
Mac 用の Dedicated Hosts は 24 時間経たないとリリースできないのです。
以下、公式ドキュメントの記載です。
料金 - Amazon EC2 Dedicated Host | AWS
オンデマンド EC2 Mac 専有ホストには、最小ホスト割り当てと 24 時間の請求期間があることにご留意ください。
明日まで待とうと思います。
まとめ
- M2 Pro が EC2 で使用可能になった
- 使用可能なリージョンはオレゴン、オハイオのみ。リージョン内のいくつかのアベイラビリティゾーン内でのみ利用可能。
- ハードウェアは Mac Mini
- CPU は物理 8 コア
- メモリは 32 GB
- ストレージは EBS に指定した値に準ずる
- Dedicated Hosts でのみ使用可能
- オンデマンドインスタンスとしてのみ使用可能 (Savings Plan 適用可)
- Systems Manager や ssh 、VNC などを使って接続が可能
- デフォルトでは EC2 ユーザーが使用可能
- 日本語化、日本語入力可能
- 料金は Dedicated Hosts の料金となる。M1 と比較し 1.5 倍程度の価格。
- 削除する際に Dedicated Hosts の解放が必要で、 110 分程度かかる
- Dedicated Hosts は 24 時間経たないとリリースできないため、1 日分の課金は発生する
余談
今年もようやく、出勤前に富士山に登ってきました。
夜明け前にスタートし、山頂 (剣ヶ峰)で朝焼けを見る予定だったものの、あいにくのお天気でした。
下山中に雲が取れてきて、とても綺麗な景色を見ることができました。
最近トレランを始めたので、富士宮五合目から登り 2.5 時間、下り 1.2 時間で下山でき、下山後にゆっくりサウナにも入れました。
まだまだ体力不足なものの、次は往復で 3 時間を切ろうと思います。
( 普段登山をしない人だと往復で 8 時間かかるコースです。ご注意ください。 )
山本 哲也 (記事一覧)
カスタマーサクセス部のエンジニア。2024 Japan AWS Top Engineers に選んでもらいました。
今年の目標は Advanced Networking – Specialty と Machine Learning - Specialty を取得することです。
山を走るのが趣味です。今年の目標は 100 km と 100 mile を完走することです。 100 km は Gran Trail みなかみで完走しました。OSJ koumi 100 で 100 mile 砕け散りました。どこかで 100 mile やりたいです。
基本的にのんびりした性格です。座右の銘は「いつか着く」