Azure Administrator対策「仮想マシン(VM)の展開と管理」
はじめに
AZ-103「Azure Administrator」対策として、Microsoft Learnなどを要約したものを記載。
VM作成の考慮事項
ネットワークの作成
VMに割り当てる仮想ネットワーク(VNet)を指定する。
同じネットワークに属するVMと他のAzureサービスの間では、相互アクセスが可能。
仮想ネットワークは一度設定した後から変更することは困難なので、VMを導入する前にトポロジーを考慮する必要がある。
VNet を他の VNet に接続する場合は、重複しないアドレス範囲を選択する必要がある。
サブネットの作成
作成した仮想ネットワークアドレス空間から、管理しやすいようにサブネットを作成する。
※ 例
・10.1.0.0/16 ⇒ VMサブネット
・10.2.0.0/16 ⇒ バックエンドサービス用サブネット
・10.3.0.0/16 ⇒ SQL Server VM用サブネット
※ 各サブネットの先頭から 4 個のアドレスと最後のアドレスは、Azure側で予約されているので、利用できない
セキュリティの設定
既定では、サブネット間にセキュリティ境界がないため、各サブネットのサービスは互いに通信可能。
ネットワーク セキュリティ グループ (NSG) を設定して、 サブネット間にネットワークフィルタを設定可能。
VMの名称
Windows VM には最大 15 文字、Linux VM には最大 64 文字の名前を指定することができる。
わかりやすく一貫性のある名前を選択する必要がある。
良い慣例としては、以下のような内容を含ませる。
要素 | 例 | 備考 |
---|---|---|
環境 | dev、prod | リソースの環境名 |
場所 | uw (米国西部)、ue (米国東部) | リソースが稼働するリージョンなど |
番号 | 01、02 | ナンバリング |
製品 Or サービス名 | service | リソースがサポートする製品、アプリケーションなど |
ロール | sql、web、messaging | リソースのロール |
VMを起動させる場所
場所の選択に関しては、それ以外に次の 2 点を考慮する。
-
場所によって、使用可能なオプションが制限される
-
場所によって価格差がある
VMのサイズ
利用するVMのワークロード(処理量)に応じて、 適切なCPU、メモリ、ストレージ容量を選択する。
汎用
バランスの取れた CPU対メモリ比を提供。
テストと開発、中規模のデータベース、中程度のトラフィックの Web サーバーに最適。
コンピューティング最適化
高い CPU 対メモリ比を提供する。 トラフィックが中程度の Web サーバー、ネットワーク アプライアンス、バッチ処理、アプリケーション サーバー。
メモリ最適化
高いメモリ対CPU比を提供する。 RDS、中規模から大規模のキャッシュ、メモリ内分析に適する。 ストレージ最適化。
高いディスクスループットとIOを提供する。
データベースを実行するVMに最適。
GPU
負荷の高いグラフィックスのレンダリングやビデオ編集に特化した。 ディープラーニングを使用したモデルトレーニングと推論に最適なオプション。
ハイパフォーマンスコンピューティング
高スループットのネットワークインターフェイスのオプションを備えた、最も高速かつ強力なCPU仮想マシン。
価格モデル
コンピューティングとストレージという 2 種類の別々のコストが課金。
-
コンピューティング VMを起動している間、時間単位で課金される。
-
ストレージコスト VMの停止中でも、ディスクに使用しているストレージ対する課金が発生。
従量課金制オプション
VMのスペック応じた料金を秒単位で支払う。
Reserv Instance (RI)
1年間から3年間分の仮想マシンの予約購入する形で、料金を前払いすると、重量課金制の料金に比べて最大72% の割引を受けられる
リソースの作成と管理
Azureのリソースの作成・管理方法として、以下のようなものがある。
Azure Resource Manager
Resource Manager テンプレート
デプロイするリソースの情報を定義したJSON形式のテンプレートファイル。
Azure PowerShell
Azure PowerShell は、コマンドレットと呼ばれるAzure 固有のコマンドをWindowsのPowerShellに追加するアドオンパッケージ。
最近は、Linuxおよび、MacOSでも利用可能になった。
また、Azure Cloud Shellを利用することで、ブラウザからでも利用可能。
Azure CLI
Azure CLIはmacOS、Linux、および Windowsで利用できるクロスプラットフォームのCLIツール。
また、Azure Cloud Shellを利用することで、ブラウザからでも利用可能。
Azure REST API
対応する HTTP メソッドを実行することで、Azure上のリソースの操作をすることができる機能。
Azure クライアント SDK
C#、Java、Node.js、PHP、Python、Ruby、および Go など .NET用に用意されたAzure開発用のライブラリ。
Azure VM 拡張機能
Azure VM でのデプロイ後の構成と自動タスクを提供する複数の小さなアプリケーション。
Azure Automation
頻繁に発生あう時間のかかるエラーが発生しやすいタスクを簡単に自動化するサービス。
Azureの可用性
可用性
システムが稼働状態を維持し続けられる能力の度合い。
可用性セット(Availability Set)
可用性を高めるために設定するVMの論理グループを作成する機能。
https://azure.microsoft.com/ja-jp/support/legal/sla/virtual-machines/v1_9/
障害ドメイン (Fault domain, FD)
共通の電源とネットワークスイッチを共有するハードウェアの論理グループ。
それぞれのVMで障害ドメインを分けておくと、ハードウェア障害によるダウンタイムの影響を下げることができる。
https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/manage-availability
更新ドメイン(Update domain, UD)
更新ドメインとは、メンテナンスや再起動が同じタイミングで実施される可能性があるハードウェアの論理グループ。
計画メンテナンスで一度に再起動される更新ドメインは1つずつなので、 それぞれのVMで更新ドメインを分けることによって、計画メンテナンスによるシステムのダウンタイムを下げることができる。
主な利用条件・制限事項
-
可用性セットを適用した仮想マシンのSLAは 99.95%
-
リージョンごとに利用可能な障害ドメイン数は異なっており、最大で2または、3まで利用可能
-
更新ドメインは最大20まで利用可能
可用性ゾーン(Availability Zone, AZ)
Azureの「可用性セット(Availability Set)」と同様に可用性を高めるための機能。
https://docs.microsoft.com/ja-jp/azure/availability-zones/az-overview#availability-zones
可用性セットの境界点がラック単位で、分かれるのに対して、 可用性ゾーンはAzureリージョン内はデータセンター単位で分離される。 可用性ゾーンが有効になっているリージョンにはいずれも最低3つのゾーンが別個に存在している。
https://ascii.jp/elem/000/001/556/1556413/
主な利用条件・制限事項
- 可用性ゾーンを適用した仮想マシンのSLAは 99.99%
https://azure.microsoft.com/ja-jp/support/legal/sla/virtual-machines/v1_9/