Slide 1

Slide 1 text

各クラウドサービスにおける.NETの対応と見解 1 .NETラボ勉強会 12月

Slide 2

Slide 2 text

山田顕人 == Kento.Yamada == ymd65536 自己紹介 2 ● 活動・仕事など ○ さまざまなクラウドを併用 ○ MSP向け内製システムの開発 ○ .NETラボ運営、Azure PoC部 ● 受賞歴 ○ Microsoft MVP for Developer Technologies ○ LINE Expert ○ Google Cloud Partner Top Engineer 2025 DataAnalytics ● 最近のトピック ○ コンピュータシステムの理論と実装で査読を担当 ○ 今週はレモンサワー飲み過ぎ説 https://www.oreilly.co.jp/books/9784 814400874/

Slide 3

Slide 3 text

お伝えする内容 3 .NET Confが開催&.NET9がリリースされた。 ● 現在の.NETがAzure以外のクラウドでどこまで動作するのか ● .NET Aspireはどういう環境で動作するのか .NETのなかでも動作環境に関する話題

Slide 4

Slide 4 text

4 引用:Welcome to .NET 9 - .NET Conf 2024 Keynote https://youtu.be/ikSNL-lxolc?feature=shared

Slide 5

Slide 5 text

5 引用元:https://youtube.com/playlist?list=PLdo4fOcmZ0oXeSG8BgCVru3zQtw_K4ANY&feature=shared 視聴回数:54,009回 動画本数:98本 ※2024年12月15日

Slide 6

Slide 6 text

6 MAUI、Azure and .NET、CloudNative、Aspire integrationsなどなどさまざまな動画

Slide 7

Slide 7 text

7 ところで.NETはどんな環境で動作するんですか ランタイム環境があれば、どこでも動作するんですよね?? 他のクラウドではどう動くんですか? 引用:.NET Aspire | .NET を使用したクラウド アプリ https://dotnet.microsoft.com/ja-jp/apps/cloud

Slide 8

Slide 8 text

各クラウド環境で.NETはどこまで対応しているのか 8 ● AWS ● Google Cloud ● Oracle Cloud Infrastructure(OCI) 主要なプロバイダーに加えてOCIを実際に調査した。 ※Azureはさまざまな人が検証すると思うことと皆さんご存知かと思うので割愛

Slide 9

Slide 9 text

結論 9 各クラウド(AWS、Google Cloud、OCI)ともに対応は進んでいるものの公式資料が間に 合っていないケースが散見された。 いずれにしても動く/動かないで言うと動くケースが大半である。 (クラウドによるマネージド・ランタイムではない場合もアリ、これは後ほど説明) .NET AspireについてはAzureの次にAWSが先行しているようなイメージがあり 他のクラウドでは動かすことを想像できない状態 ※Google Cloudその他で.NET Aspireは動作するがアーキテクチャが難しい(と感じる) なお、.NET Aspire Community Toolkit次第でできることもありそうな?

Slide 10

Slide 10 text

10 引用:Welcome to .NET 9 - .NET Conf 2024 Keynote https://youtu.be/ikSNL-lxolc?feature=shared&t=532

Slide 11

Slide 11 text

.NETでAWS、実際どうなん?話聞こか? 11 引用:Welcome to .NET 9 - .NET Conf 2024 Keynote https://youtu.be/ikSNL-lxolc?feature=shared&t=1235 AWSの文字があった

Slide 12

Slide 12 text

.NETでAWS、実際どうなん?話聞こか? 12 .NETは専用のサイトが存在します。 https://aws.amazon.com/jp/developer/language/net/ .NET9の文字も見える。.NET Aspireもアリ

Slide 13

Slide 13 text

ソリューションページはあるけども 13 引用:AWS で最新の .NET アプリケーションを構築する https://aws.amazon.com/jp/developer/language/net/solutions/ .NET5?!!

Slide 14

Slide 14 text

何が正しいのかわからない.NET on AWS 14 なので、情報を整理して実際に試した。

Slide 15

Slide 15 text

.NET on AWSで利用できるコンピューティングサービス 15 Amazon EC2 AWS Lambda AWS App Runner Amazon EKS Amazon ECS 狭い 責任共有モデルの範囲:右にいくほどユーザによる管理が狭い 広い

Slide 16

Slide 16 text

