こんにちは、eiyuuです。
Terraformを使ってAWS上にOpenSearchドメインを作成する際にいくつか躓きどころがあったので、その解決法とともに紹介したいと思います。
elasticsearch_version
に指定する値がわからない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"
...
}
AWSコンソール上でOpenSearchドメインを作る際には、互換性モードの ON/OFF に関する項目がありますが、 aws_elasticsearch_domain
には(当然ですが)この互換性モード専用の引数はありません。
Terraformのissueでは advanced_options
の override_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ドメインを作成する際の躓きどころとその解決法について紹介しました。
やり方がわかれば難しいことではないものの、そのやり方を調べるのに一手間かかったので、本記事で紹介しようと思いました。