Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Mac も IaC したい! / AWS Mac also wants to IaC!

AWS Mac も IaC したい! / AWS Mac also wants to IaC!

2023年3月24日の NTT Tech Conference 2023 で発表した「AWS Mac も IaC したい!」の講演資料です。
AWS Mac の紹介と AWS Mac を IaC で管理する方法について紹介しています。

NTT Communications

March 30, 2023
Tweet

More Decks by NTT Communications

Other Decks in Research

Transcript

  1. © NTT Communications Corporation All Rights Reserved. AWS Mac も

    IaC したい!
 NTT Communications 株式会社 
 イノベーションセンター
 福田優真

  2. © NTT Communications Corporation All Rights Reserved. 2 自己紹介
 -

    氏名
 - 福田優真 - 所属
 - NTT Communications 株式会社 - イノベーションズセンター - やっていること
 - パブリッククラウドとハイブリッドクラウドの検証 - AWS / GCP/ Azure の検証とか - 好きなこと
 - IaC - クラウド - DevOps
  3. © NTT Communications Corporation All Rights Reserved. 3 Mac on

    AWS
 - 2020 年に Mac インスタンス *1が登場
 - 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 な専有ホスト*2を借りて、その上に mac AMI を 
 投入して利用する
 - まずは Mac mini 本体を借りて、その上で macOS を動かすという手順 - 値段は1時間あたり 0.65 USD 〜 1.399 USD とお高め 
 - t2.micro で 0.0116 USD - 1ヶ月 474.5 USD 〜 1021.27 USD - Apple で購入すると 599 USD 〜 1. インスタンス = 仮想マシン 
 2. 専有して利用できる物理マシン 

  4. © NTT Communications Corporation All Rights Reserved. 4 IaC 化


    - AWS Mac を IaC 化するには次の手順を踏む 
 1. 専有ホストで Mac を借りる 
 2. 起動したい Mac AMI を選択 
 3. 専有ホストを指定して 2. の AMI を指定して EC2 インスタンス起動 
 - ここでは AWS CDK というツールを用いて例を紹介 

  5. © NTT Communications Corporation All Rights Reserved. 5 コード
 //

    M1 Mac 専有ホストを借りる 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", });
  6. © NTT Communications Corporation All Rights Reserved. 6 コード
 //

    起動したい Mac インスタンスを設定する const macInstance = new cdk.aws_ec2.Instance(this, "MacInstance", { // … 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"], }), }); // インスタンスを確保した専有ホストで起動するように設定 (instance.node.defaultChild as cdk.aws_ec2.CfnInstance).hostId = macHost.attrHostId;
  7. © NTT Communications Corporation All Rights Reserved. 7 まとめ
 -

    AWS Mac について解説 
 - 最低 24 時間の割り当て - 専有ホストによる提供 - AWS Mac を IaC する方法について解説