結論:AWSにおける.NETの対応状況(2024年12月15日) 16 サービス名 .NET8 .NET9 補足 Amazon EC2 ⚪ ⚪ ランタイムはマシンイメージに依存する。 セルフ・ランタイム Amazon ECS ⚪ ⚪ ランタイムはコンテナイメージに依存する。 セルフ・ランタイム Amazon EKS ⚪ ⚪ ランタイムはコンテナイメージに依存する。 セルフ・ランタイム AWS Lambda ⚪ × AWSから提供されているランタイムで実行できる。 マネージド・ランタイム AWS App Runner △ △ ランタイムはコンテナイメージに依存する。 セルフ・ランタイム AWSから提供されるランタイムでは.NET6まで対応 ※.NET Blazor Serverと.NET Aspireが起動できるどうかで検証

Slide 17

Slide 17 text

「マシンイメージ/コンテナイメージに依存する」とは 17 .NET9で お願いします。 無理です。 ランタイムは 自己管理 セルフ・ランタイムを利用 マネージド・ランタイムを利用

Slide 18

Slide 18 text

「提供されているランタイムで実行できる」とは 18 .NET9で お願いします。 拝承 あっちめっちゃ 楽そう。👉 セルフ・ランタイムを利用 マネージド・ランタイムを利用

Slide 19

Slide 19 text

.NET on AWSで利用できるコンピューティングサービス 19 Amazon EC2 AWS Lambda AWS App Runner Amazon EKS Amazon ECS 過去のJAZUGや.NETラボ勉強会で紹介しました。 狭い 責任共有モデルの範囲:右にいくほどユーザによる管理が狭い 広い

Slide 20

Slide 20 text

補足:.NET Aspireのクラウド対応検証:Azureと他環境での実践 20 参考:セッション資料 https://speakerdeck.com/ymd65536/net-aspirenokuraudodui-ying-jian-zheng-azuretota-huan-jing-denoshi-jian 引用:Japan Azure User Group 14周年イベント https://jazug.connpass.com/event/327273/

Slide 21

Slide 21 text

補足:ECS Aspire and App Runner Blazor 21 AWS Cloud AWS App Runner Virtual private cloud (VPC) Amazon ECS .NET Aspire .NET App 開発者 ユーザ

Slide 22

Slide 22 text

22 .NETの対応状況がわかったところで.NET Aspireはどうか 引用:David Fowler と Norm Johanson が出演する .NET on AWS ショー! https://community.aws/content/2gYi0ezjVtwKEFBmXybmRF3Etx5/the-net-on-aws-show-fea turing-david-fowler-and-norm-johanson

Slide 23

Slide 23 text

23 引用:Welcome to .NET 9 - .NET Conf 2024 Keynote https://youtu.be/ikSNL-lxolc?feature=shared&t=1235 .NETの対応状況がわかったところで.NET Aspireはどうか

Slide 24

Slide 24 text

24 integrations-on-dotnet-aspire-for-aws(AWS Stable Integrations) とは ● AWSのための.NET Aspire ● AWS SDK/AWS CDK/AWS CloudFormationの3つをベースに動作 ● Visual Studioで実行 ● OpenTelemetry互換(.NET Aspireの恩恵) AWS Cloud Development Kit AWS SDK AWS CloudFormation リポジトリ:https://github.com/aws/integrations-on-dotnet-aspire-for-aws AWSのサービスをアプリで利用する。 AWS上でSaaSを展開する場合に利用 プログラミングでCloudFormationを実行する。 構成管理をプログラミング 元祖IaC、細かくたくさん書いて定義する。 パワープレイでインフラを構築

Slide 25

Slide 25 text

25 integrations-on-dotnet-aspire-for-awsを実際に動かしてみた感想 ● AspireとBlazor Serverをローカルで動かし、AWS SQSにアクセスする構成 ○ AWS SQS:フルマネージドのキューイングサービス ● 認証情報は実行したデバイスのデフォルトクレデンシャルを参照する ○ プロファイルを切って実行はできない。defaultプロファイルを参照 ● 起動時にAWS CloudFormationでインフラのテンプレートを展開する ○ ここではAWS CDK for .NETを実行 ● AWS Identity Center(旧AWS SSO)のアカウントで利用できる ○ シングルサインオンした後にVisual Studioで実行するとだいぶセキュア

Slide 26

Slide 26 text

.NETでGoogle Cloud、実際どうなん?話聞こか? 26 引用:https://cloud.google.com/dotnet?hl=ja 公式ページとしては.NETの扱いがある。しかし。

Slide 27

Slide 27 text

.NETでGoogle Cloud、実際どうなん?話聞こか? 27 レビュータイムが2年前?! 引用 :https://cloud.google.com/dotnet/docs/deploy-dotnet-applications?hl=ja

Slide 28

Slide 28 text

.NETでGoogle Cloud、実際どうなん?話聞こか? 28 引用:https://cloud.google.com/dotnet/docs/creating-cicd-pipeline-vsts-kubernetes-engine?hl=ja .NET SDK 6.0の文字!

