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

.NET Aspireのクラウド対応検証: Azureと他環境での実践

.NET Aspireのクラウド対応検証: Azureと他環境での実践

Japan Azure User Group 14周年イベント - Room B
13:10 - 13:55 Session2-1 .NET Aspireのクラウド対応検証:Azureと他環境での実践

https://jazug.connpass.com/event/327273/

スライド内のリンク

- Open Telemetry
https://opentelemetry.io/

- Retina:Kubernetes 用 eBPF 分散ネットワーク監視ツール
https://azure.microsoft.com/en-us/blog/microsoft-open-sources-retina-a-cloud-native-container-networking-observability-platform/

- .NET Aspire overview
https://learn.microsoft.com/ja-jp/dotnet/aspire/get-started/aspire-overview

- Let's Learn .NET: Aspire
https://www.youtube.com/watch?v=Cm7mqHZJIgc

- 昼休みに .NET Aspire をさわってみよう配信
https://msdevjp.connpass.com/event/324193/

- Dashboard configuration - NET Aspire
https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/configuration?tabs=bash

- Aspire.Hosting.AWS
https://github.com/dotnet/aspire/tree/main/src/Aspire.Hosting.AWS

- Build AI Applications with ease using Semantic Kernel and .NET Aspire
https://devblogs.microsoft.com/semantic-kernel/build-ai-applications-with-ease-using-semantic-kernel-and-net-aspire/

- How to create a RAG application using .NET Aspire, Ollama, and Semantic Kernel?
https://www.kallemarjokorpi.fi/blog/rag-application-with-net-aspire-and-semantic-kernel/

- AspireShopWithSemanticKernel
https://github.com/vicperdana/AspireShopWithSemanticKernel

Kento.Yamada

October 05, 2024
Tweet

More Decks by Kento.Yamada

Other Decks in Programming

