次の方法で共有


Azure でリソースを作成および管理する方法

この記事は、開発者が Azure を使い始めるのに役立つ 7 つの記事シリーズのパート 5 です。

Azure には、アプリケーションが使用するリソースを作成および管理するためのさまざまなツールが用意されています。

さまざまなツールでさまざまなユース ケースがサポートされ、ほとんどの Azure 開発者はジョブに応じてツールの組み合わせを使用します。 たとえば、次のような場合が考えられます。

  • 新しいアプリケーション用に Azure リソースのプロトタイプを作成する場合は、Azure portalVS Code 用の Azure Tools 拡張機能などの GUI ツールを使用します。 GUI ツールは、新しいサービスを作成するプロセスを導き、ドロップダウン メニューやその他のグラフィカル要素を使用してサービスのオプションを確認して選択できるようにします。

  • Azure Developer CLI (azd) を使用して、スターター テンプレートからフル スタック アプリケーションをプロビジョニングおよびデプロイします。 1 つの azd up コマンドを使用すると、必要なすべての Azure リソースを作成し、各サービスを手動で構成することなくコードをデプロイできます。

  • 作成するリソースや構成方法がわからない場合は、GitHub Copilot for Azure を使用して AI 支援ガイダンスを取得します。 GitHub Copilot for Azure は、サービスの学習、デプロイ スクリプトの生成、自然言語を使用した問題のトラブルシューティングに役立ちます。

  • 一般的なタスクを自動化するために、Azure CLI または Azure PowerShell を使用してスクリプトを記述します。 たとえば、Azure App Service、データベース、BLOB ストレージで構成される新しい Web アプリの基本的な開発環境を作成するスクリプトを作成できます。 スクリプトを記述すると、一貫性のあるリソースの作成が保証され、UI を使用するよりも高速になります。

  • コード としてのインフラストラクチャ (IaC) ツールを使用して、Azure リソースを宣言的にデプロイおよび管理しますTerraformAnsibleBicep などのツールを使用すると、宣言構文で Azure リソースを体系化し、環境間で一貫したデプロイを確保し、環境のずれを防ぐことができます。

  • AI アプリ テンプレートを使用して、AI プロジェクトをすばやくブートストラップします。 Azure には、データとのチャットやドキュメント処理などの一般的な AI シナリオ用のインフラストラクチャ定義、アプリケーション コード、デプロイ構成を含む AI アプリ テンプレート が用意されています。

Azure 開発者ツールの使用を開始するには、「 クイック スタート: Azure 開発者ツール」を参照してください。

Azure portal

Azure portal は、Azure リソースを管理するために設計された Web ベースのインターフェイスです。 Azure porta の機能:

  • Azure リソースを作成および管理するための使いやすい Web ベースの UI
  • 構成可能なダッシュボードを作成する
  • サブスクリプションの設定と課金情報にアクセスする

Azure portal を示すスクリーンショット。

VS Code Azure Tools 拡張機能パック

Visual Studio Code を使用する開発者は、VS Code 用 Azure Tools Extension Pack を使用して、VS Code で Azure リソースを直接管理します。 Azure Tools Extension Pack を使用すると、次のことができます。

  • Azure App Service を使用して Web サイトにコードを作成、管理、デプロイする
  • Azure データベースを作成、参照、およびクエリする
  • VS Code で Azure Functions を直接作成、デバッグ、デプロイする
  • VS Code でコンテナー化されたアプリケーションをデプロイする

機能の完全な一覧については、拡張機能のダウンロード ページを参照してください。

Azure Tools 拡張機能パックがインストールされた Visual Studio Code を示すスクリーンショット。

Visual Studio での Azure 開発

Visual Studio を使用する開発者は、Azure 開発ワークロードを通じて Azure ツールにアクセスします。 Visual Studio の Azure 統合には、次のものが含まれます。

  • Azure App Service、Azure Functions、Azure Container Apps を作成してデプロイする
  • 接続済みサービスを使用して Azure サービスの依存関係を追加する
  • Cloud Explorer を使用して Azure リソースを参照および管理する
  • クラウド サービスをローカルおよびリモートでデバッグする

