BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ElasticがElastic StackおよびElastic Cloud用のTerraformプロバイダをリリース

ElasticがElastic StackおよびElastic Cloud用のTerraformプロバイダをリリース

原文(投稿日:2022/01/28)へのリンク

Elasticは、Elastic Stackを設定するためのTerraformプロバイダを公式にリリースした。このプロバイダにより、ElasticSearch、Kibana、Fleet、その他のElastic Stackコンポーネントの設定が可能になる。今回の発表は、つい先日のElastic Cloud Terraformプロバイダリリースに続くものだ。

Elastic Stack Terraformプロバイダは、インデックステンプレート、スナップショットリポジトリ、スナップショットポリシ、インデックスライフサイクルマネジメント(ILM)ポリシ、ユーザ、ロールといった、ElasticSearchのマネージドリソースの管理を可能にするものだ。例えば次のTerraformでは、"my-index"という名称のインデックスと、フィルターエイリアスを含む2つのエイリアスをセットアップする。レプリカ数あるいはアイドリング期間の設定といったインデックスの設定もサポートされている。

provider "elasticstack" {
  elasticsearch {}
}

resource "elasticstack_elasticsearch_index" "my_index" {
  name = "my-index"

  alias {
    name = "my_alias_1"
  }

  alias {
    name = "my_alias_2"
    filter = jsonencode({
      term = { "user.id" = "developer" }
    })
  }

  mappings = jsonencode({
    properties = {
      field1 = { type = "keyword" }
      field2 = { type = "text" }
      field3 = { properties = {
        inner_field1 = { type = "text", index = false }
        inner_field2 = { type = "integer", index = false }
      } }
    }
  })

  settings {
    setting {
      name  = "index.number_of_replicas"
      value = "2"
    }
    setting {
      name  = "index.search.idle.after"
      value = "20s"
    }
  }
}

認証(authentication)は静的クレデンシャル、環境変数、elasticsearch_connectionブロックによって実施できる。環境変数の場合、ELASTICSEARCH_USERNAMEELASTICSEARCH_PASSWORDELASTICSEARCH_ENDPOINTSがユーザ名、パスワード、カンマで区切られたAPIエンドポイントのリストの指定に使用される。

Elasticはさらに、Elastic Cloud用のTerraformプロバイダリリースした。Elasticsearch Service (ESS)、Elastic Cloud Enterprise (ECE)、Elasticsearch Service Private (ESSP)の設定に使用することができる。同社シニアプロダクトマネージャのOmer Kushmaro氏が、次のように説明している。

このプロバイダの初期リリースでは、Elastic CloudデプロイメントとトラフィックフィルタをTerraformリソースとして管理、デプロイすることができます。Elastic Stackの利用可能なバージョンと既存のクラウドデプロイメントを、TerraformデータソースとしてElastic Cloud APIに問い合わせることも可能です。

以下の例は、ElasticSearchとKibanaのElastic Cloudデプロイメントを作成するものだ。

# Create an Elastic Cloud deployment
resource "ec_deployment" "example_minimal" {
  # Optional name.
  name = "my_example_deployment"

  # Mandatory fields
  region                 = "us-east-1"
  version                = data.ec_stack.latest.version
  deployment_template_id = "aws-io-optimized-v2"

  # Use the deployment template defaults
  elasticsearch {}

  kibana {}
}

ElasticSearchプロバイダはElastic Stackのバージョン7.xおよびそれ以降をサポートし、GitHub経由での入手が可能である。ドキュメントについては、Terraformレジストリから入手できる。Elastic Cloudプロバイダも同じくGitHub経由で、ドキュメントはTerraformレジストリでの入手が可能だ。

作者について

この記事に星をつける

おすすめ度
スタイル

BT