クイック スタート:Azure 用の Terraform 構成の作成Quickstart: Create a Terraform configuration for Azure

このクイックスタートでは、Terraform を使用して Azure リソースを作成する方法について説明します。In this quickstart, you create Azure resources using Terraform. このアーティクルの手順では、次のリソースを作成する方法について説明します。The steps in this article walk you through creating the following resources:

  • Azure Cosmos DB インスタンスAzure Cosmos DB instance
  • Azure Container InstancesAzure Container Instance
  • これら 2 つのリソース間で動作するアプリApp that works across these two resources

最初の構成を作成するCreate first configuration

このセクションでは、Azure Cosmos DB インスタンスの構成を作成します。In this section, you create the configuration for an Azure Cosmos DB instance.

  1. Azure portal にサインインします。Sign in to the Azure portal.

  2. Azure Cloud Shell を開きます。Open the Azure Cloud Shell.

  3. Cloud Shell エディターを開始します。Start the Cloud Shell editor:

    code main.tf
    
  4. この手順の構成では、いくつかの Azure リソースをモデル化します。The configuration in this step models a couple of Azure resources. これらのリソースには、Azure リソース グループと Azure Cosmos DB インスタンスが含まれます。These resources include an Azure resource group and an Azure Cosmos DB instance. ランダム整数は、固有の Cosmos DB インスタンス名の作成に使用されます。A random integer is used to create a unique Cosmos DB instance name. いくつかの Cosmos DB 設定も構成されています。Several Cosmos DB settings are also configured. 詳しくは、「Cosmos DB Terraform のリファレンス」をご覧ください。For more information, see the Cosmos DB Terraform reference. 次の Terraform 構成をコピーしてエディターに貼り付けます。Copy and paste the following Terraform configuration into the editor:

    resource "azurerm_resource_group" "vote-resource-group" {
      name     = "vote-resource-group"
      location = "westus"
    }
    
    resource "random_integer" "ri" {
      min = 10000
      max = 99999
    }
    
    resource "azurerm_cosmosdb_account" "vote-cosmos-db" {
      name                = "tfex-cosmos-db-${random_integer.ri.result}"
      location            = azurerm_resource_group.vote-resource-group.location
      resource_group_name = azurerm_resource_group.vote-resource-group.name
      offer_type          = "Standard"
      kind                = "GlobalDocumentDB"
    
      consistency_policy {
        consistency_level       = "BoundedStaleness"
        max_interval_in_seconds = 10
        max_staleness_prefix    = 200
      }
    
      geo_location {
        location          = "westus"
        failover_priority = 0
      }
    }
    
  5. ファイルを保存し ( <Ctrl> + S キー)、エディターを終了します ( <Ctrl> + Q キー)。Save the file (<Ctrl>S) and exit the editor (<Ctrl>Q).

構成を実行するRun the configuration

このセクションでは、いくつかの Terraform コマンドを使用して構成を実行します。In this section, you use several Terraform commands to run the configuration.

  1. terraform init コマンドを実行すると、作業ディレクトリが初期化されます。The terraform init command initializes the working directory. Cloud Shell で次のコマンドを実行します。Run the following command in Cloud Shell:

    terraform init
    
  2. terraform plan コマンドを使用して、構成構文を検証できます。The terraform plan command can be used to validate the configuration syntax. -out パラメーターは、結果をファイルに送信します。The -out parameter directs the results to a file. 出力ファイルは、後で構成を適用するために使用できます。The output file can be used later to apply the configuration. Cloud Shell で次のコマンドを実行します。Run the following command in Cloud Shell:

    terraform plan --out plan.out
    
  3. 構成を適用するには、terraform apply コマンドを使用します。The terraform apply command is used to apply the configuration. 前の手順の出力ファイルが指定されています。The output file from the previous step is specified. このコマンドにより、Azure リソースが作成されます。This command causes the Azure resources to be created. Cloud Shell で次のコマンドを実行します。Run the following command in Cloud Shell:

    terraform apply plan.out
    
  4. Azure portal 内の結果を確認するには、新しいリソース グループを参照します。To verify the results within the Azure portal, browse to the new resource group. 新しい Azure Cosmos DB インスタンスは、新しいリソース グループにあります。The new Azure Cosmos DB instance is in the new resource group.

