virtual machine scale sets 概要

52
ゆる~く学ぶ Virtual Machine Scale Sets - JAZUG 東北 2016/07/23 - @yuiashikaga

Upload: yui-ashikaga

Post on 16-Apr-2017

666 views

Category:

Technology


1 download

TRANSCRIPT

ゆる~く学ぶVirtual Machine Scale Sets- JAZUG 東北 2016/07/23 -

@yuiashikaga

自己紹介

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 運用 (ちょい解説)

まとめ

Virtual Machine Scale Setsまでの道のり

Copyright© 2016, @yuiashikaga All Rights Reserved.

7

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.

10

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.

17

Virtual Machine Scale Sets とは

Copyright© 2016, @yuiashikaga All Rights Reserved.

18

複数 VM を一つのリソースとして管理することが可能

完全なスケールが可能

専用のインフラ領域を使用しているので、スケール・イン/アウトも高速っぽい

複数 VM を一つのリソースとして管理

Copyright© 2016, @yuiashikaga All Rights Reserved.

19

スケール速度の違い

Copyright© 2016, @yuiashikaga All Rights Reserved.

20

1台から2台にスケールアウトし、2台目にRDPできるようになるまでの時間を測定

主なワークロード

Copyright© 2016, @yuiashikaga All Rights Reserved.

21

ステートレスな 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

Azure Container Service の裏側でも

Copyright© 2016, @yuiashikaga All Rights Reserved.

24

マイクロサービスクラスター

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の作成プラットフォームイメージカスタムイメージ

Copyright© 2016, @yuiashikaga All Rights Reserved.

28

VMSS 作成 (ポータル)

Copyright© 2016, @yuiashikaga All Rights Reserved.

29

(参考) ベースイメージの作成

Copyright© 2016, @yuiashikaga All Rights Reserved.

30

VMSS 作成 (PowerShell 1/2)

Copyright© 2016, @yuiashikaga All Rights Reserved.

31

VMSS 作成 (PowerShell 2/2)

Copyright© 2016, @yuiashikaga All Rights Reserved.

32

VMSS 作成 (ARM Template LB)

Copyright© 2016, @yuiashikaga All Rights Reserved.

33

VMSS 作成 (ARM Template VMSS)

Copyright© 2016, @yuiashikaga All Rights Reserved.

34

解説 - VMSSのスケールAzure Resource ExplorerAzure PowerShell (ARM Template 編集)Azure PowerShell

Copyright© 2016, @yuiashikaga All Rights Reserved.

35

スケール変更 (Azure Resource Explorer)

Copyright© 2016, @yuiashikaga All Rights Reserved.

36

スケール変更 (Azure PowerShell)

Copyright© 2016, @yuiashikaga All Rights Reserved.

37

スケール変更 (Azure PowerShell)

Copyright© 2016, @yuiashikaga All Rights Reserved.

38

スケールの仕様

Copyright© 2016, @yuiashikaga All Rights Reserved.

39

5 つの FD と 5 つの UD を持つ、暗黙的な可用性セット

スケールイン時可用性を最大限に高めるために仮想マシンは、すべての FD と UD から均等に削除

スケールアウト時インデックス番号が自動的に振られ、FD、UDは分散される

スケール時の注意点

Copyright© 2016, @yuiashikaga All Rights Reserved.

40

スケール時の注意点

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

イメージ変更 (Azure PowerShell)

Copyright© 2016, @yuiashikaga All Rights Reserved.

43

イメージ変更 (Azure PowerShell)

Copyright© 2016, @yuiashikaga All Rights Reserved.

44

イメージ変更時の注意点

Copyright© 2016, @yuiashikaga All Rights Reserved.

45

設定上の変更のみなので、稼働中のVMは影響を受けない

稼働中のイメージを更新する場合は1インスタンスごとにVMSSのアップデートコマンドを実行する必要がある

Update-AzureRmVmssInstance

VMSS 全体への自動 Rolling Update は今後提供予定

その他の情報

Copyright© 2016, @yuiashikaga All Rights Reserved.

46

その他機能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.

48

通常の仮想マシン料金のみScale Sets の使用に対する追加料金は発生しない

制限事項

Copyright© 2016, @yuiashikaga All Rights Reserved.

49

プラットフォーム イメージで構築されたスケール セットは100 VM に制限 (5 ストレージ アカウントを推奨)

カスタムイメージの場合は最大は 20 VMオーバープロビジョニングをオフにしても、最大 40 VM が推奨

それ以上は複数のスケールセットを構成

データディスクは未サポート後のリリースでサポートされる予定

現状 Azure File Storage を自動構成しておけば代用できるかも

まとめ

Copyright© 2016, @yuiashikaga All Rights Reserved.

50

まだまだなところ

Copyright© 2016, @yuiashikaga All Rights Reserved.

51

管理ポータルではできることが少ない構築・管理は ARM Template か PowerShell で

GAしたばかりなので、細かい機能が未実装データディスクのアタッチとか

設計時はストレージアカウントの性能限界を意識して分割するストレージアカウントを事前に定義する必要がある

まとめ

Copyright© 2016, @yuiashikaga All Rights Reserved.

52

自由な環境と柔軟なスケーリングの両方を求めるなら、

ぜひ Virtual Machine Scale Sets の検討を!!