次の方法で共有


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

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

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

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

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

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

  • コードとしてのインフラストラクチャ (IaC) ツールを使用して、Azure リソースを宣言的にデプロイおよび管理します。 Terraform、Ansible、Bicep などのツールを使用すると、宣言構文で 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 を示すスクリーンショット。

コマンド ライン ツール

コマンド ライン ツールでは、効率、再現性、および定期的なタスクをスクリプト化する機能が提供されます。 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 リソースを管理できます。