North Detail / ノースディテール

BLOG ブログ

ブログ
CATEGORY
TECH

TerraformでOpenSearchドメインを作成する際の躓きどころとその解決法

こんにちは、eiyuuです。
Terraformを使ってAWS上にOpenSearchドメインを作成する際にいくつか躓きどころがあったので、その解決法とともに紹介したいと思います。

躓きどころ一覧

  • OpenSearchドメイン用のリソースが見つからない
  • elasticsearch_version に指定する値がわからない
  • 互換性モードをONにする方法がわからない

OpenSearchドメイン用のリソースが見つからない

OpenSearchドメイン専用のリソースは存在しませんが、ElasticSearchドメインのためのリソース aws_elasticsearch_domain を使ってOpenSearchドメインを作成することができます。

elasticsearch_version に指定する値がわからない

aws_elasticsearch_domain にはElasticSearchのバージョンを指定する引数、 elasticsearch_version があります。
ElasticSearchドメインを作りたい際には素直に 7.10 などを指定すれば良いですが、OpenSearchドメインの場合の案内がありません。
OpenSearchドメインの場合は、 OpenSearch_1.0 のように、バージョンの前に OpenSearch_ を付け足せば良いです。

resource "aws_elasticsearch_domain" "main" {
  elasticsearch_version = "OpenSearch_1.0"
  ...
}

互換性モードをONにする方法がわからない

AWSコンソール上でOpenSearchドメインを作る際には、互換性モードの ON/OFF に関する項目がありますが、 aws_elasticsearch_domain には(当然ですが)この互換性モード専用の引数はありません。

Terraformのissueでは advanced_optionsoverride_main_response_version を使う方法が提案されていますが、どうやらTerraformのAWSプロバイダがこの設定に未対応のようです(2021/12/21時点)。

どうやら現状Terraformで互換性モードを管理する方法はなく、互換性モードOFFで一旦ドメインを作成して、 AWSのDeveloper Guideの通りに _cluster/settings APIを通して互換性モードをONにするしかないようです。

PUT /_cluster/settings
{
  "persistent" : {
    "compatibility.override_main_response_version" : true
  }
}

※ trueのとき互換性モードON、falseのとき互換性モードOFF

まとめ

TerraformでAWS上にOpenSearchドメインを作成する際の躓きどころとその解決法について紹介しました。
やり方がわかれば難しいことではないものの、そのやり方を調べるのに一手間かかったので、本記事で紹介しようと思いました。

参考資料

eiyuu
WRITER:eiyuu
ロン毛
主な記事 一覧へ

一覧へ

IS 501383 / ISO 27001