サードパーティ製のGlue Connectorである「AWS Glue Connector for Elasticsearch」を使ったConnectionをTerraformで管理したい

0

AWS Glueを使用してOpenSearchとのデータ同期処理を実装しています。

公式が公開しているチュートリアルを参考にし、マネコン上でOpenSearch用のGlue Connectionを作成することができたのですが、これをTerraformで管理する方法がわからずにいます。 https://docs.aws.amazon.com/glue/latest/dg/tutorial-elastisearch-connector.html

aws_glue_connection リソースの connection_properties の値をいじることで設定できるのではないかと考えているのですが、これは可能なのでしょうか?

そもそも「AWS Glue Connector for Elasticsearch」がTerraformに対応しているのかどうか、対応しているのであればどのように記述したらいいのかについて助言いただけますと幸いです。

1回答
0

こんにちは。ご利用いただいているものはマーケットプレイスタイプのコネクタですね。GetConnection API で取得したコネクタの情報を元に Terraform でリソースを作成し管理することは可能ではないかと思います。以下はサンプルです。

$ aws glue get-connection --name "Elasticsearch Connector for AWS Glue 3.0"
{
    "Connection": {
        "Name": "Elasticsearch Connector for AWS Glue 3.0",
        "Description": "Connect to Elasticsearch from AWS Glue",
        "ConnectionType": "MARKETPLACE",
        "MatchCriteria": [
            "Connection",
            "template-connection"
        ],
        "ConnectionProperties": {
            "CONNECTOR_TYPE": "Spark",
            "CONNECTOR_URL": "https://....dkr.ecr.us-east-1.amazonaws.com/amazon-web-services/glue/elasticsearch:7.13.4-glue3.0",
            "CONNECTOR_CLASS_NAME": "org.elasticsearch.spark.sql"
        },
        "CreationTime": "2021-09-02T02:18:33.790000+00:00",
        "LastUpdatedTime": "2021-09-02T02:18:33.790000+00:00"
    }
}

なお、11 月 17 日より Glue は OpenSearch 向けのネイティブコネクタをサポートしておりますので、今後はこちらをご利用いただくことでより少ないステップでセットアップが完了するかと思います。

ただし、Terraform の最新ドキュメントを見る限り、 "ConnectionType": "OPENSEARCH" はサポートしていないため、ネイティブコネクタを Terraform で管理することはまだできないように見受けられます。こちらは Terraform 側の対応待ちになるかと存じます。

$ aws glue get-connection --name "Opensearch connection"
{
    "Connection": {
        "Name": "Opensearch connection",
        "Description": "",
        "ConnectionType": "OPENSEARCH",
        "ConnectionProperties": {
            "SparkProperties": "{\"secretId\":\"sample\",\"opensearch.nodes\":\"search-sample-sample.ap-northeast-1.es.amazonaws.com\",\"opensearch.port\":\"443\",\"opensearch.aws.sigv4.region\":\"ap-northeast-1\",\"opensearch.nodes.wan.only\":\"true\",\"opensearch.aws.sigv4.enabled\":\"true\"}"
        },
        "CreationTime": "2023-11-30T06:26:30.034000+00:00",
        "LastUpdatedTime": "2023-11-30T06:26:30.034000+00:00"
    }
}

https://registry.terraform.io/providers/hashicorp/aws/5.28.0/docs/resources/glue_connection#connection_properties

connection_type – (Optional) The type of the connection. Supported are: CUSTOM, JDBC, KAFKA, MARKETPLACE, MONGODB, and NETWORK. Defaults to JDBC.

AWS
回答済み 5ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン