0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azureを学ぶ Azure Virtual Machinesの概要

Posted at

本記事は Microsoft Learn の「Azure Virtual Machinesの概要」というモジュールをまとめたものである。

Azure 仮想マシンの作成についてのチェックリストを作る

オンプレミスから Azure への移行は計画が重要となる。一度に全部移行する方法もあれば、小さなバッチや個別に移行する方法もある。まず VM を作る前に、現行のインフラの概要を整理し、クラウド上でどう再現するかを確認する必要がある。

Azure リソースとは

Azure リソースは、Azure 上で管理できる項目のこと。VM も物理コンピューターと同じように複数の要素で構成される

  • VM 本体
  • ストレージ用ディスク
  • 仮想ネットワーク
  • ネットワークインターフェイスカード(NIC)
  • ネットワークセキュリティグループ (NSG)
  • パブリック・プライベート IP アドレス

これらのリソースは必要に応じて Azure が自動作成するか、デプロイ時に既存リソースを指定可能。
各リソースには識別用の名前が必要で、VM 名をもとにリソース名を生成することもあるため、VM 名を統一しておくと管理が楽になる。

IaaS 仮想マシンに必要なリソース

ネットワーク

Azure で VM を作る前に最初に考えるべきはネットワーク。オンプレミスのサーバーがどこと通信しているか、どのポートを使っているかを把握する必要がある。

  • 仮想ネットワーク(VNet) は Azure の VM と他サービスをプライベート接続で結ぶもの。同じ VNet 内の VM やサービスは自由に通信可能。外部からのアクセスは原則不可だが、必要に応じて許可設定可能
  • ネットワーク構成は慎重に決定。アドレス空間やサブネットは一度設定すると変更が難しい。企業ネットワークと接続する場合は全体のトポロジを事前に考慮
  • VNet 設定ではアドレス空間、サブネット、セキュリティを指定。他の VNet と接続する場合はアドレス範囲が重複しないよう注意
  • プライベート IP は 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 などを利用するか独自範囲を設定可能。VNet 内、相互接続 VNet 内、オンプレミスからのみアクセス可能なプライベートアドレスとして扱われる
  • ネットワーク担当者がいる場合は、重複がないか確認し、使用範囲を共有することが重要

ネットワークの分離

仮想ネットワークのアドレス空間を決めた後に、1つ以上のサブネットを作成できる。サブネットはネットワークを管理しやすく分割するために使うもので、例えば 10.1.0.0 を VM 用、10.2.0.0 をバックエンドサービス用、10.3.0.0 を SQL Server VM 用に割り当てる、といった使い方ができる。

ネットワークのセキュリティ保護

既定ではサブネット同士にセキュリティの境界はなく、サブネット内のサービス同士は自由に通信できる。だが、ネットワークセキュリティグループ(NSG)を設定すれば、サブネット間や VM 間のトラフィックを制御できる。NSG はネットワークインターフェイスやサブネットに適用され、受信や送信の要求ごとにカスタムルールを設定できるため、ソフトウェアファイアウォールとして機能し、VM に出入りする通信を完全に管理できる。

VM 名

VM 名は OS 上のコンピューター名として使われ、Linux では最大 64 文字、Windows では最大 15 文字まで指定できる。また、Azure 上の管理リソース名としても使われ、後から変更するのは簡単ではない。そのため、何を行う VM かを識別しやすく、一貫性のある名前を付けることが重要になる。

良い慣習としては、以下の通り。

要素 説明
環境 dev、prod、QA リソースがどの環境に属するかを示す
場所 米国東部: eus、 西日本: jw リソースのデプロイ先のリージョンを示す
インスタンス 01、02 複数存在する同じ名前のリソースを区別する
製品またはサービス サービス リソースがサポートする製品やアプリケーションを示す
ロール sql、web、messaging リソースの役割や用途を示す

VM の場所を決定する

