AWS EC2 の Mac インスタンス ( mac1 ) で Mac 関連の挙動を実体験したメモ

AWS EC2 の Mac インスタンス ( mac1 ) で Mac 関連の挙動を実体験したメモです。

背景

基本 Windows ユーザーですが、IoT 系でいくつかのセットアップ系ドキュメント書いてて、絶妙に Mac で流れが違いサポートに悩ましさがありました。

初期状態的な Mac の最近の話だと Monterey で Python まわりが結構変わっていて python コマンド叩けなくて python3 コマンド叩ける状態で ESP32 や M5Stack 関連のコンパイルが python コマンドなのでうまく動かなかった件のサポートが結構大変でした。

M5Stack V2.6 の USB ドライバが、あと一押し OS での許可が必要な挙動があるですが見逃しやすくて、許可しなくてもインストールした気になりがちあたりも目で見ないと分からないということもありました。

手元に Mac Book はあるものの、色々インストールしてて完全初期の状態ではないですし、世代もいくらか前なので最新のものを使われている方のトラブルは分かりにくいのが悩ましいところです。

ということで、ならば、少々お金はかさむが1日~数日程度の利用で、最新の Mac の状態を触るためにAWS EC2 の Mac インスタンス ( mac1 ) でやってみようという思考に至りました。

専有ホストのクオータ解除がちょっと手間取った

Amazon EC2 の Service Quotas – Amazon Elastic Compute Cloud

こちらを参考に進めました。最初にバージニア北部でやりました。

image

EC2 > 制限 から専有ホスト MAC の現在の制限を確認したら 0 でした。

image

指定のリージョンの Service Quotas で Amazon EC2 のところから mac1 と mac2 のリクエストをしました。

image

リクエストの様子。

image

こんな感じで履歴にも残っているので待ちます。だいたい半日後にクォータの引き上げが実行されました。

mac1 と mac2 同時申請したので混乱させてしまったらしく、最終的に mac1 にまとめて対応していただけました。

手順的にはよくわかったので、このあと東京リージョンでもクォータ引き上げを行いました。

Mac インスタンス立ち上げ方

EC2 M1 Mac インスタンスがGAされていたので立ち上げてみた | DevelopersIO

立ち上げ方はこちらを参考にしました。

  • 専有ホストの確保
  • 専有ホストにインスタンスを作成
  • セキュリティグループで SSH 22 ポートと VNC 5900 ポートを解放
  • インスタンスに登録した鍵ファイルと共にパブリック IP に SSH でアクセス
  • VNC の起動コマンドを実行
  • ec2-user のパスワードを変更
  • VNC Viewer でパブリック IPにアクセス

このあたりを作業して、

image

無事アクセスできました。これは localhost でバイパスしてますが、最終的に セキュリティグループで VNC 5900 ポートを解放してバイパスせずに直アクセスするようにしました。

東京リージョンはさすがアクセスが高速

image

バージニア北部リージョンだとキーボードの入力が遅すぎて、複雑なパスワードを設定できないくらいで泣きそうでしたが、東京リージョンだとサクサク入力できてマウスの反応も良く作業しやすかったです。

ひさびさに近いリージョンメリットをリアルに感じました。

ハマり知見で助けられた記事

使ってみたよ記事は多かったのですが、深く使った方の知見があまり見つけられず、かなり色々と何かを踏み抜いた気がします。再起動後の復帰が遅かったり、設定がミスっていると永久にステータスチェックから帰ってこないなどいろいろありました。

こちらの記事にめちゃくちゃ助けられました。ありがとうございます。

image

とくに、日本語設定してから再起動したらステータスチェックで全然復帰しない。怒られまくるというのが、これらの記事で確証が持てました。

Python 実体験

とにもかくにも素の環境で試せるのはうれしいです。ためしに、Python コマンドの実体験をしてみます。

image

環境設定 > ソフトウェアアップデートで OS を確認します。

image

アプリケーション > ユーティリティ にアクセス。

image

ターミナルを起動します。

image

起動しました。

python --version

コマンドを打ち込んでみます。

image

結果が出ました。

zsh: command not found: python

おおー、やっぱり python コマンド反応しない。

python3 --version

コマンドを打ち込んでみます。

image

結果が出ました。

Python 3.10.6

やはり python3 コマンドは通ります!なるほど!

image

AWS EC2 の Mac インスタンス ( mac1 ) はインスタンス単位じゃなくて、専有ホストがどれだけ生きてるか(リリースされないか)で課金されるので、今回は 1 日ほど専有ホストで動かしてリリースして、無事に課金が落ち着いたことも確認できました。下手に生き残るとかなり高額になるのでホッとしました。

こうやって、じかに検証できるのってめっちゃ助かりますね。1 日で、いろいろなもののインストール中のフローや、ちょっとクセのある USB ドライバ系の挙動確認などで有意義に作業させていただきました。

いかんせん 1 日で 3000 ~ 5000円?と利用費用がかさみやすいのでシーンは限られますが、お仕事でハンズオンや技術資料を作るときには、確認して精度を高めたい部分は、こういう風にしっかりコストをかけて確認するのも良いなと思いました。

一方で 1 ヶ月で 10 万を越えるので、何度も初期状態にまっさらにしないで設定を積んでく感じなら、いままでどおり一つの Mac 環境でいけるので Mac mini 実機でいいシーンもありますね。実際 Mac インスタンスって Mac mini のようなんですよね。

ともあれ、Mac インスタンスを立ち上げて初期状態の挙動を体験することは、とってもロマンがありました!楽しかったです!