ラボ 03 - Azure Resource Manager テンプレートを使用して Azure リソースを管理する
ラボ概要
このラボでは、リソースのデプロイを自動化する方法について学習します。 学習するのは、Azure Resource Manager テンプレートと Bicep テンプレートについてです。 テンプレートをデプロイするさまざまな方法について学習します。
このラボでは Azure サブスクリプションが必要です。 お使いのサブスクリプションの種類により、このラボの機能が使用できるかどうかに影響する可能性があります。 リージョンを変更できますが、手順は米国東部を使って作成されています。
推定時間:50 分
対話型ラボ シミュレーション
このトピックで役に立つ対話型ラボ シミュレーションがあります。 シミュレーションを使うと、同様のシナリオを自分のペースでクリックして進めることができます。 対話型シミュレーションとこのラボには違いがありますが、主要な概念の多くは同じです。 Azure サブスクリプションは必要ありません。
-
Azure Resource Manager テンプレートを使用して Azure リソースを管理する。 テンプレートを使用してマネージド ディスクを確認、作成、デプロイします。
-
テンプレートを使用して仮想マシンを作成する。 クイックスタート テンプレートを使用して仮想マシンをデプロイします。
ラボのシナリオ
あなたのチームは、リソースのデプロイを自動化して簡素化する方法を探しています。 組織では、管理のオーバーヘッドを削減し、人為的ミスを減らし、一貫性を高める方法を探しています。
アーキテクチャの図
職務スキル
- タスク 1: Azure Resource Manager テンプレートを作成する。
- タスク 2: Azure Resource Manager テンプレートを編集し、テンプレートを再デプロイする。
- タスク 3: Cloud Shell を構成し、Azure PowerShell を使用してテンプレートをデプロイする。
- タスク 4: CLI を使用してテンプレートをデプロイする。
- タスク 5:Azure Bicep を使用してリソースをデプロイします。
タスク 1:Azure Resource Manager テンプレートの作成
このタスクでは、Azure portal でマネージド ディスクを作成します。 マネージド ディスクは、仮想マシンで使用するように設計されたストレージです。 ディスクがデプロイされたら、他のデプロイで使用できるテンプレートをエクスポートします。
-
Azure portal -
https://portal.azure.com
にサインインします。 -
Disks
を検索して選択します。 -
[ディスク] ページで、[作成] を選択します。
-
[マネージド ディスクの作成] ページで、ディスクを構成し、[OK] を選択します。
設定 値 サブスクリプション 該当するサブスクリプション リソース グループ az104-rg3
(必要に応じて、[新規作成] を選択します。)ディスク名 az104-disk1
リージョン 米国東部 可用性ゾーン インフラストラクチャ冗長は必要ありません 変換元の型 なし パフォーマンス [Standard HDD] (サイズ変更) サイズ [32 Gib] 注: テンプレートを使用して練習できるように、シンプルなマネージド ディスクを作成しています。 Azure マネージド ディスクは、Azure によって管理されるブロックレベルのストレージ ボリュームです。
-
[確認および作成] をクリックし、[作成] を選択します。
-
通知 (右上) を監視し、デプロイ後に [リソースに移動] を選択します。
-
[自動化] ブレードで、[テンプレートのエクスポート] を選択します。
-
少し時間を取って [テンプレート] と [パラメータ] ファイルをレビューします。
-
[ダウンロード] をクリックし、テンプレートをローカル ドライブに保存します。 これにより、圧縮された ZIP ファイルが作成されます。
-
エクスプローラーを使用して、ダウンロードしたファイルの内容をコンピューターの [ダウンロード] フォルダーに抽出します。 JSON ファイルが 2 つ (テンプレートとパラメータ) あることを確認してください。
ご存知でしたか? リソース グループ全体、またはそのリソース グループ内の特定のリソースだけをエクスポートできます。
タスク 2:Azure Resource Manager テンプレートを編集してテンプレートを再デプロイする
このタスクでは、ダウンロードしたテンプレートを使用して新しいマネージド ディスクをデプロイします。 このタスクでは、デプロイを迅速かつ簡単に繰り返す方法について説明します。
-
Azure portal で、
Deploy a custom template
を検索して選択します。 -
[カスタム デプロイ] ブレードに、クイックスタート テンプレートを使用する機能があることに注目してください。 ドロップダウン メニューに示されるように、多くの組み込みテンプレートがあります。
-
クイックスタートを使用する代わりに、[エディターで独自のテンプレートを作成する] を選択します。
-
[テンプレートの編集] ブレードで、[ファイルの読み込み] をクリックし、ダウンロードした [template.json] ファイルをローカル ディスクにアップロードします。
-
エディター ペイン内で、これらの変更を行います。
- [disks_az104_disk1_name] を
disk_name
に変更します (変更は 2 箇所) - [az104-disk1] を
az104-disk2
に変更します (変更は 1 箇所)
- [disks_az104_disk1_name] を
-
これが [Standard] ディスクであることを確認してください。 場所は [eastus] です。 ディスク サイズは [32GB] です。
-
変更内容を保存します。
-
パラメータ ファイルを忘れないでください。 [パラメーターの編集] を選択し、[ファイルの読み込み] をクリックして [parameters.json] をアップロードします。
-
この変更は、テンプレート ファイルと一致させるために行います。
[disks_az104_disk1_name] を [disk_name] に変更します (変更は 1 箇所)
-
変更内容を保存します。
-
次のようにカスタム デプロイ設定を完了します。
設定 値 サブスクリプション 該当するサブスクリプション リソース グループ az104-rg3
“リージョン” (米国) 米国東部 Disk_name az104-disk2
-
[確認および作成] を選択し、次に [作成] を選択します。
-
[リソースに移動] を選択します。 [az104-disk2] が作成されたことを確認します。
-
[概要] ブレードで、リソース グループ [az104-rg3] を選択します。 2 つのディスクが表示されているはずです。
-
[設定] セクションで [デプロイ] をクリックします。
注: すべてのデプロイの詳細は、リソース グループに記載されています。 テンプレートを使用して大規模な操作を行う前に、先にいくつかのテンプレートベースのデプロイが成功するかどうかを確認することをお勧めします。
-
デプロイを選択し、[入力] と [テンプレート] のブレードの内容をレビューします。
タスク 3:Cloud Shell を構成し、PowerShell を使用してテンプレートをデプロイする
このタスクでは、Azure Cloud Shell と Azure PowerShell を使用します。 Azure Cloud Shell は、Azure リソースを管理するための、ブラウザーでアクセスできる対話形式の認証されたターミナルです。 Bash または PowerShell どちらかのシェル エクスペリエンスを作業方法に合わせて柔軟に選択できます。 このタスクでは、PowerShell を使用してテンプレートをデプロイします。
-
Azure portal で、右上の [Cloud Shell] アイコンを選択します。 または、
https://shell.azure.com
に直接移動することもできます。 -
Bash または PowerShell の選択を求めるメッセージが表示されたら、PowerShell を選択します。
ご存知でしたか? Linux システムをよく使用する方は、Bash (CLI) の方が馴染みやすいでしょう。 Windows システムをよく使用する方は、Azure PowerShell の方が馴染みやすいでしょう。
-
[作業の開始] 画面で [ストレージ アカウントのマウント] を選択し、ご利用のストレージ アカウント サブスクリプションを選択した後、[適用] を選択します。
-
[ストレージ アカウントを作成したい]、[次へ] の順に選択します。 [ストレージ アカウントの作成] の情報を入力します。
設定 値 リソース グループ az104-rg3 リージョン リージョンを選択する ストレージ アカウント (新規作成) グローバルに一意で、長さは 3 から 24 文字にする必要があり、使用できるのは数字と小文字のみです ファイル共有 (新規作成) fs-cloudshell
-
完了したら [作成] を選択します。
ストレージがプロビジョニングされるまで数分かかります。
-
[設定] (上部のバー)、[クラシック バージョンに移動する] の順に選択します。
-
[ファイルのアップロード/ダウンロード] アイコン (上部のバー) を選択した後、[アップロード] を選択します。
-
[ダウンロード] ディレクトリからテンプレートとパラメーター ファイルを両方ともアップロードします。
-
[エディター (中かっこ)] アイコンを選択し、ナビゲーション ウィンドウの左側にあるテンプレート JSON ファイルに移動します。
-
変更を加えます。 たとえば、ディスク名を [az104-disk3] に変更します。 Ctrl + S キーを押して、変更内容を保存します。
注:リソース グループ、サブスクリプション、管理グループ、またはテナントをテンプレートのデプロイのターゲットにすることができます。 使用するコマンドは、デプロイのスコープに応じて異なります。
-
リソース グループにデプロイするには、New-AzResourceGroupDeployment を使用します。
New-AzResourceGroupDeployment -ResourceGroupName az104-rg3 -TemplateFile template.json -TemplateParameterFile parameters.json
-
コマンドが完了し、[ProvisioningState] が [成功] になっていることを確認します。
-
ディスクが作成されたことを確認します。
Get-AzDisk
タスク 4:CLI を使用してテンプレートをデプロイする
-
引き続き、[Cloud Shell] で [Bash] を選択します。 選択内容を確認します。
-
ファイルが Cloud Shell ストレージにあることを確認します。 前のタスクを完了した場合は、テンプレート ファイルが使用できるはずです。
ls
-
[エディター] (中かっこ) アイコンを選択し、テンプレート JSON ファイルに移動します。
-
変更を加えます。 たとえば、ディスク名を [az104-disk4] に変更します。 Ctrl + S キーを押して、変更内容を保存します。
注:リソース グループ、サブスクリプション、管理グループ、またはテナントをテンプレートのデプロイのターゲットにすることができます。 使用するコマンドは、デプロイのスコープに応じて異なります。
-
リソース グループにデプロイするには、az deployment group create を使用します。
az deployment group create --resource-group az104-rg3 --template-file template.json --parameters parameters.json
-
コマンドが完了し、[ProvisioningState] が [成功] になっていることを確認します。
-
ディスクが作成されたことを確認します。
az disk list --output table
タスク 5:Azure Bicep を使用してリソースをデプロイする
このタスクでは、Bicep ファイルを使用してマネージド ディスクをデプロイします。 Bicep は、ARM テンプレート上に構築された宣言型オートメーション ツールです。
-
[Bash] セッションの [Cloud Shell] で作業を続けます。
-
[\Allfiles\Lab03\azuredeploydisk.bicep] ファイルを見つけてダウンロードします。
-
Cloud Shell に Bicep ファイルをアップロードします。
-
[エディター] (中かっこ) アイコンを選択し、そのファイルに移動します。
-
Bicep テンプレート ファイルの読み取りには少し時間がかかります。 ディスク リソースがどのように定義されているかに注目してください。
-
次の変更を行います。
- [managedDiskName] の値を
Disk4
に変更します。 - [SKU 名] の値を
StandardSSD_LRS
に変更します。 - [diskSizeinGiB] の値を
32
に変更します。
- [managedDiskName] の値を
-
Ctrl + S キーを押して、変更内容を保存します。
-
ここで、テンプレートをデプロイします。
az deployment group create --resource-group az104-rg3 --template-file azuredeploydisk.bicep
-
ディスクが作成されたことを確認します。
az disk list --output table
注: 5 つのマネージド ディスクが、それぞれ異なる方法で正常にデプロイされました。 お疲れさまでした。
リソースのクリーンアップ
自分のサブスクリプションで作業している場合は、お手数ですが、ラボ リソースを削除してください。 これにより、リソースが確実に解放されるため、コストが最小限に抑えられます。 ラボ リソースを削除する最も簡単な方法は、ラボ リソース グループを削除することです。
- Azure portal で、リソース グループを選び、[リソース グループの削除]、[リソース グループ名を入力してください] の順に選び、[削除] をクリックします。
- Azure PowerShell を使用する場合は、「
Remove-AzResourceGroup -Name resourceGroupName
」と入力します。 - CLI を使用する場合は、「
az group delete --name resourceGroupName
」と入力します。
Copilot を使用して学習を拡張する
Copilot は、Azure スクリプト ツールの使用方法を学習するのに役立ちます。 Copilot は、ラボでは対象外の、またはさらに詳しい情報が必要な領域でも役立ちます。 Edge ブラウザーを開き、Copilot (右上) を選択するか、copilot.microsoft.com に移動します。 次のプロンプトを試すには数分かかります。
- Azure Resource Manager テンプレート ファイルの形式は何ですか? 各コンポーネントについて例を使用して説明してください。
- 既存の Azure Resource Manager テンプレートを使用する方法は?
- Azure Resource Manager テンプレートと Bicep テンプレートの類似点と相違点を説明してください。
自習トレーニングでさらに学習する
- JSON ARM テンプレートを使用して Azure インフラストラクチャをデプロイする。 Visual Studio Code を使用して、JSON Azure Resource Manager テンプレート (ARM テンプレート) を作成し、一貫して信頼性の高い方法で Azure にインフラストラクチャをデプロイします。
- Azure Cloud Shell の機能とツールを確認する。 Cloud Shell の機能とツール。
- Windows PowerShell を使用して Azure リソースを管理する。 このモジュールでは、クラウド サービス管理に必要なモジュールをインストールし、PowerShell コマンドを使用して、Azure 仮想マシン、Azure サブスクリプション、Azure ストレージ アカウントなどのクラウド リソースに対して簡単な管理タスクを実行する方法について説明します。
- Bash の概要。 Bash を使って IT インフラストラクチャを管理します。
- 初めての Bicep テンプレートを作成する。 Bicep テンプレート内で Azure リソースを定義します。 デプロイの一貫性と信頼性を向上させ、必要な手作業の労力を減らし、環境間でデプロイを拡張します。 テンプレートは柔軟性があり、パラメーター、変数、式、モジュールを使用して再利用できます。
要点
以上でラボは完了です。 このラボの要点は次のとおりです。
- Azure Resource Manager テンプレートではソリューションのすべてのリソースをグループとしてデプロイ、管理、監視でき、リソースを個別に扱う必要がありません。
- Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、スクリプトではなく宣言によってインフラストラクチャを管理できます。
- テンプレート内のインライン値としてパラメータを渡すのではなく、パラメータ値を含む別の JSON ファイルを使用することができます。
- Azure Resource Manager テンプレートは、Azure portal、Azure PowerShell、および CLI などのさまざまな方法でデプロイすることができます。
- Bicep は、Azure Resource Manager テンプレートの代替手段です。 Bicep は宣言型の構文を使用して Azure リソースをデプロイします。
- Bicep では、簡潔な構文、信頼性の高いタイプ セーフ、およびコードの再利用のサポートが提供されます。 Bicep により、Azure のコードとしてのインフラストラクチャ ソリューションに最適な作成エクスペリエンスをオファーします。