Transcript

  1. 山田顕人 == Kento.Yamada 自己紹介 2 • .NETラボ運営、Azure PoC部、Multi Cloud (MSP)

    Developer • 通信キャリア => クラウドインテグレーターの企業にジョインしてそろそろ2年 • MSP向け運用分析プラットフォームの開発・次世代監視基盤の開発・新しいサービスの検証 • 受賞歴 ◦ LINE API Expert ◦ Microsoft MVP for Developer Technologies ◦ Google Cloud Partner Tech Blog Challenge 2023 Cloud AI/ML 部門受賞 ◦ LAPRAS OUTPUT AWARD 2024 01
  2. 今日話すこと • オブザーバビリティとは • Open Telemetryってなに • .Otelと.NET Aspireの関係 •

    補足:eBPF • .NET Aspireとは • .NET Aspireの特徴 • 動かし方3選 • どういう環境で動作するか 3 • 今回検討したクラウド環境 • 実際に起動してみた(結論) • GitHub Codespacesで動かす • AWSで構成する • Azureで構成する • これまでの気づきなど • まとめ • 最近の話 • 余談
  3. .NET Aspireの特徴 10 Smart Defaults Developer Dashboard Orchestration Service Discovery

    Components Deployment 全ての規模のアプリケーションに適用可能 どんなアプリケーションでも利用できる。(Python,Node.js)
  4. 主な動かし方3選 • Visual Studioでプロジェクトを構成して起動する • Visual Studio Codeでプロジェクトを構成して起動する • .NET

    CLIでプロジェクトを構成して起動する Visual Studioによるハンズオンは動画で紹介されています。 Let's Learn .NET: Aspire 11 引用:昼休みに .NET Aspire をさわってみよう配信 - connpass
  5. どういう環境で動作するか 前提 • .NET8 • Docker Desktop やPodmanといったコンテナを起動できるソフト • IDE

    ◦ Visual Studio ◦ Visual Studio Code ▪ C# Dev Kit: Extensionが入っているといい 👉.NETが動作するコンテナが用意できれば、だいたい起動可能 ※想定通り動くとは限らない 12
  6. 前提1 14 リポジトリ渡す からよしなに やって! はいよ。 仮想マシンで 動かすぜ! セルフホスト サービス利用

    楽 苦 仮想マシンによる起動は除く。できれば、VMセルフホストは避けたい。(何か見た)
  7. 実際に起動してみた(結論) 16 項目 結果 GitHub Codespaces ⚪ Google Cloud △

    AWS ⚪ Azure ◎ 以下の観点で評価 • 手軽に起動できるかどうか • 比較的に低コストで起動できるか • 起動手段がどれくらいあるか
  8. ECS Aspire and App Runner Blazor(デモあり) 20 AWS Cloud AWS

    App Runner Virtual private cloud (VPC) Amazon ECS .NET Aspire .NET App 開発者 ユーザ なお、ユーザが直接ECSにアクセスすることは基本ないのでロードバランサーが必要
  9. ECS Aspire and ECS Blazor(デモなし) 21 AWS Cloud Virtual private

    cloud (VPC) .NET Aspire .NET App 開発者 ユーザ なお、ユーザが直接ECSにアクセスすることは基本ないのでロードバランサーが必要 本番環境ならサブネットを分けたほうがよい。 ECS Task ECS Task
  10. ECS Container Aspire and ECS Container Blazor(デモなし) 22 AWS Cloud

    Virtual private cloud (VPC) 開発者 ユーザ なお、ユーザが直接ECSにアクセスすることは基本ないのでロードバランサーが必要 ECS Task .NET Aspire .NET App
  11. ECSで.NET Aspireを起動した場合 23 (起動方法や構成にもよるが)ECSの場合は自由度が高い • 1つのECSタスクで処理 VS ECSタスク間で処理 ◦ ECSタスク

    = docker composeのような単位 • ⭐テレメトリデータの受信に対してECSにセキュリティグループが必要 ◦ App RunnerからECSにテレメトリデータを送信できる • ⭐IPアドレスを固定する必要アリ ◦ ECSのタスクにIPを固定する機能はないのでサービスディスカバリが必要 細かい話: 外部(社外)からアクセスできないような仕組み (AWS WAFあるいはセキュリティグループなど)
  12. App Runner Aspire and ECS Blazor(デモなし) 24 AWS Cloud AWS

    App Runner Virtual private cloud (VPC) Amazon ECS .NET App .NET Aspire App Runner、ECS間をプライベートつなぐ場合 App Runnerがプライベートアクセスになるので前段にプロキシが必要(App Runnerがパブリックにならない) プライベートアクセスがないとプライベートIPもないのでECSとの通信は不可 なお、ユーザが直接ECSにアクセスすることは基本ないのでロードバランサーが必要 プロキシ プライベートアクセス 開発者 ユーザ
  13. App Runnerで.NET Aspireを起動した場合 25 App Runnerはよくも悪くもVPCがなくても起動できる。 • テレメトリデータの送受信に対してセキュリティグループの設定が必要 ◦ ECSからApp

    Runnerにテレメトリデータを送信できる • ⭐App Runner コンテナの前段にプロキシを入れないといけない • ⭐Developer Dashboardを起動したときローカルホストから通信を受けたい ◦ App RunnerのインバウンドVPCアクセスを有効にする必要がある ※VPCエンドポイントが必要、コストが増える 細かい話: App Runnerが外部からアクセスできないような仕組み(先程と同様)
  14. まとめ 30 • .NET Aspireとオブザーバビリティ、OpenTelemetryについて説明した • .NET Aspireは.NETさえあれば、どこでも動く ◦ と思ったらGoogle

    Cloudで想定通り動かそうとしたらうまくいかなかった ◦ AWSはかなり楽にできた。秒でできる。(大嘘) • なんやかんやで工夫すれば起動できるAWS • Azureではやっぱり手軽にできる ◦ azdで起動するとどんなインフラができたかぱっと見わからない • 次は各社のKubernetesサービスで検証してみたい
  15. Semantic Kernelと.NET Aspireを使用してAIアプリケーションを簡単に構築 33 SemanticKernelと.NET Aspireを利用した良い例 Build AI Applications with

    ease using Semantic Kernel and .NET Aspire https://devblogs.microsoft.com/semantic-kernel/build-ai-applications-with-ease-using-semantic-kernel-and-net-aspire/
  16. Semantic Kernelと.NET Aspireを使用してAIアプリケーションを簡単に構築 34 OllamaとSemantic Kernelを組み合わせたRAGの話題 How to create a

    RAG application using .NET Aspire, Ollama, and Semantic Kernel? https://www.kallemarjokorpi.fi/blog/rag-application-with-net-aspire-and-semantic-kernel/