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_USERNAME
、ELASTICSEARCH_PASSWORD
、ELASTICSEARCH_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レジストリでの入手が可能だ。