Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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/

Slide 3

Slide 3 text

This contents based on 2023/5/13

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

今手に入る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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

やすい? 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%

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

はやい? 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 で実行のみ

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

ビルドに使った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'

Slide 27

Slide 27 text

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