Microsoft Azureで実装する
Web Service on Docker
JAZUG熊本(くまあず)平⽇夜の勉強会#2
2017/08/29
加藤 司
• 北海道出⾝
• クラウドコンサルタント/インテグレータ
• Microsoft MVP for Microsoft Azure
• コミュニティ活動
• JAZUG熊本⽀部(くまあず)
• 熊本クラウド語ろう会(熊クラ会)
⾃⼰紹介
はじめに
本セッションは8⽉29⽇時点の情報になります。
アップデートにより仕様が変わる可能性がありますので
ご注意ください。
Copyright©	2015,	JAZUG	All	Rights	Reserved. 4
Docker
• 「Docker」(ドッカー)は、Docker社(旧dotCloud)が
開発するオープンソースのコンテナ管理ソフトウェア。
• 開発者が簡単にアプリケーションを動かす環境を作るとい
う思想のもとに作られている。
Dockerを使うメリット
• サーバー仮想化と違い、コンテナを利⽤するためオー
バーヘッドが少なく動作が軽い。
• 各コンテナは様々なディストリビューションやバー
ジョンを構成できる。
• インフラ環境をコード化することが容易(Dockerfile)
Copyright©	2015,	JAZUG	All	Rights	Reserved. 7
Container
コンテナを使う理由
開発環境と本番環境との差異をなくす
起動時間の短縮
リソース利⽤の効率化
App Service on Linux
App Service on Linux
• 現在提供されているApp ServiceのLinux版
• Linux上でのWebアプリのネイティブな実⾏のサポート
• 専⽤App Serivceプランで動作
• Dockerのサポート
Preview
アプリ実⾏⽅法
ランタイムスタックの選択
Windows版のWeb Appと同様に使⽤するランタイムを
選択してデプロイが可能
Docker イメージの実⾏
Azure Container Registry,Docker Hub,プライベート コンテナー
レジストリからカスタム コンテナーを使⽤可能
ランタイムスタック
必要な設定がされたDocker Image
App Serviceのドキュメントルートをコンテナから参照
独⾃のランタイムスタックの作成も可能
https://github.com/Azure-App-Service
公開されているDockerfileをカスタマイズ
ランタイムスタック
以下の⾔語イメージが提供されている
Node.js ( 4.4 , 4.5 , 6.2 , 6.6 , 6.9 , 6.10, 6.11, 8.0, 8.1 )
PHP ( 5.6 , 7.0 )
.Net Core ( 1.0 , 1.1 )
Ruby ( 2.3 )
利⽤できるリージョン
現状提供されているのは以下のリージョン
South Central US, West US, East US, East US 2,
North Central US, Central US, Canada Central,
Canada East, Brazil South, North Europe, West Europe,
Southeast Asia, East Asia, Japan West, Japan East,
Australia East, Central India, West India, South India
価格
Windows版とは異なりStandard と Basicのみ
プレビューのため現状は50%割引
Web App on Linux
16
Web	App	on	Linux	
+	
Azure	Database	for	MySQL
Web	App	on	Linux	
+	
Azure	Database	for	PostgreSQL
Web App on Linux
17
デプロイ⽅法
Local Gitへプッシュ
GitHub / Bitbucket と連携
Docker Imageをビルドして差し替える
CIサービスとの連携
Docker Hub
Azure Container Registry
Visual Studio Team Services
Dockerをサポートしている CI SaaS
App Service on Linux
DEMO
現在未対応の機能
認証/承認
VNET統合/ハイブリッド接続
Webジョブ
App Service on Linux注意点
Docker Compose未サポート
独⾃のオーケストレーターを採⽤しているため、
Docker Composeは未サポート
Data Volumeの追加ができない
現状はボリューム追加未対応
Azure Container Registry
Azure Container Registry
• Docker プライベートレジストリ
• WindowsとLinuxのコンテナーイメージを単⼀のレジ
ストリで管理できる
• Azure Active Direcotryによるアクセス管理が可能
Azure Container Instances
Azure Container Instances
• 仮想マシン不要のコンテナサービス
• 即時起動でき、課⾦は秒単位
• Docker HubやAzure Container Registryからコ
ンテナイメージをプルできる
コマンド (Azure CLI 2.0 )
>	az group	create	--name	RGName --location	eastus
>	az container	create	--name	ContainerName --image	
microsoft/helloworld
--resource-group	RGName --ip-address	public
ポータル
ポータル
ポータル
Azure Container Service
Azure Container Service
• テンプレートを使⽤したDockerクラスターの構成を展開す
るサービス ※マネージドサービスではありません
• 選べるオーケストレーターはDocker Swarm、DC/OS、
Kubernetesで、Marathon,Chronosなどの各種ツール・
APIをサポート
Kubernetes
Kubernetes コンポーネント
コンポーネント 役割
apiserver kubernetesを操作するAPIの提供
controller-manager コンテナの状態・ノード管理など
etcd 設定情報の共有とサービス検出を⾏うKVS
kubelet 各ノード上のコンテナ作成/削除、ボリューム割り当
てなど
kubectl API経由でkubernetesを操作するクライアントツー
ル
proxy コンテナのネットワークルーティング・負荷分散
scheduler 各ノードにコンテナの割り当てなどを⾏う
ACS上でKubernetes を使うには
#	Azure	CLI	2.0	接続
#	az login
###	Kubernetes	コマンドラインクライアントのインストール
#	az acs kubernetes install-cli
###	Kubernetes	クラスター構成ファイルをダウンロード
#	az acs kubernetes get-credentials	--resource-group=$RESOURCE_GROUP	--name=$CLUSTER_NAME
###	クラスターノードの確認
#	kubectl get	nodes
###	コンテナーの実⾏
#	kubectl run	nginx –image	nginx
###	サービスの公開
#	kubectl expose	deployments	nginx --port=80	--type=LoadBalancer
Azure CLI 2.0の場合
Kubernetes ui
#	Kubernetes	ui 起動
#	kubectl proxy
Starting	to	serve	on	127.0.0.1:8001
起動してブラウザで
http://localhost:8001
に接続する
DC/OS
DC/OS	UI
Copyright©	2015,	JAZUG	All	Rights	Reserved. 38
Marathon	UI
Copyright©	2015,	JAZUG	All	Rights	Reserved. 39
Docker Swarm
Copyright©	2015,	JAZUG	All	Rights	Reserved. 41
Windows Server Container
Windows Server コンテナー
• Windows Server コンテナー
• プロセスと名前空間の分離テクノロジを使⽤してア
プリケーションの分離。
ホスト+ホスト上で実⾏されているすべてのコンテ
ナーとカーネルを共有。
• Hyper-V コンテナー
• 各コンテナーを最適化された仮想マシンで実⾏する。
Windows Serverコンテナーと⽐較して分離性が向
上。
Windows Server Containerの種類
43
項⽬ Windows Serverコンテナ Hyper-Vコンテナ
特徴 軽量・⾼速 ⾼い隔離性
コンテナ
起動:速い
実⾏:ホスト上のプロセス
起動:遅い
実⾏:Hyper-Vゲスト上のプ
ロセス
隔離性
• コンテナは同じホスト
OS上で実⾏される
• 他のコンテナの影響を受
ける可能性がある
• コンテナ単位で隔離される
ので独⽴性が⾼い
• 他のコンテナの影響をほぼ
受けない
Windows Server Container
44
ハイパーバイザー(Hyper-V)
Windows カーネル
Windows Server
コンテナ
システム
プロセス
アプリ
プロセス
Windows Server
コンテナ
システム
プロセス
アプリ
プロセス
Hyper-V Container
45
ハイパーバイザー(Hyper-V)
Hyper-V
Isolation
Hyper-V
Isolation
Windows カーネル Linux カーネル
Windows Server Linux
システム
プロセス
アプリ
プロセス
システム
プロセス
アプリ
プロセス
Windows Subsystem for Linux (WSL)
46
ハイパーバイザー(Hyper-V)
Hyper-V コンテナ Hyper-V コンテナ
WSL
Windows カーネル
WSL
Windows カーネル
Windows Server Linux
システム
プロセス
アプリ
プロセス
システム
プロセス
アプリ
プロセス
Windows Subsystem for Linux
Windows カーネル
Windows Server
コンテナ
システム
プロセス
アプリ
プロセス
Linux コンテナ
システム
プロセス
アプリ
プロセス
Nano Server
Nano Server
軽量なWindows OS
Full
Server	Core
Nano	Server
Nano Server
起動時間の圧倒的な速さ
Windows Server コンテナでの起動時間 1秒未満
Hyper-V コンテナでの起動時間 2秒未満
仮想マシンとしての起動時間 3秒未満
Nano Server
Docker HUBでも公開されています
Nano Server
• Insider Previewでサイズ削減版が公開され始め
ています。
• OSイメージだけで350MBと軽量となっているた
め、今後コンテナでの利⽤が期待できそうです。
まとめ
•複雑な構成でなければAzure Container Instanceや
App Service on LinuxはDocker⽤途には最適
• 管理はAzureに、スケーリングはお⼿軽に
• 普段使いのツールやサービスと連携できる
まとめ
• Web App on Linuxも簡単にコンテナを展開できるサー
ビスですが、Azure Container Instancesはさらに簡略
化されたコンテナ展開サービスです。
• コマンド1つで展開・削除ができるので是⾮お試しくだ
さい!
Microsoft azureで実装するwebserviceondocker
ご静聴ありがとうございました!

