Azure Resource Manager と Azure ARM テンプレートについて説明する

完了

Azure Resource Manager (ARM) は、Azure のデプロイと管理サービスです。 Azure アカウント内のリソースを作成、更新、削除できる管理レイヤーが用意されています。 Azure リソースを使用して何かを行う場合は、いつでも ARM が関与します。

ユーザーが Azure のツール、API、または SDK から要求を送信すると、ARM は要求を受け取ります。 ARM は要求を認証して承認します。 次に、ARM は要求を Azure サービスに送信し、要求されたアクションを実行します。 すべての要求が同じ API を介して処理されるため、すべての異なるツールで一貫した結果と機能が表示されます。

Azure Resource Manager の利点

Azure Resource Manager では、次のことができます。

  • スクリプトではなく宣言型テンプレートを使用してインフラストラクチャを管理します。 Resource Manager テンプレートは、Azure にデプロイする内容を定義する JSON ファイルです。
  • これらのリソースを個別に処理するのではなく、ソリューションのすべてのリソースをグループとしてデプロイ、管理、監視します。
  • 開発ライフサイクル全体にわたってソリューションを再デプロイし、リソースが一貫した状態でデプロイされていることを確信します。
  • リソース間の依存関係を定義して、正しい順序でデプロイします。
  • RBAC は管理プラットフォームにネイティブに統合されているため、すべてのサービスにアクセス制御を適用します。
  • リソースにタグを適用して、サブスクリプション内のすべてのリソースを論理的に整理します。
  • 同じタグを共有するリソースのグループのコストを表示して、組織の課金を明確にします。

次のビデオでは、Azure Resource Manager の概要について説明します。

コードとしてのインフラストラクチャ

コードとしてのインフラストラクチャは、コード行としてインフラストラクチャを管理する概念です。 入門レベルでは、Azure Cloud Shell、Azure PowerShell、または Azure CLI を使用してリソースを管理および構成します。 クラウドに慣れるにつれて、コードの概念としてインフラストラクチャを使用して、反復可能なテンプレートと構成を使用してデプロイ全体を管理できます。 ARM テンプレートと Bicep は、環境を維持するために Azure Resource Manager でコードとしてインフラストラクチャを使用する 2 つの例です。

ARM テンプレート

ARM テンプレートを使用すると、使用するリソースを宣言型 JSON 形式で記述できます。 ARM テンプレートを使用すると、コードを実行する前にデプロイ コードが検証されます。 これにより、リソースが確実に作成され、正しく接続されます。 その後、テンプレートは、これらのリソースの作成を並行して調整します。 つまり、同じリソースのインスタンスが 50 個必要な場合、50 個のインスタンスすべてが同時に作成されます。

最終的には、開発者、DevOps プロフェッショナル、または IT プロフェッショナルは、ARM テンプレート内の各リソースの目的の状態と構成を定義するだけで、残りの部分はテンプレートによって行われます。 テンプレートでは、リソースの設定前または設定後に PowerShell スクリプトと Bash スクリプトを実行することもできます。

ARM テンプレートを使用する利点

ARM テンプレートは、Azure リソースのデプロイを計画する際に多くの利点を提供します。 これらの利点の一部は次のとおりです。

  • 宣言型構文: ARM テンプレートを使用すると、Azure インフラストラクチャ全体を宣言的に作成してデプロイできます。 宣言構文とは、デプロイする内容を宣言することを意味しますが、リソースをデプロイするために実際のプログラミング コマンドとシーケンスを記述する必要はありません。
  • 反復可能な結果: 開発ライフサイクル全体にわたってインフラストラクチャを繰り返しデプロイし、リソースが一貫した方法でデプロイされていることを確信します。 同じ ARM テンプレートを使用して、すべての環境が同じであることを認識して、複数の開発/テスト環境をデプロイできます。
  • オーケストレーション: 順序付け操作の複雑さを心配する必要はありません。 Azure Resource Manager では、相互に依存するリソースのデプロイが調整されるため、正しい順序で作成されます。 可能であれば、Azure Resource Manager はリソースを並列にデプロイするため、デプロイはシリアル デプロイよりも高速に完了します。 テンプレートは、複数の命令型コマンドではなく、1 つのコマンドを使用してデプロイします。
  • Modular ファイル: テンプレートをより小さく再利用可能なコンポーネントに分割し、デプロイ時にリンクすることができます。 1 つのテンプレートを別のテンプレート内に入れ子にすることもできます。 たとえば、VM スタック用のテンプレートを作成し、そのテンプレートを環境全体をデプロイするテンプレート内に入れ子にし、その VM スタックが各環境テンプレートに一貫してデプロイされるようにすることができます。
  • 機能拡張: デプロイ スクリプトを使用して、PowerShell または Bash スクリプトをテンプレートに追加できます。 デプロイ スクリプトにより、デプロイ中にリソースを設定する機能が拡張されます。 スクリプトは、テンプレートに含めたり、外部ソースに格納したり、テンプレートで参照したりできます。 デプロイ スクリプトを使用すると、1 つの ARM テンプレートでエンド ツー エンドの環境のセットアップを完了できます。

二頭筋

Bicep は、宣言型構文を使用して Azure リソースをデプロイする言語です。 Bicep ファイルは、インフラストラクチャと構成を定義します。 次に、ARM は Bicep ファイルに基づいてその環境をデプロイします。 JSON で記述された ARM テンプレートと同様に、Bicep ファイルでは、よりシンプルで簡潔なスタイルが使用される傾向があります。

Bicep の利点は次のとおりです。

  • のすべてのリソースの種類と API バージョンのサポート: Bicep では、Azure サービスのすべてのプレビューバージョンと GA バージョンがすぐにサポートされます。 リソース プロバイダーが新しいリソースの種類と API バージョンを導入するとすぐに、Bicep ファイルでそれらを使用できます。 新しいサービスを使用する前に、ツールが更新されるのを待つ必要はありません。
  • 単純な構文: 同等の JSON テンプレートと比較すると、Bicep ファイルはより簡潔で読みやすくなりました。 Bicep では、プログラミング言語に関する以前の知識は必要ありません。 Bicep 構文は宣言型であり、デプロイするリソースとリソース プロパティを指定します。
  • 反復可能な結果: 開発ライフサイクル全体にわたってインフラストラクチャを繰り返しデプロイし、リソースが一貫した方法でデプロイされていることを確信します。 Bicep ファイルはべき等性を持っているため、同じファイルを何度デプロイしても、同じ種類のリソースが常に同じ状態で取得されます。 更新プログラムを表す多数の個別のファイルを開発するのではなく、目的の状態を表す 1 つのファイルを開発できます。
  • オーケストレーション: 順序付け操作の複雑さを心配する必要はありません。 Resource Manager は、相互依存リソースのデプロイを調整して、正しい順序で作成されるようにします。 可能な場合、Resource Manager はリソースを並列にデプロイするため、デプロイはシリアル デプロイよりも高速に完了します。 複数の命令型コマンドを使用するのではなく、1 つのコマンドを使用してファイルをデプロイします。
  • モジュール性: モジュールを使用して、Bicep コードを管理しやすい部分に分割できます。 モジュールは、一連の関連リソースをデプロイします。 モジュールを使用すると、コードを再利用し、開発を簡略化できます。 これらのリソースをデプロイする必要がある場合は、いつでも Bicep ファイルにモジュールを追加します。