virtual machine scale sets 概要
TRANSCRIPT
自己紹介
Copyright© 2016, @yuiashikaga All Rights Reserved.
2
足利惟 @yuiashikaga
千葉県在住
株式会社 pnop (2016年4月~)
Microsoft MVP for Azure (2016年4月~)
趣味:カメラ (PENTAX User)
レース観戦 (SUPER GT)
このセッションのゴール
Copyright© 2016, @yuiashikaga All Rights Reserved.
3
Virtual Machine Scale Sets について、
ゆる~く理解する。
このセッションの範囲
Copyright© 2016, @yuiashikaga All Rights Reserved.
VMs and VM Scale Sets
Azure Public CloudAzure-Consistent Private Cloud
VM Extensions
SCALR, RightScale,
Mesos, Swarm
Service Fabric
(VMs and Containers)
BatchApp Service
MediaWeb
Apps
Mobile
Apps
Apprenda, CloudFoundry
Jelastic, Marathon
Infrastructure
IaaS and
IaaS+
General
Compute
PaaS
Vertical
compute PaaS
Cluster
Orchestration
このセッションでやらないこと
Copyright© 2016, @yuiashikaga All Rights Reserved.
5
概要レベルなので、複雑な展開とかやりませんカスタムスクリプト使うとか、DSC使うとか
Windows の VMSS についてしかやりませんLinux できないっす
Azure CLI での実装にはあまり触れませんPowerShell + ARM Template
アジェンダ
Copyright© 2016, @yuiashikaga All Rights Reserved.
6
Virtual Machine Scale Sets までの道のり
Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 作成 (ちょい解説)
Virtual Machine Scale Sets 運用 (ちょい解説)
まとめ
2010年 Windows Azure 登場
Copyright© 2016, @yuiashikaga All Rights Reserved.
8
PaaS ( Web Role , Worker Role ) の登場
開発者にとって、インフラを意識しない夢のような世界が!
でも実際は・・・
Copyright© 2016, @yuiashikaga All Rights Reserved.
9
そのままデプロイできない!PaaS の作法を別途学ぶ必要が
ミドルウェアやライブラリのインストールができない!帳票ツールとか外部フォントとか
ロールの展開が遅い!当時は30分くらいかかってました
VM Role 登場
Copyright© 2016, @yuiashikaga All Rights Reserved.
11
自分で作った VM をベースイメージにできる
スケールも自由自在
ソフトウェアを自由にインストールできる
でも実際は・・・
Copyright© 2016, @yuiashikaga All Rights Reserved.
12
環境構築に時間がかかりすぎる!Hyper-Vでベースイメージ作成 → Sysprep → Azureへアップロード → VM Role作成・・・
ベースイメージを修正が大変!ベースイメージを再展開 → 修正 → Sysprep → ・・・
ロール展開の遅さは相変わらず!
データを保存できない
(余談) VM Roleの運用にはコツが
Copyright© 2016, @yuiashikaga All Rights Reserved.
13
ベースイメージ作成後、差分イメージ作成変更があるものは差分イメージ作成後にインストール
差分イメージで Sysprep を行う
1度目はベースイメージ + 差分イメージをアップロード
2度目は差分イメージを捨て、もう一度差分イメージを作成
差分イメージに修正を行い、Sysprep を行いアップロード2回目以降のアップロード時間を改善
仮想マシンの登場
Copyright© 2016, @yuiashikaga All Rights Reserved.
14
真の IaaS ついに登場
Windows も Linux も扱える
データの永続化ができる
これで何でもできる!
スケールには問題が・・・
Copyright© 2016, @yuiashikaga All Rights Reserved.
15
仮想マシンのスケールって言われて何を思い浮かべるか
スケールアップは楽だが、スケールアウトはめんどくさい
手動でスケールするには仮想マシン作って、ロードバランサに所属させる
オートスケールになるとあらかじめ最大スケール分の仮想マシンを作成しておく必要が
要望をまとめるとこんな感じ
Copyright© 2016, @yuiashikaga All Rights Reserved.
16
自分で作成したイメージを手間なく展開したい
個々の仮想マシンを管理するのではなく、1つのリソースとして扱いたい
柔軟にスケールさせたい
Virtual Machine Scale Sets とは
Copyright© 2016, @yuiashikaga All Rights Reserved.
18
複数 VM を一つのリソースとして管理することが可能
完全なスケールが可能
専用のインフラ領域を使用しているので、スケール・イン/アウトも高速っぽい
スケール速度の違い
Copyright© 2016, @yuiashikaga All Rights Reserved.
20
1台から2台にスケールアウトし、2台目にRDPできるようになるまでの時間を測定
ステートレスな Web フロントエンド
Copyright© 2016, @yuiashikaga All Rights Reserved.
22仮想ネットワーク
Subnet
Scale Sets
IIS/port 80
IIS/port 80
IIS/port 80Load
Balancer
Public IP
コンテナーのオーケストレーション
Copyright© 2016, @yuiashikaga All Rights Reserved.
23仮想ネットワーク
Subnet
Scale Sets
Mesos slave
Public IP
Mesos slave
Mesos slaveMesos master
マイクロサービスクラスター
Copyright© 2016, @yuiashikaga All Rights Reserved.
25
Service Fabric Cluster
Scale Sets
LoadBalancer
Public IP
Node1
Node2
Node3
Node4
Node5
Service A
Service B
Service C
Service D
イメージの種類
Copyright© 2016, @yuiashikaga All Rights Reserved.
26
プラットフォーム イメージAzure 側で提供されている標準イメージ
複数のストレージアカウントに分散可能 (アカウントは事前に定義)
管理ポータルからも作成可能
カスタムイメージ自分自身で作成したオリジナルイメージ
ストレージアカウントはイメージVMと同一のストレージアカウント
ARM テンプレートまたは PowerShell から作成
デモ環境の構成
Copyright© 2016, @yuiashikaga All Rights Reserved.
27VM Scale Sets (カスタムイメージ)
Load Balance Rules
Front End Address Pool
Back End Address PoolProbe
Inbound NAT Rules or Pools
Frontend:80
Backend:80
Frontend:可変
Backend:3389
Public IP Address
Probe
解説 - VMSSのスケールAzure Resource ExplorerAzure PowerShell (ARM Template 編集)Azure PowerShell
Copyright© 2016, @yuiashikaga All Rights Reserved.
35
スケールの仕様
Copyright© 2016, @yuiashikaga All Rights Reserved.
39
5 つの FD と 5 つの UD を持つ、暗黙的な可用性セット
スケールイン時可用性を最大限に高めるために仮想マシンは、すべての FD と UD から均等に削除
スケールアウト時インデックス番号が自動的に振られ、FD、UDは分散される
スケール時の注意点
Copyright© 2016, @yuiashikaga All Rights Reserved.
41
オーバープロビジョニング展開時のデフォルト挙動 (オフにすることも可能)
要求 VM 数より多い VM を起動し、それから不要な VM を削除
これはプロビジョニングの成功率を上げるため
1 つの VM のプロビジョニングが成功しないだけで、Azure リソースマネージャーはデプロイ全体を "失敗" と見なすため
一時的に作成された VM は請求対象でも、クオータ制限対象でもない
解説 – VMSSイメージの変更Azure PowerShell (ARM Template 編集)Azure PowerShell
Copyright© 2016, @yuiashikaga All Rights Reserved.
42
イメージ変更時の注意点
Copyright© 2016, @yuiashikaga All Rights Reserved.
45
設定上の変更のみなので、稼働中のVMは影響を受けない
稼働中のイメージを更新する場合は1インスタンスごとにVMSSのアップデートコマンドを実行する必要がある
Update-AzureRmVmssInstance
VMSS 全体への自動 Rolling Update は今後提供予定
その他機能Tips
Copyright© 2016, @yuiashikaga All Rights Reserved.
47
特定インスタンスの停止 (割り当て解除状態)
メトリクスをトリガーとしたオートスケールhttps://azure.microsoft.com/ja-jp/documentation/articles/virtual-machine-scale-sets-windows-autoscale/
拡張機能の利用診断機能
カスタムスクリプト、Powershell DSC
Stop-AzureRmVmss -ResourceGroupName "resource group name" -VMScaleSetName "scale set name" -InstanceId #
制限事項
Copyright© 2016, @yuiashikaga All Rights Reserved.
49
プラットフォーム イメージで構築されたスケール セットは100 VM に制限 (5 ストレージ アカウントを推奨)
カスタムイメージの場合は最大は 20 VMオーバープロビジョニングをオフにしても、最大 40 VM が推奨
それ以上は複数のスケールセットを構成
データディスクは未サポート後のリリースでサポートされる予定
現状 Azure File Storage を自動構成しておけば代用できるかも
まだまだなところ
Copyright© 2016, @yuiashikaga All Rights Reserved.
51
管理ポータルではできることが少ない構築・管理は ARM Template か PowerShell で
GAしたばかりなので、細かい機能が未実装データディスクのアタッチとか
設計時はストレージアカウントの性能限界を意識して分割するストレージアカウントを事前に定義する必要がある