$30 off During Our Annual Pro Sale. View Details »

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 株式会社 

    イノベーションセンター

    福田優真


    View Slide

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

    - 氏名

    - 福田優真
    - 所属

    - NTT Communications 株式会社
    - イノベーションズセンター
    - やっていること

    - パブリッククラウドとハイブリッドクラウドの検証
    - AWS / GCP/ Azure の検証とか
    - 好きなこと

    - IaC
    - クラウド
    - DevOps

    View Slide

  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. 専有して利用できる物理マシン 


    View Slide

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

    - AWS Mac を IaC 化するには次の手順を踏む 

    1. 専有ホストで Mac を借りる 

    2. 起動したい Mac AMI を選択 

    3. 専有ホストを指定して 2. の AMI を指定して EC2 インスタンス起動 

    - ここでは AWS CDK というツールを用いて例を紹介 


    View Slide

  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",
    });

    View Slide

  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;

    View Slide

  7. © NTT Communications Corporation All Rights Reserved. 7
    まとめ

    - AWS Mac について解説 

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


    View Slide

  8. © NTT Communications Corporation All Rights Reserved. 8

    View Slide