Azure のデータセンターは世界中のリージョンに分かれていて、冗長性と可用性が確保されている。VM を作成するときは、ユーザーに近いリージョンを選ぶことでパフォーマンスを上げつつ、法令やコンプライアンス要件も満たせる。

リージョン選択では注意点が2つある。1つ目は、リージョンによって利用できるハードウェアやオプションが制限される場合があること。2つ目は、リージョンごとに価格が異なること。特定の場所に縛られないワークロードは、必要な構成を複数リージョンで比較して、コストが最も低い場所を選ぶと効率的になる。

VM のサイズを決定する

名前とリージョンを決めたら、次は VM のサイズを選ぶ必要がある。Azure では CPU、メモリ、ストレージを個別に指定するのではなく、これらの組み合わせが異なる VM サイズが用意されており、目的に応じて最適な構成を選べる。

VM サイズを決める最適な方法は、実行するワークロードの種類を考慮すること。ワークロードに応じて、利用可能な VM サイズの中から適切なサブセットを選ぶ。Azure ではワークロードの種類に応じてサイズが分類されている。

オプション 説明
汎用 CPU とメモリのバランスが取れた VM。テスト・開発、小~中規模 DB、低~中トラフィックの Web サーバー向け。
コンピューティング最適化 CPU 対メモリ比が高い VM。中トラフィック Web サーバー、ネットワークアプライアンス、バッチ処理、アプリケーションサーバー向け。
メモリ最適化 メモリ対 CPU 比が高い VM。リレーショナル DB サーバー、中~大規模キャッシュ、メモリ内分析向け。
ストレージ最適化 ディスクスループットと IO が高い VM。データベース向け。
GPU 高負荷グラフィックスやビデオ編集向け VM。ディープラーニングのモデル学習・推論にも最適。
ハイパフォーマンスコンピューティング 高速 CPU と高スループットネットワークを備えた最も強力な VM。

サイズの変更が必要な場合

Azure では、既存の VM サイズがニーズに合わない場合、アップグレードやダウングレードでサイズを変更できる。現在のハードウェア構成で新しいサイズが許容されれば、VM を実行中にサイズ変更も可能。Azure ポータルでは利用可能なサイズだけが表示され、使えないサイズを選ぶと CLI でエラーになる。サイズ変更を実行すると、自動的に VM が再起動する。

また、VM を停止して割り当てを解除すれば、その VM が属していたクラスターから削除され、リージョン内で利用可能な任意のサイズを選べるようになる。

VM のパーツとその課金方法

リソース 説明 コスト
仮想ネットワーク (VNet) VM が他のリソースと通信するために使用 VNet の価格
仮想ネットワーク インターフェイスカード (NIC) VNet に接続するために使用 NIC 自体には追加コストなし。ただし VM サイズごとに使用できる NIC 数に制限あり。VM 価格も参照する必要あり
IP アドレス (プライベート/パブリック) 内部および外部ネットワークとの通信やデータ交換に使用 IP アドレスの価格
ネットワーク セキュリティ グループ (NSG) VM のネットワークトラフィック管理。ポートの開閉やアクセス制御に使用 NSG 自体に追加料金はなし
OS ディスクおよびデータ用ディスク OS とは別にデータを保存するためのディスク。障害時にデータディスクを別 VM に移行可能 OS ディスクは通常料金がかかる。ローカルディスクは課金なし。Premium/Standard ディスクはマネージドディスクの価格に準ずる
OS ライセンス VM 上で OS を実行するために必要 VM のコア数によって変動。Azure ハイブリッド特典でコスト削減可能

価格モデルについて理解する

Azure では、VM に対してコンピューティングとストレージの 2 種類のコストが別々に課金される。これにより、必要なコストだけを支払い、個別にスケーリングできる。

コンピューティングコストは時間単位で課金され、請求は分単位で行われる。たとえば、VM を 55 分間使った場合は 55 分分だけ課金される。VM を停止して割り当てを解除すれば、ハードウェアが解放されるためコンピューティングコストは発生しない。料金は選んだ VM サイズと OS によって変わり、Linux は OS 料金なし、Windows は OS 料金込みで計算される。

