Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
可用性セットを検証してみた@GEEKERS NITE #3
Search
Ryutaro Kimura
September 07, 2023
Programming
0
380
可用性セットを検証してみた@GEEKERS NITE #3
イベント:GEEKERS NITE #3(
https://geekersnites.connpass.com/event/294145/
)
初社外LTです!
Ryutaro Kimura
September 07, 2023
Tweet
Share
More Decks by Ryutaro Kimura
See All by Ryutaro Kimura
bUnitを救いたい@Fukuoka.NET #25
ryutarokimura
0
280
Azureユーザー、AWSの話分かりたい@JAWS Festa 懇親会LT
ryutarokimura
0
110
Other Decks in Programming
See All in Programming
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
1.7k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
180
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
110
AIコーディングエージェント(Manus)
kondai24
0
210
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
110
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
620
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
290
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
130
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
160
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
120
Implementation Patterns
denyspoltorak
0
120
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
30
Designing for Timeless Needs
cassininazir
0
93
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
190
Amusing Abliteration
ianozsvald
0
69
Why Our Code Smells
bkeepers
PRO
340
57k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
250
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
99
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Transcript
可用性セットを検証してみた ~仮想マシンはうまく冗長化されているの?~ 木村 龍太郎 2023/09/06 GEEKERS NITE #3
2 自己紹介 ⚫ 木村龍太郎 (きむら りゅうたろう) ⚫ オルターブース 23卒 新入社員
⚫ Azure AD B2Cなんもわからん @ryutaro_1019
みなさん、可用性セット使っていますか?
4 可用性セット アンケート ⚫ 「設定して複数のVMのスペアありますよ」 ⚫ 「サーバーに障害があってサービスが停止したら大変だからね」 では 冗長化されているVMの配置も視認しますか?
5 今日のメインテーマ 可用性セットの説明 可用性セットの検証 可用性セットの意味を知ってるだけの状態から 可用性セットの動き・仕組みを理解する 検証してみたら意外な結果に
軽くおさらい
7 可用性セット(Availability Sets)とは ⚫ 同じデータセンター内で仮想マシン(VM)を冗長化する構成 東日本リージョン データセンター②(埼玉) データセンター①(東京) この中での冗長 VM
:それぞれのVMで同じアプリケーションを動かす。 ラック
8 可用性セットとは ⚫ 同じデータセンター内で仮想マシン(VM)を冗長化する構成 ⚫ 電源に障害が発生したりメンテナンスがあってもサービス(VM)の継続可能 東日本リージョン データセンター②(埼玉) データセンター①(東京) メンテ中
他VMはOK
9 冗長化の方法 障害ドメイン(FD:Fault Domain) 電源とネットワークを共有する仮想マシンの 範囲。最大 3。 =サーバーラック 更新ドメイン(UD:Update Domain)
メンテナンス等でハードウェアの再起動が必要 になった時に影響を受ける範囲。最大 20。 =物理サーバー UD① FD① UD③ UD⑤ VM6, FD2, UD5の例 UD② FD② UD④
さて問題です
11 問題 2つ 仮想マシンが10台あります。更新ドメイン9, 障害ドメイン3の時 1. 計画的メンテナンスが起きた場合、最大で何台の仮想マシンが 同時に停止する可能性がありますか? 2. 電源トラブルが起きた場合、最大で何台の仮想マシンが同時に
停止する可能性がありますか? 配置はこう?
12 問題1の考察 仮想マシンが10台あります。更新ドメイン9, 障害ドメイン3の時 1. 計画的メンテナンスが起きた場合、最大で何台の仮想マシンが 同時に停止する可能性がありますか? メンテ中 A. 2台?
13 問題2の考察 仮想マシンが10台あります。更新ドメイン9, 障害ドメイン3の時 2. 電源トラブルが起きた場合、最大で何台の仮想マシンが同時に 停止する可能性がありますか? A. 4台?
よく考えてみる
15 (前提)仮想マシンはちゃんと均等に配置されてる? ⚫ 更新ドメインが不均等かも? 仮想マシンの配置次第で最大停止数が変わる ⚫ VMの配置が不均等? 電源障害時に余計落ちてしまう メンテ時に余計落てしまう
16 公式ドキュメントを確認 ⚫ 最初の仮想マシンと同じ更新ドメインに配置される 引用:可用性セットの概要
ほんとかなぁ^^
18 仮想マシンの配置を確認する方法を発見 ⚫ Azureポータル上で確認できるらしい ⚫ CLIもあった 引用:https://changineer.info/azure/azure_compute/azure_compute_availability_set.html#toc11
公式ドキュメントの検証をしよう
20 仮説? 更新ドメイン数を超えるVMは 最初のVMと同じ更新ドメインに配置される 例えば… VM10、UD9、FD3の場合 左図みたいに10台目は 最初の更新ドメインに配置されるだろう
21 検証方法 1. リソースグループ作成 2. 可用性セットを作成する 3. 仮想マシンを10台作成する 4. 仮想マシンの配置(可用性セット)を確認
5. リソースグループごと削除する ※VMのクオーターに引っかかるので 6. 1~5を3回繰り返す。 (本当は確率が収束するくらい回したかった)
22 可用性セットの作成 ⚫ リソースグループを指定すればOK
23 可用性セットへ仮想マシンを作成 ⚫ Azure CLI×Bashで一発 ⚫ az vm createでVMを1台作成できる。Bashのfor文で10回実行。(約10分) ⚫
“リソースグループ”と”可用性セット”の先を指定すればOK
24 仮想マシンの配置を確認 ⚫ 可用性セットの[Virtual Machines]から確認可能
None
おや???
27 結果 ⚫ VMは均等に割り当てられていたが、、、? ⚫ 余った10台目は最初の更新ドメイン(UD0)に割り当てられる❌ ⚫ 余った10台目は2番目の更新ドメイン(UD1)に割り当てられる⭕ ※3回ともすべて同じ結果 FD0
FD1 FD2 UD0 UD3 UD6 UD1 UD4 UD7 UD2 UD5 UD8 UD1
28 公式ドキュメントと違くない?? ⚫ おかしな点 2つ ⚫ 最初の仮想マシンと同じ更新ドメイン(=UD0)に配置されてない ⚫ (UD1がFD0とFD1に存在する)
29 状況を変えてみる(VM7、FD2、UD5) ⚫ 公式ドキュメント通りの状況だと、記述通りの結果に FD0 FD1 UD0 UD3 UD6 UD1
UD4 UD7
他にも検証したかったがタイムアウト
問題に戻る
32 問題1の答え 仮想マシンが10台あります。更新ドメイン9, 障害ドメイン3の時 1. 計画的メンテナンスが起きた場合、最大で何台の仮想マシンが 同時に停止する可能性がありますか? A. たぶん2台?😅 FD0
FD1 FD2 UD0 UD3 UD6 UD1 UD4 UD7 UD2 UD5 UD8 UD1
33 問題2の答え 仮想マシンが10台あります。更新ドメイン9, 障害ドメイン3の時 2. 電源トラブルが起きた場合、最大で何台の仮想マシンが同時に 停止する可能性がありますか? A. 4台です😊 FD1
FD2 UD1 UD4 UD7 UD2 UD5 UD8 FD0 UD0 UD3 UD6 UD1
34 まとめ ⚫ わかったこと(検証の余地はあるが一旦) ⚫ 公式ドキュメントの間違いかもしれない点を見つけてしまった ⚫ 更新ドメイン数より多い仮想マシンは最初の更新ドメインから割り当て られるとは限らない ⚫
とはいえ、VMと更新ドメインは、障害ドメインに均等に割り 当てられるので、冗長化は不利益なくされてる? ⚫ 学び ⚫ 検証って大事 ⚫ 複数リソース作成する場合 → ポータル < CLI
35 おまけ 計画的メンテナンスのタイミングは自分でいじれる ⚫ オプション ⚫ 今すぐ開始:セルフサービスメンテナンス期間内であれば、メンテナンス を手動で開始できる ⚫ スケジュール:時間を設定して実行
etc… 次回、手動で計画的メンテナンスを起こして可用性の検証(泣)