Microsoft Azure

【Azure】TerraformでApplicationInsightsを連携させる方法解説

こんにちは、インフラエンジニアのryuです。

今回の記事は、TerraformでApplicationInsightsを連携させる方法を解説します。TerraformでAppServiceを作成した際、ApplicationInsightsを同時に連携させたいですよね。方法は、簡単で、AppServiceの構成に ApplicationInsightsの情報を入れれば、連携できます。設定方法を詳しく解説していきます。

TerraformでApplicationInsightsを連携させる方法

連携させる方法は、AppServiceの構成にApplicationInsightsの情報を入れれば連携できます。↓の画面の部分です。

ApplicationInsights設定画面

GUIからApplicationInsightsを有効にした場合、これらの情報はすべて、自動で生成されます。この自動で生成された情報をTerraformにて、自動生成されるようにすれば連携が可能です。

では、早速、手順の解説を行います。

ApplicationInsightsを連携させる手順

今回は、WebAppにApplicationInsightsを連携させます。ApplicationInsightsでは、Webの監視をすることができます。

手順①.Terraformの初期設定

AzureでTerraformを使用するには、初期設定が必要です。初期設定方法は、こちらの記事で解説しているので、参考にしてください。

手順②.ApplicationInsightsの作成コードを作る

次に、ApplicationInsightsの作成コードを作ります。Terraformの公式サイトより、 ApplicationInsightsの設定をコピーします。

data "azurerm_application_insights" "insights" {
  name                = "test-insights"
  resource_group_name = "${azurerm_resource_group.example.name}"
}

“resource_group_name”は自分の環境に合わせましょう。

手順③.WebAppの作成コードを作る

ApplicationInsights同様、Webappの作成コードを作ります。Terraformの公式サイトより、 Webappの設定をコピーします。 リソースグループの作成コードもここからコピーしましょう。コードは以下のようになります。

resource "azurerm_resource_group" "example" {
  name     = "example-resources"
  location = "Japan West"
}

resource "azurerm_app_service_plan" "example" {
  name                = "example-appserviceplan"
  location            = "${azurerm_resource_group.example.location}"
  resource_group_name = "${azurerm_resource_group.example.name}"

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

resource "azurerm_app_service" "example" {
  name                = "exampletest-app-service"  #Webappの名前は自分で決める
  location            = "${azurerm_resource_group.example.location}"
  resource_group_name = "${azurerm_resource_group.example.name}"
  app_service_plan_id = "${azurerm_app_service_plan.example.id}"

  site_config {
  }

  app_settings = {
  }
}

手順④. ApplicationInsightsの情報をWebappに入力

冒頭でも記載しましたが、ApplicationInsightsを連携させるためには、WebAppの構成設定にApplicationInsightsの情報を入力する必要があります。

WebAppの作成コードのapp_settingsに情報を入力していきます。

  app_settings = {
    "APPINSIGHTS_INSTRUMENTATIONKEY" = 
    "${data.azurerm_application_insights.example.instrumentation_key}"
    "APPINSIGHTS_PROFILERFEATURE_VERSION" = "1.0.0"
    "APPINSIGHTS_SNAPSHOTFEATURE_VERSION" = "1.0.0"
    "ApplicationInsightsAgent_EXTENSION_VERSION"  = "~2"
  }

これで、Teraformで作成すれば、自動で連携できます。以上で手順の解説を終わります。

さいごに

今回の記事は、TerraformでApplicationInsightsを連携させる方法を解説しました。Terraformの公式ページは英語のみで設定値しか説明がありません。Azureの連携を行うには、いろいろと試してみるしかありません。Terraformをやってみて有益な情報があったら、ブログにどんどんアップしていこうと思います。

About me
大手メーカのIT部門→上場ベンチャーでフルスタックエンジニアやってます。エンジニア歴は8年目。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!

UdemyでIT講座をチェック!

  • セールだと1500円前後!
  • 無料サンプル講義動画・無料講義動画あり!
  • 気に入らなければ30日間返金保証!