コンピューティングコストについては、2 つの支払いオプションから選ぶことができる。

オプション 説明
従量課金制 コンピューティング容量に対して秒単位で支払い、長期契約や前払い不要。需要に応じて起動・停止や容量の増減が可能。短期間や予測できないワークロード、テストや開発用途に向く。
予約仮想マシン インスタンス (RI) 特定リージョンで 1~3 年分の VM を前払いで予約購入。従量課金制より最大 72% 割引。継続的に VM を使用する場合や予算予測が必要な場合に向く。柔軟に交換や早期解約も可能。

ストレージコスト は VM の状態に関係なく課金される。VM が停止中や割り当て解除中でも、ディスクに割り当てられたストレージ容量に対して料金が発生する。

VM 用のストレージ

Azure のすべての仮想マシンには最低 2 つの仮想ハードディスク (VHD) がある。1 つはオペレーティングシステム用、もう 1 つは一時ストレージ用。アプリケーションデータは別のデータディスクに格納し、ディスク単位で管理できる。VM にアタッチ可能なデータディスクの最大数は VM サイズに依存し、通常は vCPU あたり 2 つまで。

ディスクの種類は以下の 5 種類で、用途に応じて使い分ける。

  • Ultra ディスク
  • Premium SSD v2(プレビュー)
  • Premium SSD(ソリッドステートドライブ)
  • Standard SSD
  • Standard HDD(ハードディスクドライブ)
ディスク種類 ディスクタイプ 適したシナリオ 最大サイズ (GiB) 最大スループット (MB/秒) 最大 IOPS OS ディスク使用
Ultra Disk SSD SAP HANA や大規模データベース、I/O 集約型やトランザクション多めのワークロード 65,536 4,000 160,000 いいえ
Premium SSD v2 SSD 低遅延・高 IOPS が常に必要な運用・高パフォーマンスワークロード 65,536 1,200 80,000 いいえ
Premium SSD SSD 運用環境やパフォーマンス影響を受けやすいワークロード 32,767 900 20,000 あり
Standard SSD SSD Web サーバー、使用頻度低めのアプリ、開発/テスト 32,767 750 6,000 あり
Standard HDD HDD バックアップや重要でないアクセス、アクセス頻度低めのワークロード 32,767 500 2,000 あり

オペレーティング システムを選択する

Azure では、Linux や Windows などの OS イメージをそのまま VM に使える。OS の種類によって料金が変わることがある。

Marketplace では、OS とアプリがセットになった便利なイメージも利用可能。必要なものがなければ、自分でカスタムイメージを作って複数の VM に使ったり、リージョン間で管理・複製もできる。

演習 - Azure portal を使用して VM を作成する

十分に理解できる内容のため、省く

Azure 仮想マシンを作成および管理するためのオプションについて説明する

Azure portal は簡単にリソースを作れるが、複数の VM などをまとめて作る場合は効率が悪い。

代わりに、テンプレートや PowerShell、CLI、REST API、Client SDK、VM 拡張機能、Automation Services などを使うと自動化や一括作成が可能となる。

Resource Manager テンプレート

VM をコピーする場合、従来はイメージを作ってアップロードする必要があり、時間と手間がかかる。

Azure では Resource Manager テンプレートを使うと効率的。テンプレートは JSON でリソース構成を定義でき、VM 名やネットワーク名などをパラメーター化して、ステージングや本番など複数環境で同じ構成を簡単に再利用できる。

[VM] メニューの [ Automation ] で [ テンプレートのエクスポート] を選択すると、テンプレートを作成できる。

image.png

Azure CLI

Azure CLI は、仮想マシンやディスクなどの Azure リソースをコマンドラインから操作できるクロスプラットフォームのツール。Linux、macOS、Windows、ブラウザーの Cloud Shell でも使用可能。

