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

About Arm VM on Azure

About Arm VM on Azure

AzureでのArm VMについて。

KAMEGAWA Kazushi

May 13, 2023
Tweet

More Decks by KAMEGAWA Kazushi

Other Decks in Technology

Transcript

  1. AzureでのArm64使いどころなど
    かめがわ かずし(@kkamegawa)

    View Slide

  2. Who am I?
    personal:
    name: KAMEGAWA Kazushi(Last-First)
    alias: kkamegawa
    community:
    MVP: Microsoft MVP for Developer Technologies(2009-)
    Users Group: Team Foundation Server Users Group
    URL: https://dev.azure.com/tfsug/tfsuginfo
    Blog:
    URL: https://kkamegawa.hatenablog.jp
    devblog radio: https://devblog.connpass.com/

    View Slide

  3. This contents based on 2023/5/13

    View Slide

  4. https://learn.microsoft.com/ja-jp/windows/arm/overview

    View Slide

  5. Armとは
    ソフトバンク子会社(2023年現在)であるイギリス
    のArmが設計してライセンス提供するプロセッサの
    総称
    主に組み込み(ゲーム,スマートフォン)向けだが、
    Surface Pro 9のようにノートPCにも提供

    View Slide

  6. 今手に入るWindowsが動作するArmデバイス
    Lenovo ThinkPad X13s
    ThinkPad X13s Gen 1 | Windows 11 とSnapdragonを搭載した13.3型ビジネス
    PC | レノボ・ ジャパン (lenovo.com)
    Surface Pro9
    Surface Pro 9: 2-in-1 の汎用性、パワフルで、フレキシブル | Microsoft Surface
    Dell Inspiron 14(USのみ)
    Qualcomm Snapdragon Compute Platform for Dell Inspiron 14 | Dell
    USA

    View Slide

  7. Surface Pro 9(Arm)を買うと…
    8GiB RAM/256GB SSD
    キーボード/ペン
    しめて 254,320円
    円安…
    ※ USには16GB RAM/512GB SSDもある😥😥

    View Slide

  8. Windows Dev Kit 2023 (Project Volterra) を提供開始 - News Center Japan (microsoft.com)
    お安いArm開発機がお手元に!
    ※ といっても円安でUSほどお安くは…
    Surface Pro 9(Arm)から
    バッテリー/ディスプレイを抜いて、
    メモリ増設した感じ。
    32GB RAM/512GB SSD

    View Slide

  9. WindowsでのArm
    ごく一部を除きx86/x64/Arm32/Arm64のバイナリーが動作
    Intel x86/x64はトランスレーターで変換して実行
    Office, VS Code, Visual Studioなどはネイティブ有
    MS以外のものはそんなに多くない
    .NET は6以降で正式対応
    WindowsのUWPでのArm32はそろそろ廃止するから移行しろ
    よ!とアナウンスあり
    Deprecated features in the Windows client - What's new in Windows | Microsoft Learn

    View Slide

  10. LinuxでのArm
    だいたいのアプリにArm版が用意されている
    Unixはもともと多様なアーキテクチャに対応する文化
    ので、互換レイヤーというものはない
    バイナリー識別子にAArch64とArm64混在してつらい
    (特にAmd64と空目する)
    WindowsではArm64が多いかな?

    View Slide

  11. AzureでのArm
    2022/9/1から一般提供開始
    一般提供:Ampere Altra Arm ベースのプロセッサを搭載した新しい Azure Virtual Machines |
    Azure の更新情報 | Microsoft Azure
    現在日本リージョンでは提供されていない
    一番近いのは東南アジア
    個人的によく使うのはWest US2/3

    View Slide

  12. AzureでArm VMが使えるサービス
    Virtual Machine / Virtual Machine Scale Set
    Azure Kubernetes Cluster
    ※ ほかはないと思いますが、あったら教えて

    View Slide

  13. Arm VMのいいところ
    やすい
    はやい
    省電力(Azureだとユーザーには直接関係ない)

    View Slide

  14. Azureで使えるArm VMシリーズ
    Dplsv5 / Dpldsv5 (dはDドライブの有無)
    だいたいDlsv5シリーズと同じ構成
    Dpsv5 / Dpdsv5 (同上)
    だいたいDsv5シリーズと同じ構成
    Epsv5 / Epdsv5(同上)
    だいたいEsv5シリーズと同じ構成

    View Slide

  15. Support OS
    Windows 11(Preview) – Windows E3/E5必要
    Linux
    Ubuntu 18.04以降
    CentOS
    Debian 11
    Red Hat Enterprise Linux
    SUSE
    AlmaLinux
    Flatcar Container Linux
    ※ 他あったらごめん

    View Slide

  16. やすい?
    Dlsv5 Dplsv5 Cost比
    2vCPU / 4GiB $0.085 $0.068 80.0%
    4vCPU / 8GiB $0.170 $0.136 80.0%
    8vCPU/ 16GiB $0.340 $0.272 80.0%
    16vCPU/ 32Gib $0.680 $0.544 80.0%
    Dsv5 Dpsv5 Cost比
    2vCPU/8GiB $0.096 $0.077 80.2%
    4vCPU/16GiB $0.192 $0.154 80.2%
    8vCPU/32GiB $0.384 $0.308 80.2%
    16vCPU/64GiB $0.768 $0.616 80.2%
    32vCPU/128GiB $1.536 $1.232 80.2%
    • 2023/5/2現在の料金
    • West US2/Ubuntuでの見積もり。
    • 1時間単位の料金
    • 一時ストレージなし
    • IntelはHTありなのでvCPUと物理コアは2:1
    Esv5 Epsv5 Cost比
    2vCPU/16GiB $0.126 $0.101 89.3%
    4vCPU/32GiB $0.252 $0.202 89.3%
    8vCPU/64GiB $0.504 $0.403 89.1%
    16vCPU/128GiB $1.008 $0.806 89.1%

    View Slide

  17. Armで安く使うなら汎用タイプ
    (メモリ集中型はそんなに…)

    View Slide

  18. はやい?
    Azureのドキュメントにあるベンチマークを使って計測
    Azure Linux VM のコンピューティング ベンチマーク スコア - Azure Virtual Machines | Microsoft
    Learn
    Armは一覧にないのでコンパイルして実測
    sudo apt install build-essential
    ベンチマークではIntelのほうが25%くらいよい?
    ※ だいたい価格比相応?
    D2psv5 E2psv5 D2sv5 E2sv5
    1回目 23663 23664 29353 29601
    2回目 23601 23575 29485 29509
    ※ 並列オプションなし。make で実行のみ

    View Slide

  19. Arm VMの使い道
    クラウドネイティブアプリケーション
    エッジコンピューティング
    データベースとアナリティクス
    仮想化とコンテナ化

    View Slide

  20. ローカルにArmがなくてもArm開発
    Arm VM
    Visual Studio Code Server
    Remote Tunnels (visualstudio.com)

    View Slide

  21. VS Code Server
    要はセルフホスト版 vscode.dev
    ※ただし、複数人同時利用は想定されていない
    VS CodeにRemote – Tunnel拡張必要
    Arm VMでVS CodeのCLI版を実行して接続
    Visual Studio Code Server
    Remote Tunnels (visualstudio.com)

    View Slide

  22. 他Arm VMの用途としては…
    並列でたくさん並べる場合(VMSS/AKS)
    Armじゃないとコンパイルできない場合の
    selfhost agent🤔🤔

    View Slide

  23. Azure Pipelines / GitHub self-host agentで使う場合
    古い(サポート切れ).NET SDK 5以前がない
    Edge/Chrome/Firefoxなどの一部のGUI依存ツール
    がない
    ブラウザーの互換テスト用に必要
    ※ でもこんな重い処理をArmでやる必要は…

    View Slide

  24. Azure Pipelines で self-host agent!
    .NETアプリをビルドするだけ(.NET SDKのみ)ならエー
    ジェントの構築は簡単
    1. GitHubから最新エージェントを取得(OS毎)
    2. tar.gzを展開
    3. ./config.shを実行
    4. (daemon実行なら)./svc.shで登録
    Deploy an Azure Pipelines agent on Linux - Azure Pipelines | Microsoft Learn

    View Slide

  25. OrchardCoreで実測
    OrchardCoreは.NET製CMS
    OrchardCMS/OrchardCore: Orchard Core is an open-source modular and multi-tenant application
    framework built with ASP.NET Core, and a content management system (CMS) built on top of that
    framework. (github.com)
    それなりの規模(ビルド対象csprojが200)
    OS : Ubuntu 22.04 LTS
    2vCPU, 8GB RAM Standard HDD
    .NET 7 SDK(7.0.203)
    ※ あくまでも傾向程度で
    D2s_v5 D2ps_v5
    Hosted Agent

    View Slide

  26. ビルドに使ったYAML
    steps:
    - task: UseDotNet@2
    displayName: 'install .NET SDK 7.0.x'
    inputs:
    packageType: 'sdk'
    version: '7.x'
    - task: DotNetCoreCLI@2
    displayName: 'build'
    inputs:
    command: 'build'
    arguments: '$(Build.SourcesDirectory)/OrchardCore.sln -c Release -f net7.0'

    View Slide

  27. まとめ
    Armも手が届くようになったので、みんな使いましょう!
    Linuxだったらさほど気にせず使えそう
    日本リージョンにも早く来てほしい

    View Slide