AWS CDK で Mac on AWS を管理する手法についての解説です
© NTT Communications Corporation All Rights Reserved.AWS CDKでもMacを 管理したい moban
View Slide
© NTT Communications Corporation All Rights Reserved. 2自己紹介 - 氏名 - moban- 所属 - NTT Communications 株式会社- イノベーションズセンター- やっていること - パブリッククラウドとハイブリッドクラウドの検証- AWS / GCP/ Azure の検証とか- 好きなこと - IaC- クラウド- DevOps
© NTT Communications Corporation All Rights Reserved. 3Mac on AWS - 2020 年に Mac インスタンスが登場 - Mac mini を Thunderbolt 3 で Nitro System に接続したもの- AWS で Mac が利用可能に- Intel 版- ap-northeast-1 でも現在利用可能- 2022 年に M1 Mac インスタンスが GA - arm Mac が利用可能に- 現在 ap-northeast-1 では利用不可だが、 us-east-1 などでは利用可能- Apple 側からの要請によって最低利用時間として24時間必要 - 借りてから24時間経てばいつでも返却可能- 課金単位時間は1秒- mac1.metal か mac2.metal な専有ホストを借りて、その上に mac AMI を 投入して利用する - 要は Mac mini 本体をまず借りて、その上で macOS を動かすイメージ
© NTT Communications Corporation All Rights Reserved. 4値段 1時間あたり(USD)*1 *2 1ヶ月かかる料金(USD)*1 *3Intel Mac 1.083 790.59Arm Mac 0.65 474.51. us-east-1 基準 2. Intel Mac は ap-northeast-1 だと 1.399 USD 3. 1ヶ月 = 730 時間
© NTT Communications Corporation All Rights Reserved. 5CDK 化手順 1. 専有ホストで Mac を借りる 2. 起動したい Mac AMI を選択 3. 専有ホストを指定して 2. の AMI を指定して EC2 インスタンス起動
© NTT Communications Corporation All Rights Reserved. 6コード // CfnHost: CloudFormation における専有ホスト用コンポーネントconst macHost = new cdk.aws_ec2.CfnHost(scope, "MacHost", {// Arm Mac を利用するので us-east-1 の AZ を指定している// Intel Mac であれば ap-northeast-1 の AZ も利用できるavailabilityZone: "us-east-1a",// Intel Mac を借りたければ `mac1.metal` に変更するinstanceType: "mac2.metal",});
© NTT Communications Corporation All Rights Reserved. 7コード const macInstance = new cdk.aws_ec2.Instance(this, "MacInstance", {// …// インスタンスタイプには macHost の instanceType と同じものを指定するinstanceType: new cdk.aws_ec2.InstanceType("mac2.metal"),machineImage: cdk.aws_ec2.MachineImage.lookup({// macOS 12 (Monterey) を利用name: "amzn-ec2-macos-12.*-arm64",owners: ["amazon"],}),});// macOS インスタンスを専有ホストに紐付け// L2 コンストラクタには `hostId`プロパティを設定する方法がないので、// L2 コンストラクタから L1 コンストラクタをひっぱって無理矢理設定(instance.node.defaultChild as cdk.aws_ec2.CfnInstance).hostId= macHost.attrHostId;
© NTT Communications Corporation All Rights Reserved. 8まとめ - AWS Mac について解説 - 最低 24 時間の割り当て- 専有ホストによる提供- ap-northeast-1 では Intel Mac のみ提供- AWS Mac を CDK で借りる方法について解説 - 専有ホストを借りて EC2 インスタンスにその専有ホストを使うように指示するという方法でCDK でも利用可能
© NTT Communications Corporation All Rights Reserved. 9