az vm create コマンドで VM を作成でき、Ruby や Python のスクリプトからも呼び出せる。JSON やパラメーターを組み合わせて、自動化や繰り返し作業が簡単に行える。

az vm create --resource-group TestResourceGroup --name test-wp1-eus-vm --image Ubuntu2204 --admin-username azureuser --generate-ssh-keys

Azure PowerShell

Azure PowerShell は、対話的な操作や繰り返し作業の自動化に向いたツールNew-AzVM コマンドレットを使えば、Debian などの VM を作成できる。

VM 作成時には、リソースグループ名、VM 名、リージョン、OS イメージ、ネットワーク、サブネット、NSG、パブリック IP、SSH キー、開放ポートなど、多数のパラメーターを指定可能。必要なパラメーターだけを指定すれば、ほかは既定値が使われるため簡単に設定できる。

New-AzVm -ResourceGroupName "TestResourceGroup" -Name "test-wp1-eus-vm" -Location "East US" -Image Debian11 -VirtualNetworkName "test-wp1-eus-network" -SubnetName "default" -SecurityGroupName "test-wp1-eus-nsg" -PublicIpAddressName "test-wp1-eus-pubip" -GenerateSshKey -SshKeyName myPSKey
    -OpenPorts 22

Terraform

Azure では Terraform プロバイダーを使って VM を作成・管理可能。HCL 言語で構成ファイルを作成し、クラウドリソースの設定や関係を定義できる。作成後に実行プランを作ることで、変更内容を事前にプレビューし、その後適用してインフラをデプロイできる。

プログラム (API)

単純なスクリプトやコマンドライン操作には Azure CLI や Azure PowerShell が向く。複雑なロジックや大規模アプリの一部として VM を扱う場合は、より高度なプログラム的アプローチが必要となる。Azure 内のほぼすべてのリソースはプログラムから操作可能。

Azure REST API

Azure REST API は、HTTP メソッド(GET、PUT、POST、DELETE、PATCH)を使ってリソース操作を実行できるインターフェース。これにより、VM や関連リソースをプログラムから作成・管理できる。

Azure Client SDK

Azure クライアント SDK は、REST API をラップして扱いやすくしたライブラリ。言語やプラットフォームに依存せず、C#、Java、Node.js、PHP、Python、Ruby、Go などから Azure リソースにアクセス・操作できる。

var azure = Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
    .Authenticate(credentials)
    .WithDefaultSubscription();
// ...
var vmName = "test-wp1-eus-vm";

azure.VirtualMachines.Define(vmName)
    .WithRegion(Region.USEast)
    .WithExistingResourceGroup("TestResourceGroup")
    .WithExistingPrimaryNetworkInterface(networkInterface)
    .WithLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .WithAdminUsername("jonc")
    .WithAdminPassword("aReallyGoodPasswordHere")
    .WithComputerName(vmName)
    .WithSize(VirtualMachineSizeTypes.StandardDS1)
    .Create();

Azure VM 拡張機能

Azure VM 拡張機能は、VM をデプロイした後に追加のソフトウェアを構成・インストールしたり、タスクを自動化・監視したりするための小さなアプリケーション。

Azure Automation サービス

リモートインフラ管理で直面する課題は、時間の節約、エラーの削減、効率の向上。多数のインフラサービスがある場合は、Azure の上位レベルサービスを活用して、運用を効率化するのが有効。