Visual Studio を使用した Azure 開発の詳細については、 Visual Studio での Azure 開発に関するページを参照してください。

Azure Developer CLI

Azure Developer CLI (azd) は、Azure アプリケーションを作成するための開発者向けのコマンド ライン ツールです。 The Azure Developer CLI:

  • スターター テンプレートからフル スタック アプリケーションをプロビジョニングおよびデプロイする
  • 1 つの azd up コマンドを使用して、コードからクラウドまでの時間を短縮します
  • azd pipeline config を使用した CI/CD パイプライン構成をサポートします
  • Bicep または Terraform のインフラストラクチャ定義を操作する

開始するには、 Azure Developer CLI のクイック スタートを参照してください。

Azure 用 GitHub Copilot

GitHub Copilot for Azure は、自然言語を使用して Azure を操作するのに役立つ、AI を利用したチャット拡張機能です。 これは次の目的で使用されます。

  • Azure サービスとベスト プラクティスについて説明します
  • 会話を通じて Azure リソースをデプロイする
  • アプリケーションとリソースに関する問題のトラブルシューティング
  • クラウドネイティブ アプリケーションの設計に関するガイダンスを取得する

GitHub Copilot for Azure は、AZURE Tools 拡張機能パックと共に VS Code で動作し、アプリケーションをビルドおよび管理するときに AI 支援のガイダンスを提供します。

詳細については、 GitHub Copilot for Azure の概要に関するページを参照してください。

コマンド ライン ツール

コマンド ライン ツールでは、効率、再現性、および定期的なタスクをスクリプト化する機能が提供されます。 Azure には、Azure CLI と Azure PowerShell という 2 つのコマンド ライン ツールが用意されています。 どちらのツールも機能的に同等であるため、ワークフローに適したものを選択します。

Azure CLI

Azure CLI は、Windows、Linux、macOS で実行されるクロスプラットフォーム のコマンド ライン ツールです。 Azure CLI:

  • Azure リソースを管理するための簡潔で効率的な構文を備えています
  • 結果を JSON として出力します (既定)。 結果は、YAML、ASCII テーブル、またはキーのないタブ区切りの値として書式設定することもできます
  • JMESPath クエリを使用して出力を照会および整形する機能を提供します

Azure CLI コマンドは 、Bash などの一般的なスクリプト言語に簡単に統合され、一般的なタスクをスクリプト化できます。

LOCATION='eastus'                                        
RESOURCE_GROUP_NAME='msdocs-expressjs-mongodb-tutorial'

WEB_APP_NAME='msdocs-expressjs-mongodb-123'
APP_SERVICE_PLAN_NAME='msdocs-expressjs-mongodb-plan-123'    
RUNTIME='NODE|14-lts'

# Create a resource group
az group create \
    --location $LOCATION \
    --name $RESOURCE_GROUP_NAME

# Create an app service plan
az appservice plan create \
    --name $APP_SERVICE_PLAN_NAME \
    --resource-group $RESOURCE_GROUP_NAME \
    --sku B1 \
    --is-linux

# Create the web app in the app service
az webapp create \
    --name $WEB_APP_NAME \
    --runtime $RUNTIME \
    --plan $APP_SERVICE_PLAN_NAME \
    --resource-group $RESOURCE_GROUP_NAME 

Azure PowerShell

Azure PowerShell は、PowerShell から Azure リソースを直接管理するためのコマンドレットのセットです。 Azure PowerShell は PowerShell モジュールとしてインストールされ、Windows、macOS、Linux を含むすべてのプラットフォームで PowerShell 7.0.6 LTS および PowerShell 7.1.3 以降で動作します。 また Windows PowerShell 5.1 と互換性があります

Azure PowerShell は、PowerShell 言語と緊密に統合されます。 コマンドは動詞名詞形式を使用し、データは PowerShell オブジェクトとして返されます。 PowerShell スクリプトに既に慣れている場合は、Azure PowerShell が自然な選択です。