More Related Content

PDF
GKE のアプリデプロイは Spinnaker に任せて!
PDF
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
PPTX
Kubernetes introduction
PDF
窓の中の箱の世界
PDF
[GCC18] 世界中のプレイヤーを3つの「S」で支える Google Cloud Platform (GCP) 〜スピード・スケール・スタビリティ〜
PDF
Wordpress案件にgkeを採用してみた(短縮版)
PPTX
俺とKubernetes
PDF
Kubernetes雑にまとめてみた 2019年12月版
GKE のアプリデプロイは Spinnaker に任せて!
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
Kubernetes introduction
窓の中の箱の世界
[GCC18] 世界中のプレイヤーを3つの「S」で支える Google Cloud Platform (GCP) 〜スピード・スケール・スタビリティ〜
Wordpress案件にgkeを採用してみた(短縮版)
俺とKubernetes
Kubernetes雑にまとめてみた 2019年12月版

What's hot (20)

PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
PDF
ぼうけんにでかけよう Kubernetes KEDA
PDF
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
PDF
CNCF Updates 2019 Winter version and Knative
PDF
[GKE & Spanner 勉強会] GKE 入門
PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
PDF
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
PDF
Kubernetesのワーカーノードを自動修復するために必要だったこと
PDF
忙しい人の5分で分かるDocker 2017年春Ver
PDF
Quarkus Technical Deep Dive - Japanese
PDF
Introduction of Azure Docker Integration
PPTX
AKS (k8s) Hands on Lab Contents
PPTX
Japan Container Day 2018
PDF
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
PPTX
20191120 beyondstudy#21 okazaki
PDF
AKS+KEDAで実現!Container Functions Pipeline
PDF
Kubernetes Cost Optimization
PPTX
Kubernetes × 可用性 -- cndjp第3回勉強会
PDF
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
ぼうけんにでかけよう Kubernetes KEDA
Webアプリ開発向け ゆるふわDocker使いが Cloud Naive開発に必要なetc.
CNCF Updates 2019 Winter version and Knative
[GKE & Spanner 勉強会] GKE 入門
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Kubernetesのワーカーノードを自動修復するために必要だったこと
忙しい人の5分で分かるDocker 2017年春Ver
Quarkus Technical Deep Dive - Japanese
Introduction of Azure Docker Integration
AKS (k8s) Hands on Lab Contents
Japan Container Day 2018
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
20191120 beyondstudy#21 okazaki
AKS+KEDAで実現!Container Functions Pipeline
Kubernetes Cost Optimization
Kubernetes × 可用性 -- cndjp第3回勉強会
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
Ad