Azure Automation は、頻繁で手間のかかる管理タスクを自動化できるサービス。機能には、プロセスの自動化、構成管理、更新管理が含まれる。

  • プロセスの自動化
    • 特定のエラーイベントを監視するVMに対して、自動的にアクションを実行
    • 問題発生時に即座に対応できる監視タスクを設定可能
  • 構成管理
    • VM上のOSで使用可能なソフトウェア更新プログラムを追跡
    • 含める/除外する更新プログラムを指定して管理
    • Microsoft Endpoint Configuration Managerを利用し、会社のPC・サーバー・モバイルデバイス管理をAzure VMに拡張可能
  • Update Management(更新管理)
    • VMの更新プログラムやパッチを管理
    • 利用可能な更新プログラムの状態評価、インストールスケジュール設定、展開結果確認が可能
    • プロセス管理と構成管理機能が組み込まれている
    • Azure Automationアカウントから有効化可能、ポータルから単一VM単位でも有効化可能

自動シャットダウン

自動シャットダウンは、設定したスケジュールに従ってVMを自動で停止させるAzureの機能。不要な時間にVMが動作しないようにしてコストを節約できる。毎日・毎週の実行やタイムゾーン指定も可能で、Azure portalのVMブレードから[操作]→[自動シャットダウン]で設定できる。

image.png

Azure VM の可用性を管理する

サービス企業の成功は、顧客とのSLAに直結する。顧客はサービスの常時利用可能性とデータの安全性を期待する。Azureは、可用性、データセキュリティ、監視のためのツールを提供し、VM管理はOSやソフトウェアだけでなく、サービス全体の可用性確保や自動化支援も含まれる。これらのサービスは、事業継続やディザスターリカバリーの計画にも役立つ。ここでは、VMの可用性向上、管理タスクの効率化、データのバックアップとセキュリティを支援するAzureサービスを紹介する。

可用性とは何ですか?

可用性とは、サービスが利用可能な時間の割合を指す。たとえば、Webサイトを運営している場合、顧客が常に情報にアクセスできる状態を維持することが目標であり、理想としては100%の可用性を期待する。

Azure を使用するとき、なぜ可用性について考慮する必要があるのでしょうか?

Azure VM は物理サーバー上で実行されるため、サーバーが故障すると VM も停止する。ただし、Azure は自動的に VM を正常なサーバーに移動させる自己修復機能を持つ。この移行には数分かかるため、その間 VM 上のアプリケーションは利用できなくなる。また、Azure の定期的な保守やアップデートも VM に影響することがあり、再起動が必要になる場合があるが、これによりプラットフォームの信頼性と性能が向上する。

可用性ゾーン

可用性ゾーンは、VM のアプリケーションとデータの可用性を高めるための物理的に独立したゾーン。各ゾーンは異なる電源・ネットワーク・冷却装置を持つ。1 つのゾーンで障害が発生しても、別のゾーンにレプリケートされた VM がすぐに利用可能になり、サービスを継続できる。Azure の多くのリージョンでは 3 つのゾーンが提供される。

Virtual Machines スケール セット

Azure Virtual Machine スケール セットは、負荷分散される複数の VM をグループ化して管理する仕組み。需要やスケジュールに応じて VM の数を自動で増減させ、高可用性を確保する。多数の VM を一元管理・構成・更新でき、スケール セット自体に料金はなく、課金は各 VM インスタンスに対してのみ発生する。VM は複数ゾーン、単一ゾーン、あるいはリージョン単位でデプロイ可能で、可用性ゾーンの利用はオーケストレーション モードによって変わる。

Load Balancer

Azure Load Balancer は複数の VM にトラフィックを分散する機能。可用性ゾーンや可用性セットと組み合わせることで、アプリケーションの回復性を最大化できる。標準層の VM には自動的に含まれるが、すべての VM 層で提供されるわけではない。

Azure Storage の冗長性

Azure Storage は、計画的・計画外の障害からデータを守るため、常に複数コピーを保持する。冗長化により可用性と耐久性を確保できる。

冗長性オプションを選ぶ際のポイント:

  • プライマリ リージョン内でデータをどのようにレプリケートするか
  • 地域災害対策として、プライマリリージョンとは別のリージョンにデータを複製するか
  • プライマリリージョンが使えない場合、セカンダリリージョンのデータをアプリケーションで読み取る必要があるか