Slide 29

Slide 29 text

.NETでGoogle Cloud、実際どうなん?話聞こか? 29 .NET SDK 6.0の文字!

Slide 30

Slide 30 text

何がどうなってる?.NET on Google Cloud 30 なので、情報を整理して実際に試した。

Slide 31

Slide 31 text

狭い 責任共有モデルの範囲:右にいくほどユーザによる管理が狭い 広い 31 Compute Engine App Engine Google Kubernetes Engine Cloud Run Functions Cloud Run IaaS PaaS FaaS and Serverless Google Cloudで利用できるコンピューティングサービス

Slide 32

Slide 32 text

結論:Google Cloudにおける.NETの対応状況(2024年12月15日) 32 サービス名 .NET8 .NET9 補足 Compute Engine ⚪ ⚪ マシンイメージに依存する。 App Engine ⚪ ⚪ コンテナイメージに依存する。 フレキシブル環境はフルマネージドサービス Google Kubernetes Engine ⚪ ⚪ コンテナイメージに依存する。 Cloud Run functions ⚪ × Google Cloudから提供されているランタイムで 実行できる。マネージド・ランタイム Cloud Run ⚪ △ コンテナイメージに依存する。 .NET8はマネージド・ランタイムで動く マネージド・ランタイムで.NET9は不可 ※.NET Blazor Serverと.NET Aspireが起動できるどうかで検証

Slide 33

Slide 33 text

公式資料では.NET6以降の文字は確認できなかったが 33 Google Cloud Platform .NET Docs Samplesでは.NET8の記述が見受けられる。 引用:https://github.com/GoogleCloudPlatform/dotnet-docs-samples

Slide 34

Slide 34 text

公式資料では.NET6以降の文字は確認できなかったが 34 Google Cloud Libraries for .NETでは.NET8の記述が見受けられる。 引用:https://github.com/googleapis/google-cloud-dotnet

Slide 35

Slide 35 text

狭い 責任共有モデルの範囲:右にいくほどユーザによる管理が狭い 広い 35 Compute Engine App Engine Google Kubernetes Engine Cloud Run IaaS PaaS Google Cloudで利用できるコンピューティングサービス 過去の.NETラボ勉強会で紹介しました。 Cloud Run Functions FaaS and Serverless

Slide 36

Slide 36 text

補足:マルチクラウドで認証したい ~CloudRunと.NET8 Blazor ServerでAzure OpenAIをセキュアに呼び出す~ 36 参考:セッション資料 https://speakerdeck.com/ymd65536/marutikuraudoderen-zheng-sitai-cloudrunto-dot-net8-blazor-ser verdeazure-open-aiwosekiyuanihu-bichu-su 引用:.NETラボ 勉強会 2024年5月 newMVP祭り https://dotnetlab.connpass.com/event/317839/

Slide 37

Slide 37 text

Microsoft Azure 補足:マルチクラウドで認証したい ~CloudRunと.NET8 Blazor ServerでAzure OpenAIをセキュアに呼び出す~ 37 Artifact Registry Cloud Run Blazor Server Cloud Monitoring Secret Manager ログチェック シークレットの登録 イメージのプッシュ シークレットの参照 イメージのプル マネージドIDを呼び出し Google認証

Slide 38

Slide 38 text

.NETでOCI、実際どうなん?話聞こか? 38 引用 :https://blogs.oracle.com/cloud-infrastructure/post/oci-sdk-for-net-is-now-available-for-your-net-projects 引用:https://docs.oracle.com/ja-jp/iaas/Content/API/SDKDocs/dotnetsdk.htm 4年経過、5年目突入 GitHubにソースあり 前提条件や使用方法がしっか りと記載されている。

Slide 39

Slide 39 text

.NETでOCI、実際どうなん?話聞こか? 39 ● 2days ago(12月20日に確認) 2024年12月18日が最新 (Visual Studio 2017〜2019でビルド) ● netstandard 2.0がターゲットフレームワーク 最近はDBやBigData、生成AI関連のアップデートが多い。 ナレッジベースの機能についてもアップデートがあった。

Slide 40

Slide 40 text

次回予告 40

Slide 41

Slide 41 text

予定 41 ● .NETラボ勉強会 2025年1月

Slide 42

Slide 42 text

資料集 42

Slide 43

Slide 43 text

参考:App Engine ランタイム サポート スケジュール 43 ● .NET ランタイム サポート スケジュール ○ https://cloud.google.com/appengine/docs/flexible/lifecycle/support-sc hedule?hl=ja#net

Slide 44

Slide 44 text

おわり 44