Azure Compute Gallery でリソースを格納、共有する
適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット
Azure Compute Gallery を使用すると、Azure リソース (イメージ、アプリケーション) の構造と体系を構築することができます。 Azure Compute Gallery には次の特長があります。
- グローバル レプリケーション。1
- 容易な管理のためのリソースのバージョン管理とグループ化。
- Availability Zones がサポートされるリージョンでのゾーン冗長ストレージ (ZRS) アカウントによる高可用性リソース。 ZRS では、ゾーンの障害に対する回復性の向上が提供されます。
- Premium Storage のサポート (Premium_LRS)。
- コミュニティへの共有、サブスクリプション間の共有、Active Directory (AD) テナント間の共有。
- 各リージョン内のリソース レプリカを使用したデプロイのスケーリング。
ギャラリーを使用すると、全員にリソースを共有したり、組織内のさまざまなユーザー、サービス プリンシパル、AD グループに限定してリソースを共有したりできます。 リソースを複数のリージョンにレプリケートすることで、デプロイのスケーリングにかかる時間を短縮することができます。
1 Azure Compute Gallery サービスはグローバル リソースではありません。 ディザスター リカバリー シナリオでは、少なくとも 2 つのギャラリーを異なるリージョンに配置することをお勧めします。
イメージ
Azure Compute Gallery へのイメージの格納について詳しくは、「Azure Compute Gallery でイメージを格納、共有する」を参照してください。
VM アプリ
アプリが事前にインストールされている VM のイメージを作成することはできますが、その場合はアプリケーションを変更するたびにイメージを更新する必要があります。 VM イメージからアプリケーションのインストールを分離することは、コードを変更するたびに新しいイメージを公開する必要がないことを意味します。
Azure Compute Gallery へのアプリケーションの格納について詳しくは、VM アプリケーションに関するページを参照してください。
リージョン サポート
すべてのパブリック リージョンはターゲット リージョンにすることができますが、一部のリージョンでは、アクセスするために顧客が要求プロセスを経る必要があります。 オーストラリア中部、オーストラリア中部 2 などのリージョンの許可リストにサブスクリプションを追加する要求をするには、アクセス要求を送信します
制限
Azure Compute Gallery を使用したリソースのデプロイに対しては、サブスクリプションあたりの制限があります。
- 100 個のギャラリー (サブスクリプション別、リージョン別)
- 1,000 個のイメージ定義 (サブスクリプション別、リージョン別)
- 10,000 個のイメージ バージョン (サブスクリプション別、リージョン別)
- イメージ バージョンごとに 100 個のレプリカ (ただし、ほとんどのユース ケースでは 50 個のレプリカで十分です)
- イメージに接続されるディスクは、サイズが 2 TB 以下であること
- リソースの移動は、Azure Compute Gallery リソースではサポートされていません
現在の使用量を確認する方法など、詳細については、「制限に照らしたリソース使用量の確認」をご覧ください。
Scaling
Azure Compute Gallery を使用して、保持したいレプリカ数を指定できます。 複数 VM デプロイのシナリオでは、VM のデプロイを異なるレプリカに分散させることで、単一のレプリカのオーバーロードが原因でインスタンス作成処理が抑制される可能性を減らすことができます。
Azure Compute Gallery を使用すると、スケール セットで最大 1,000 個の VM インスタンスをデプロイできます。 そのリージョンでのスケールのニーズに基づいて、各ターゲット リージョンで異なるレプリカ数を設定できます。 各レプリカはご利用のリソースのコピーであるため、これによりそれぞれの追加のレプリカで線形的にデプロイをスケーリングできます。 2 つのリソースまたはリージョンが同じでないことは理解していますが、1 つのリージョンで複数のレプリカを使用する方法についての一般的なガイドラインを次に示します。
- 同時に作成する VM 20 個ごとに、1 つのレプリカを保持することをお勧めします。 たとえば、1 つのリージョンの同じイメージを使用して同時に 120 個の VM を作成している場合、自分のイメージの少なくとも 6 個のレプリカを保持することをお勧めします。
- 同時に作成するスケール セットごとに、1 つのレプリカを保持することをお勧めします。
常に、リソース サイズ、コンテンツ、OS の種類などの要因で、レプリカの数を過剰プロビジョニングすることをお勧めします。
高可用性
Azure ゾーン冗長ストレージ (ZRS) では、リージョンの可用性ゾーンのエラー発生時に復元することができます。 Azure Compute Gallery の一般的な可用性では、Availability Zones でリージョン内の ZRS アカウントに自分のイメージを格納することを選択できます。
また、ターゲット リージョンごとにアカウントの種類を選ぶこともできます。 既定のストレージ アカウントの種類は Standard_LRS ですが、Availability Zones でリージョンに Standard_ZRS を選ぶことができます。 ZRS のリージョンの可用性の詳細については、「データの冗長性」を参照してください。
レプリケーション
Azure Compute Gallery では、他の Azure リージョンにリソースを自動的にレプリケートすることもできます。 各イメージ バージョンは、組織の目的に応じて、さまざまなリージョンにレプリケートできます。 たとえば、最新のイメージは常に複数のリージョンにレプリケートし、それよりも古い他の全イメージ バージョンの提供は 1 つのリージョンに限定するようにします。 これによってストレージのコストを軽減することができます。
リソースのレプリケート先のリージョンは、作成時点より後に更新できます。 さまざまなリージョンへのレプリケートにかかる時間は、コピーされるデータ量と、バージョンのレプリケート先となるリージョン数に応じて変わります。 場合によっては、これに 2 ~ 3 時間かかることがあります。 レプリケーションが行われている間は、リージョンごとのレプリケーション ステータスを確認できます。 リージョンでイメージのレプリケーションが完了すると、以降はリージョン内でそのリソースを使って、VM またはスケール セットをデプロイできます。
共有
Azure Compute Gallery でイメージを共有する主な方法は、共有する相手に応じて 3 つあります。
共有相手: | ユーザー | グループ | サービス プリンシパル | 特定のサブスクリプション (または) テナント内のすべてのユーザー | Azure のすべてのユーザーと公に |
---|---|---|---|---|---|
RBAC 共有 | はい | イエス | はい | いいえ | いいえ |
RBAC + 直接共有ギャラリー | はい | イエス | イエス | はい | いいえ |
RBAC + コミュニティ ギャラリー | はい | イエス | はい | いいえ | イエス |
Note
イメージに対する読み取りアクセス許可があると、そのイメージを使用して仮想マシンとディスクをデプロイすることができるのでご注意ください。
直接共有ギャラリーを利用すると、イメージはサブスクリプションやテナント内のすべてのユーザーに広く配布されるのに対し、コミュニティ ギャラリーではイメージは一般に配布されます。 知的財産を含むイメージを共有する場合は、広く配布されないように注意することをお勧めします。
RBAC
Azure Compute Gallery、定義、バージョンはすべてリソースであるため、組み込みのネイティブ Azure RBAC (ロールベースのアクセス制御) ロールを使用して共有できます。 Azure RBAC ロールを使用して、他のユーザー、サービス プリンシパル、グループなどに、これらのリソースを共有できます。 それらが作成されたテナントの外部の個人とアクセスを共有することもできます。 ユーザーは、リソースのバージョンへのアクセス権を取得した後、それを使用して VM または仮想マシン スケール セットをデプロイできます。 ユーザーが取得するアクセスを理解するための共有マトリックスを次に示します。
ユーザーによる共有 | Azure Compute Gallery | イメージ定義 | イメージ バージョン |
---|---|---|---|
Azure Compute Gallery | はい | イエス | はい |
イメージの定義 | いいえ | イエス | はい |
最良のエクスペリエンスのため、ギャラリー レベルで共有することをお勧めします。 個別のイメージ バージョンの共有はお勧めできません。 Azure RBAC の詳細については、Azure のロールの割り当てに関するページを参照してください。
詳細については、「RBAC を使用した共有」を参照してください。
テナントまたはサブスクリプションに直接共有する
特定のサブスクリプションまたはテナントに直接共有 Azure Compute Gallery へのアクセス権を付与します。 テナントおよびサブスクリプションとギャラリーを共有することで、テナントおよびサブスクリプションによるギャラリーへの読み取り専用アクセスが可能になります。 詳細については、「サブスクリプションまたはテナントとギャラリーを共有する」を参照してください。
重要
Azure Compute Gallery – 直接共有ギャラリーは現在プレビュー段階であり、Azure Compute Gallery のプレビューの使用条件の対象となります。
プレビュー中にイメージを直接共有ギャラリーに公開するには、https://aka.ms/directsharedgallery-preview で登録する必要があります。 直接共有ギャラリーからの VM の作成は、すべての Azure ユーザーに開放されています。
プレビュー中は、プロパティ sharingProfile.permissions
を Groups
に設定して、新しいギャラリーを作成する必要があります。 CLI を使用してギャラリーを作成するときは、--permissions groups
パラメーターを使用します。 既存のギャラリーを使用することはできません。プロパティは現在更新できません。
現在、別のテナントによって共有されたイメージから Flexible 仮想マシン スケール セットを作成することはできません。
制限事項
プレビュー期間中:
- 共有できる相手は、同じくプレビュー段階であるサブスクリプションだけです。
- 共有できる相手は、30 のサブスクリプションと 5 つのテナントだけです。
- 直接共有ギャラリーに暗号化されたイメージ バージョンを含めることはできません。 暗号化されたイメージを、直接共有されているギャラリー内に作成することはできません。
- サブスクリプションの所有者、またはサブスクリプション レベルかギャラリー レベルの
Compute Gallery Sharing Admin
ロールに割り当てられたユーザーまたはサービス プリンシパルだけがグループベースの共有を有効にできるようになります。 - プロパティ
sharingProfile.permissions
をGroups
に設定して、新しいギャラリーを作成する必要があります。 CLI を使用してギャラリーを作成するときは、--permissions groups
パラメーターを使用します。 既存のギャラリーを使用することはできません。プロパティは現在更新できません。
コミュニティ ギャラリー
ギャラリーをすべての Azure ユーザーと共有するには、コミュニティ ギャラリー を作成できます。 コミュニティ ギャラリーは、Azure サブスクリプションを持つすべてのユーザーが使用できます。 VM を作成するユーザーは、ポータル、REST、または Azure CLI を使用して、コミュニティと共有されているイメージを参照できます。
コミュニティへのイメージの共有は、Azure Compute Gallery の新機能です。 イメージ ギャラリーをパブリックにすることで、Azure の全ユーザーに共有することができます。 コミュニティ ギャラリーとしてマークされているギャラリーにあるすべてのイメージは、Microsoft.Compute/communityGalleries 下の新しい種類のリソースとして Azure の全ユーザーに提供されます。 すべての Azure ユーザーがギャラリーを参照し、それらを使用して VM を作成できます。 元からある Microsoft.Compute/galleries
タイプのリソースは、その後もご利用のサブスクリプション下にプライベートな状態で維持されます。
詳細については、「コミュニティ ギャラリーを使用してイメージを共有する」を参照してください。
重要
現在、別のテナントによって共有されたイメージから Flexible 仮想マシン スケール セットを作成することはできません。
アクティビティ ログ
アクティビティ ログには、ギャラリー、イメージ、またはバージョンの最近のアクティビティが表示されます。構成の変更や、作成および削除された日時が含まれます。 Azure portal でアクティビティ ログを表示するか、診断設定を作成して Log Analytics ワークスペースに送信します。そこでは、イベントを経時的に表示したり、収集された他のデータで分析したりできます。
次の表に、アクティビティ ログでのギャラリー操作に関連する操作のいくつかの例を示します。 使用可能なログ エントリの完全な一覧については、 リソース プロバイダー オプションに関する記事を参照してください
操作 | 説明 |
---|---|
Microsoft.Compute/galleries/write | 新しいギャラリーを作成するか、既存のギャラリーを更新します |
Microsoft.Compute/galleries/delete | ギャラリーを削除します |
Microsoft.Compute/galleries/share/action | ギャラリーを別のスコープに共有します |
Microsoft.Compute/galleries/images/read | ギャラリー イメージのプロパティを取得します |
Microsoft.Compute/galleries/images/write | 新しいギャラリー イメージを作成するか、既存のギャラリー イメージを更新します |
Microsoft.Compute/galleries/images/versions/read | ギャラリー イメージ バージョンのプロパティを取得します |
課金
Azure Compute Gallery サービスを使用するための追加料金はかかりません。 次のリソースに対しては、課金されます。
- 各レプリカを格納するためのストレージ コスト。 イメージのストレージ コストは、イメージ バージョンの占有サイズ、イメージ バージョンのレプリカの数、およびバージョンのレプリケート先となるリージョンの数に基づき、スナップショットとして課金されます。
- ソース リージョンからレプリケート先のリージョンに最初のリソース バージョンをレプリケートするための、ネットワーク エグレスの料金。 後続のレプリカはリージョン内で処理されるので、追加料金は発生しません。
たとえば、ストレージを 10 GB だけ占有する 127 GB の OS ディスクのイメージと、1 つの空の 32 GB のデータ ディスクがあるとします。 各イメージの占有サイズは 10 GB のみです。 イメージは 3 つのリージョンにレプリケートされ、各リージョンには 2 つのレプリカがあります。 合計 6 つのスナップショットがあり、それぞれ 10 GB を使用します。 各スナップショットのストレージ コストは、10 GB の占有サイズに基づいて課金されます。最初のレプリカを追加の 2 つのリージョンにコピーするためのネットワーク エグレス料金が課金されます。 各リージョンのスナップショットの価格の詳細については、「Managed Disks の価格」を参照してください。 ネットワーク エグレスの詳細については、「帯域幅の料金詳細」を参照してください。
ベスト プラクティス
イメージが誤って削除されないようにするには、ギャラリー レベルでリソース ロックを使用します。 詳細については、「ロックを使用して Azure リソースを保護する」を参照してください。
高可用性のために使用可能な場所であれば、ZRS を使用します。 イメージまたは VM アプリケーションのバージョンを作成するときに、レプリケーション タブで ZRS を構成できます。 ZRS をサポートするリージョンの詳細については、「 可用性ゾーンを持つ Azure リージョン」を参照してください。
運用イメージのレプリカは、少なくとも 3 つ保持してください。 同時に作成する VM 20 個ごとに、1 つのレプリカを保持することをお勧めします。 たとえば、1000 VM を同時に作成する場合は、50 個のレプリカを保持する必要があります (リージョンあたり最大 50 個のレプリカを使用できます)。 レプリカ数を更新するには、[ギャラリー] -> [イメージ定義] -> [イメージ バージョン] -> [レプリケーションの更新] に移動してください。
運用環境用とテスト用のイメージに個別のギャラリーを維持し、それらを 1 つのギャラリーに入れないでください。
イメージ定義を作成するときは、パブリッシャー/オファー/SKU を Marketplace イメージと一貫させて、OS のバージョンを簡単に識別できるようにします。 たとえば、Marketplace から Windows Server 2019 イメージをカスタマイズし、それをコンピューティング ギャラリー イメージとして保存する場合は、Marketplace イメージで使用されているのと同じパブリッシャー/オファー/SKU をコンピューティング ギャラリー イメージで使用してください。
VM またはスケール セットの作成時に特定のイメージ バージョンを除外する場合は、イメージを発行するときに
excludeFromLatest
を使用します。 ギャラリー イメージ バージョン - 作成または更新。特定のリージョンのバージョンを除外する場合は、グローバル
excludeFromLatest
の代わりにregionalExcludeFromLatest
を使用します。 グローバル フラグとリージョンexcludeFromLatest
フラグの両方を設定できますが、両方を指定するとリージョン フラグが優先されます。"publishingProfile": { "targetRegions": [ { "name": "brazilsouth", "regionalReplicaCount": 1, "regionalExcludeFromLatest": false, "storageAccountType": "Standard_LRS" }, { "name": "canadacentral", "regionalReplicaCount": 1, "regionalExcludeFromLatest": true, "storageAccountType": "Standard_LRS" } ], "replicaCount": 1, "excludeFromLatest": true, "storageAccountType": "Standard_LRS" }
ディザスター リカバリー シナリオでは、少なくとも 2 つのギャラリーを異なるリージョンに配置することをお勧めします。 他のリージョンでもイメージ バージョンを使用できますが、ギャラリーが存在するリージョンがダウンした場合は、新しいギャラリー リソースを作成したり、既存のギャラリー リソースを更新したりすることはできません。
Image バージョンの
safetyProfile.allowDeletionOfReplicatedLocations
を false に設定すると、レプリケートされたリージョンが誤って削除されるのを防ぎ、停止を防止できます。 これは、CLI (allow-replicated-location-deletion) を使って設定することもできます
{
"properties": {
"publishingProfile": {
"targetRegions": [
{
"name": "West US",
"regionalReplicaCount": 1,
"storageAccountType": "Standard_LRS",
// encryption info
}
],
"replicaCount": 1,
"publishedDate": "2018-01-01T00:00:00Z",
"storageAccountType": "Standard_LRS"
},
"storageProfile": {
"source": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}"
},
},
“safetyProfile”: {
“allowDeletionOfReplicatedLocations” : false
},
},
"location": "West US",
"name": "1.0.0"
}
SDK のサポート
Azure Compute Gallery の作成は、次の SDK でサポートされます。
テンプレート
Azure Compute Gallery リソースは、テンプレートを使用して作成できます。 いくつかのクイックスタート テンプレートが用意されています。