コストと可用性のトレードオフも考慮して選択する。

場所間でのフェールオーバー

Azure Site Recovery (ASR) は、サイト間でワークロードを複製し、プライマリサイトに障害が発生した際にセカンダリサイトにフェールオーバーできるサービス。これによりアプリケーションの可用性を維持でき、障害後はプライマリサイトにフェールバックも可能。

ビジネス上の主な利点

  • Azure を復元先として利用でき、第二の物理データセンターを維持するコストや手間を削減
  • 復旧演習でフェールオーバーを簡単にテストでき、計画済み・計画外の障害対応を事前に確認可能

特徴

  • 復旧計画はシンプルにも複雑にも設定可能。カスタム PowerShell スクリプト、Azure Automation Runbook、手動手順を組み込み可能
  • 移行、急増時の一時的スケールアウト、新規アプリ開発やテストにも活用可能
  • Azure リソースやオンプレミスの Hyper-V、VMware、物理サーバーと連携し、BCDR 戦略の中核を担う

簡単に言うと、Site Recovery は「障害時に自動でバックアップサイトに切り替え、業務を止めずに復旧できる仕組み」を提供するサービス。

仮想マシンをバックアップする

Azure Backup は、オンプレミスやクラウドの物理マシン・仮想マシンのデータを保護するバックアップサービス。データ消失や監査要件への対応に備え、慌てずに復元可能な状態を維持できる。

主なバックアップ対象シナリオ

  • Windows OS 上のファイルやフォルダー(物理・仮想、ローカル・クラウド問わず)
  • アプリケーション対応スナップショット(ボリューム シャドウ コピー サービス使用)
  • Microsoft SQL Server、SharePoint、Exchange などのサーバーワークロード
  • Azure Virtual Machines のネイティブバックアップ(Windows・Linux両対応)
  • Linux や Windows 10 のクライアントコンピューター

要するに、Azure Backup を使うと、重要データやアプリケーションの状態を簡単に定期的に保存し、必要なときに安全に復元できる。

image.png

Azure Backup を使用する利点

Azure Backup は従来のバックアップと比べて、Azure プラットフォームを最大限に活用できる設計になっており、高額・非効率になりにくい。主な特長は以下の通り。

  • 自動ストレージ管理:従量制課金でバックアップ用ストレージを自動割り当て・管理。使用分だけ支払い
  • 無制限のスケーリング:Azure の拡張性を活かし、可用性を確保
  • 複数のストレージオプション:ローカル冗長(同リージョン内コピー)、Geo 冗長(セカンダリリージョンにコピー)
  • 無制限のデータ転送:バックアップの送受信量に制限なし、転送で課金されない
  • データ暗号化:転送・保存中のデータを安全に保護
  • アプリケーション整合性バックアップ:復旧ポイントに必要なすべてのデータを保持、アプリ間で一貫性のあるバックアップ
  • 長期保有:バックアップデータの保持期間に制限なし

要するに、Azure Backup は自動化・拡張性・セキュリティ・整合性に優れ、効率的かつ安全にバックアップを管理できる。

Azure Backup の使用

Azure Backup では、バックアップ対象や環境に応じていくつかのコンポーネントをコンピューターにデプロイする。主なコンポーネントは以下。

  • Azure Backup エージェント:ファイルやフォルダー単位のバックアップ用。
  • System Center データ保護マネージャー (DPM):オンプレミスやハイブリッド環境向けのバックアップ管理。
  • Azure Backup Server:DPM の機能を統合した Azure 専用サーバー。
  • Azure Backup VM 拡張機能:Azure 仮想マシンのネイティブバックアップ用。

バックアップデータは Recovery Services コンテナー に格納される。コンテナーは Azure Storage Blob 上に置かれるため、効率的かつ経済的に長期保存が可能。
コンテナー作成後、バックアップ対象のコンピューターを選択し、バックアップポリシー(スナップショット作成タイミングや保持期間)を設定できる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?