$location = 'eastus'
$resourceGroupName = 'msdocs-blob-storage-demo-azps'
$storageAccountName = 'stblobstoragedemo999'

# Create a resource group
New-AzResourceGroup `
    -Location $location `
    -Name $resourceGroupName

# Create the storage account
New-AzStorageAccount `
    -Name $storageAccountName `
    -ResourceGroupName $resourceGroupName `
    -Location $location `
    -SkuName Standard_LRS

Azure CLI または Azure PowerShell の選択方法の詳細については、「適切なコマンド ライン ツールを選択する」の記事を参照してください。

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

コードとしてのインフラストラクチャ は、宣言型構成ファイルを使用してリソースを管理およびプロビジョニングするプロセスです。 コードとしてのインフラストラクチャ ツールでは、宣言型の終了状態仕様を使用して、リソースのセットが毎回同じ方法で作成および構成されるように保証します。 コード ツールとしてのほとんどのインフラストラクチャでは、リソースを監視して、目的の状態で構成されたままであることを確認します。

Azure では、自動化された、繰り返し、信頼性の高いデプロイ用のコード ツールとして、さまざまなインフラストラクチャがサポートされています。

Bicep

Bicep は、宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語 (DSL) です。 簡潔な構文、信頼性の高いタイプ セーフ、およびコードの再利用のサポートが提供されます。

param location string = resourceGroup().location
param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Terraform

Hashicorp Terraform は、クラウド インフラストラクチャのプロビジョニングおよび管理を行うためのオープン ソース ツールです。 クラウド リソースのトポロジを説明する構成ファイルでインフラストラクチャを体系化します。 Terraform CLI は、Azure に構成ファイルをデプロイし、そのバージョンを管理するための簡単なメカニズムを提供します。

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "main" {
  name     = "${var.prefix}-resources"
  location = var.location
}

resource "azurerm_app_service_plan" "main" {
  name                = "${var.prefix}-asp"
  location            = azurerm_resource_group.main.location
  resource_group_name = azurerm_resource_group.main.name
  kind                = "Linux"
  reserved            = true

  sku {
    tier = "Standard"
    size = "S1"
  }
}

resource "azurerm_app_service" "main" {
  name                = "${var.prefix}-appservice"
  location            = azurerm_resource_group.main.location
  resource_group_name = azurerm_resource_group.main.name
  app_service_plan_id = azurerm_app_service_plan.main.id

  site_config {
    linux_fx_version = "NODE|10.14"
  }
}

Ansible

Ansible は、クラウド プロビジョニング、構成管理、およびアプリケーションのデプロイを自動化するオープンソース製品です。 Ansible を使用すると、仮想マシン、コンテナー、ネットワーク、および完全なクラウド インフラストラクチャをプロビジョニングできます。 Ansible を使用すると、環境内のリソースのデプロイと構成を自動化することもできます。

- hosts: localhost
  connection: local
  vars:
    resource_group: myResourceGroup
    webapp_name: myfirstWebApp
    plan_name: myAppServicePlan
    location: eastus
  tasks:
    - name: Create a resource group
      azure_rm_resourcegroup:
        name: "{{ resource_group }}"
        location: "{{ location }}"

    - name: Create App Service on Linux with Java Runtime
      azure_rm_webapp:
        resource_group: "{{ resource_group }}"
        name: "{{ webapp_name }}"
        plan:
          resource_group: "{{ resource_group }}"
          name: "{{ plan_name }}"
          is_linux: true
          sku: S1
          number_of_workers: 1
        frameworks:
          - name: "java"
            version: "8"
            settings:
              java_container: tomcat
              java_container_version: 8.5

Azure SDK と REST API

Azure リソースは、コードからプログラムで作成できます。 これにより、ユーザーの要求に応じて Azure リソースを動的にプロビジョニングするアプリケーションを作成できます。 Azure SDK には、.NET、Go、Java、JavaScript、Python のリソース管理パッケージが用意されており、コード内で Azure リソースを直接作成および管理できます。 または、Azure REST API を使用すると、RESTful エンドポイントへの HTTP 要求を使用して Azure リソースを管理できます。