Similar to Microsoft azureで実装するwebserviceondocker (20)

PDF
Microsoft azureで実装するwebserviceondocker
PDF
Azureで実装する話題のコンテナサービス
PDF
これから始めるAzure Kubernetes Service入門
PDF
クラウド+コンテナで作る簡単Webアプリケーション
PPTX
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
PDF
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
PDF
これからのクラウドネイティブアプリケーションの話をしよう
PDF
新しいOpenShiftのしくみを調べてみた
PPTX
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
PDF
Open Source x AI
PDF
Osc fukuoka xAI Meetup
PDF
PHP on Windows Azure in Open Source Conference
PDF
CloudStack Overview(OSC2012Kansai@Kyoto)
PPTX
Java on Microsoft Azure
PDF
MicrosoftのOSSへの取り組み
PDF
分散環境におけるDocker とオーケストレーション
PDF
オトナのDocker入門
PDF
Azure Functionsでサーバーレスアプリケーション構築
PDF
Azure Functionsでサーバーレスアプリケーション構築
Microsoft azureで実装するwebserviceondocker
Azureで実装する話題のコンテナサービス
これから始めるAzure Kubernetes Service入門
クラウド+コンテナで作る簡単Webアプリケーション
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
これからのクラウドネイティブアプリケーションの話をしよう
新しいOpenShiftのしくみを調べてみた
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Open Source x AI
Osc fukuoka xAI Meetup
PHP on Windows Azure in Open Source Conference
CloudStack Overview(OSC2012Kansai@Kyoto)
Java on Microsoft Azure
MicrosoftのOSSへの取り組み
分散環境におけるDocker とオーケストレーション
オトナのDocker入門
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築
Ad

