Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ASP.NET と Docker そしてクラウドの関係
Search
Tatsuro Shibamura
June 17, 2017
Technology
0
70
ASP.NET と Docker そしてクラウドの関係
Tatsuro Shibamura
June 17, 2017
Tweet
Share
More Decks by Tatsuro Shibamura
See All by Tatsuro Shibamura
# Azure Cosmos DB パフォーマンス最適化入門 - 設計・開発・運用の実践テクニック
shibayan
0
400
Hack Azure! #5 - Geek of Azure Serverless
shibayan
0
100
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
0
9.3k
Terraform Provider for Azure に貢献してみた話
shibayan
0
610
Azure Functions と SendGrid の良い関係
shibayan
0
1.2k
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
1
2.9k
祝 東日本リージョン一般提供! Azure Application Insights 基礎と実践
shibayan
1
42k
なかなか楽にならないSSL/TLS証明書の話
shibayan
2
1.8k
.NET Conf 2018 Tokyo
shibayan
1
4k
Other Decks in Technology
See All in Technology
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
430
RAG/Agent開発のアップデートまとめ
taka0709
0
160
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
280
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
6
710
ChatGPTで論⽂は読めるのか
spatial_ai_network
5
22k
Gemini でコードレビュー知見を見える化
zozotech
PRO
1
250
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
340
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
270
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
800
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
140
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
2.7k
A Compass of Thought: Guiding the Future of Test Automation ( #jassttokai25 , #jassttokai )
teyamagu
PRO
1
260
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Done Done
chrislema
186
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Embracing the Ebb and Flow
colly
88
4.9k
Typedesign – Prime Four
hannesfritz
42
2.9k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
720
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.2k
Transcript
ASP.NET と Docker そしてクラウドの関係 @shibayan
はじめに • @shibayan • http://blog.shibayan.jp/ • Microsoft MVP for ASP.NET/IIS
ASP.NET について • 二つの ASP.NET が並行して存在中 • ASP.NET (Web Forms
/ MVC / Web API) • ASP.NET Core (MVC)
Docker で実行したい • ASP.NET の場合 • Windows Server Core ベースのイメージを利用
• mono-xsp なイメージを利用(無保証) • ASP.NET Core の場合 • Nano Server ベースのイメージを利用 • Debian ベースのイメージを利用
メリット・デメリット • 既存の ASP.NET アプリケーションの Dockernize が出来る • Docker のメリットを
Windows ベースでも • IIS や必要なパッケージを含んだイメージをそのまま展開 • 実行環境を非常に選ぶのがデメリット • Windows Containers の環境が必要
ASP.NET の場合
ASP.NET Core の場合
イメージタグの選び方 • ASP.NET の場合 • .NET Framework と Server Core
バージョンの組み合わせ • 例: 4.7-windowsservercore-10.0.14393.1358 • ASP.NET Core の場合 • Nano Server か Debian のどちらかを選ぶ • .NET Core のバージョンを選ぶ • 例: 1.1.2-jessie / 1.0.5-nanoserver
実行環境について
Docker が動けば問題なし • パブリッククラウドには大体サービスが存在している • Azure / AWS/ GCP は問題なし
• オンプレの場合は Swarm / Kubernetes など • ローカル環境では Docker for Windows / Mac など • Windows 10 の場合は Hyper-V Containers が
パブリッククラウドで動かす • Azure の場合 • App Service on Linux /
Azure Container Service を使う • AWS の場合 • Elastic Beanstalk / EC2 Container Service を使う • GCP の場合 • App Engine Flexible Environment / Container Engine を使う 全て Linux ベースの環境
Windows は難易度が高い • Windows に対応したサービスが提供されていない • Azure は Kubernetes の
Windows サポートがプレビュー
Server Core の罠 • Windows コンテナーの要件 • Windows Server コンテナーは、ビルド番号が異なると起動をブロッ
クされます (例: 10.0.14300.1030 (Technical Preview 5) と 10.0.14393 (Windows Server 2016 RTM))。 ビルド番号が一致し、リビジョン番 号が異なる場合は、起動をブロックされません (例: 10.0.14393 (Windows Server 2016 RTM) と 10.0.14393.206 (Windows Server 2016 GA))。 ただし、技術的にはブロックされませんが、これは状況 によっては正しく機能しない可能性がある構成であるため、運用環境 ではサポートできません。
まだまだ発展途上の Windows • サービスが提供されていない Windows のコンテナ • Azure が真っ先にサービスを提供するべき •
バージョン管理が難しいイメージ • サイズが大きすぎる Server Core イメージ • ダウンロードサイズ 6GB / 展開後で 11GB • ちなみに Nano Server は 380MB / 1GB ぐらい
OS の選択について
Windows と Linux の選択 • ASP.NET の場合 • 実質的には Windows
の一択しかない • Mono XSP を使った運用は難しい • ASP.NET Core の場合 • 現実的には Linux の方が運用が楽 • 開発は Windows で、実行は Linux という方法もアリ
将来的には Alpine Linux も • .NET Core での Alpine Linux
サポートが予定 • ポーティング中 : https://github.com/dotnet/coreclr/issues/917 • イメージサイズの削減が見込める • ビルド、デプロイの速度向上
実際に行っている例 • 開発環境 : Windows 10 + Visual Studio 2017
• CI/CD : GitHub + CircleCI • 実行環境 : AWS Elastic Beanstalk (Docker)
Visual Studio のサポート
VS2017 で Docker に全力 • Visual Studio は Windows /
Linux の Docker に対応 • ASP.NET プロジェクトに追加 • Server Core を使う Dockerfile が追加 • ASP.NET Core プロジェクトに追加 • Debian ベースのイメージを使う Dockerfile が追加
余談 : Visual Studio からデプロイ • Azure の場合 • Azure
SDK をインストールすると App Service にデプロイ可能 • AWS の場合 • AWS Toolkit for Visual Studio をインストールする • Elastic Beanstalk の Windows Server にデプロイ(Not Docker) • GCP の場合 • Cloud Tools for Visual Studio をインストールする • App Engine Flexible Environment にデプロイ(Docker)