Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
99
.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
最近のLinux普段づかいWaylandデスクトップ元年
penguin2716
1
660
品質のための共通認識
kakehashi
PRO
3
210
小さな判断で育つ、大きな意思決定力 / 20251204 Takahiro Kinjo
shift_evolve
PRO
1
580
AWS Trainium3 をちょっと身近に感じたい
bigmuramura
1
120
Noを伝える技術2025: 爆速合意形成のためのNICOフレームワーク速習 #pmconf2025
aki_iinuma
2
2k
Security Diaries of an Open Source IAM
ahus1
0
130
生成AI時代の自動E2Eテスト運用とPlaywright実践知_引持力哉
legalontechnologies
PRO
0
210
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
250
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
130
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
0
480
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
240
生成AI・AIエージェント時代、データサイエンティストは何をする人なのか?そして、今学生であるあなたは何を学ぶべきか?
kuri8ive
2
2.1k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Typedesign – Prime Four
hannesfritz
42
2.9k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
KATA
mclloyd
PRO
32
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Become a Pro
speakerdeck
PRO
31
5.7k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Automating Front-end Workflow
addyosmani
1371
200k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Context Engineering - Making Every Token Count
addyosmani
9
490
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Language of Interfaces
destraynor
162
25k
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)