More from Tsukasa Kato (20)

PDF
すぐにでも使える Windows Virtual Desktop
PDF
ニューノーマルな働き方!?Teams投稿をセンチメント分析!
PDF
WVD運用に欠かせない5つのポイント
PDF
ARM版Windows Virtual Desktop事始め
PDF
Container x AI
PDF
Power Automate with kintone
PDF
Azure DevOps と開発管理
PDF
Azure Private Linkのご紹介
PDF
Azure Vnet の拡張と強化
PDF
マネージドBastion​ Azure Bastion​
PDF
SendGridを使ったスマホアプリ運用
PDF
よりお手軽なBotへ 〜APIで効率的なBotを〜
PDF
Container deployment on Azure
PDF
Azuredevopsakskeda
PDF
Build2019発表情報一気見せ
PDF
俺のセキュリティを超えてゆけ
PDF
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
PDF
Azure serverlesssummit2018
PDF
はたらく認証
PDF
Microservices and Servcie Mesh on Azure
すぐにでも使える Windows Virtual Desktop
ニューノーマルな働き方!?Teams投稿をセンチメント分析!
WVD運用に欠かせない5つのポイント
ARM版Windows Virtual Desktop事始め
Container x AI
Power Automate with kintone
Azure DevOps と開発管理
Azure Private Linkのご紹介
Azure Vnet の拡張と強化
マネージドBastion​ Azure Bastion​
SendGridを使ったスマホアプリ運用
よりお手軽なBotへ 〜APIで効率的なBotを〜
Container deployment on Azure
Azuredevopsakskeda
Build2019発表情報一気見せ
俺のセキュリティを超えてゆけ
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
Azure serverlesssummit2018
はたらく認証
Microservices and Servcie Mesh on Azure

Microsoft azureで実装するwebserviceondocker