構成を更新するUpdate configuration

このセクションでは、Azure コンテナー インスタンスを含めるように構成を更新する方法を説明します。This section shows how to update the configuration to include an Azure Container Instance. コンテナーは、Cosmos DB のデータを読み書きするアプリケーションを実行します。The container runs an application that reads and writes data to the Cosmos DB.

  1. Cloud Shell エディターを開始します。Start the Cloud Shell editor:

    code main.tf
    
  2. この手順の構成では、COSMOS_DB_ENDPOINTCOSMOS_DB_MASTERKEY の 2 つの環境変数を設定します。The configuration in this step sets two environment variables: COSMOS_DB_ENDPOINT and COSMOS_DB_MASTERKEY. これらの変数には、データベースにアクセスするための場所とキーが保持されます。These variables hold the location and key for accessing the database. これらの変数の値は、前の手順で作成されたデータベース インスタンスから取得されます。The values for these variables are obtained from the database instance created in the previous step. このプロセスは、補間と呼ばれます。This process is known as interpolation. Terraform の補間の詳細については、「Interpolation Syntax (補間の構文)」を参照してください。To learn more about Terraform interpolation, see Interpolation Syntax. この構成には、コンテナー インスタンスの完全修飾ドメイン名 (FQDN) を返す出力ブロックも含まれています。The configuration also includes an output block, which returns the fully qualified domain name (FQDN) of the container instance. 以下のコードをコピーして、エディターに貼り付けます。Copy and paste the following code into the editor:

    resource "azurerm_container_group" "vote-aci" {
      name                = "vote-aci"
      location            = azurerm_resource_group.vote-resource-group.location
      resource_group_name = azurerm_resource_group.vote-resource-group.name
      ip_address_type     = "public"
      dns_name_label      = "vote-aci"
      os_type             = "linux"
    
      container {
        name   = "vote-aci"
        image  = "microsoft/azure-vote-front:cosmosdb"
        cpu    = "0.5"
        memory = "1.5"
        ports {
          port     = 80
          protocol = "TCP"
        }
    
        secure_environment_variables = {
          "COSMOS_DB_ENDPOINT"  = azurerm_cosmosdb_account.vote-cosmos-db.endpoint
          "COSMOS_DB_MASTERKEY" = azurerm_cosmosdb_account.vote-cosmos-db.primary_master_key
          "TITLE"               = "Azure Voting App"
          "VOTE1VALUE"          = "Cats"
          "VOTE2VALUE"          = "Dogs"
        }
      }
    }
    
    output "dns" {
      value = azurerm_container_group.vote-aci.fqdn
    }
    
  3. ファイルを保存し ( <Ctrl> + S キー)、エディターを終了します ( <Ctrl> + Q キー)。Save the file (<Ctrl>S) and exit the editor (<Ctrl>Q).

  4. 前のセクションで行ったように、変更内容を表示するには、次のコマンドを実行します。As you did in the previous section, run the following command to visual the changes to be made:

    terraform plan --out plan.out
    
  5. terraform apply コマンドを実行して構成を適用します。Run the terraform apply command to apply the configuration.

    terraform apply plan.out
    
  6. コンテナー インスタンスの FQDN をメモします。Make note of the container instance FQDN.

アプリケーションをテストするTest application

アプリケーションをテストするには、コンテナー インスタンスの FQDN に移動します。To test the application, navigate to the FQDN of the container instance. 次の出力のような結果が表示されます。You should see results similar to the following output:

Azure 投票アプリケーション

リソースをクリーンアップするClean up resources

この記事で作成したリソースが不要になったら、削除してください。When no longer needed, delete the resources created in this article.

このチュートリアルで作成した Azure リソースを削除するには、terraform destroy コマンドを実行します。Run the terraform destroy command to remove the Azure resources created in this tutorial:

terraform destroy -auto-approve

次のステップNext steps