AivenがOpenSearchに対応したので使ってみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

アライアンス統括部の佐々木です。AivenがOpenSearchに対応しました。

OpenSearchはElastic社がオープンソースで開発していたElasticsearchをAWSがフォークしてオープンソースとして開発しているものです。AWSではAmazon OpenSearch Serviceとして提供されています。

そんなわけで使ってみます!

やってみた

ログイン

前回使ったaiven-clientを使います。

まずはログインします。

% avn user login
Username (email): XXXX@XXXX.com
XXXX@XXXX.com's Aiven password:
INFO	Aiven credentials written to: /Users/smokeymonkey/.config/aiven/aiven-credentials.json

サービスの作成

現在のプロジェクトを確認します。

% avn project details
PROJECT_NAME       DEFAULT_CLOUD       BILLING_CURRENCY  VAT_ID
=================  ==================  ================  ======
smokeymonkey-aedd  aws-ap-northeast-1  USD
    credit_card     = N/A
    billing_address =
    country_code    =

OpenSearchを指定してサービスを作成します。

% avn service create testos -t opensearch --plan startup-4

確認。SERVICE_TYPEがopensearchとなっているサービスが立ち上がりました。

% avn service list testos
SERVICE_NAME  SERVICE_TYPE  STATE    CLOUD_NAME          PLAN       CREATE_TIME           UPDATE_TIME           NOTIFICATIONS
============  ============  =======  ==================  =========  ====================  ====================  =============
testos        opensearch    RUNNING  aws-ap-northeast-1  startup-4  2021-12-02T07:51:32Z  2021-12-02T07:59:39Z

動作確認

今回はcurlを使って動作確認をします。まずは接続確認。接続情報はGUIのOverviewから確認できます。

% curl -XGET --insecure -u 'USER:PASS' 'https://testos-smokeymonkey-aedd.aivencloud.com:28813'
{
  "name" : "testos-1",
  "cluster_name" : "a6d7180b-df03-432c-a430-837917031a80",
  "cluster_uuid" : "wW4kocxXRuS4IePy3l2cdQ",
  "version" : {
    "distribution" : "opensearch",
    "number" : "1.1.0",
    "build_type" : "unknown",
    "build_hash" : "unknown",
    "build_date" : "2021-11-15T16:09:53.881093Z",
    "build_snapshot" : false,
    "lucene_version" : "8.9.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

試験用のインデックスを作成します。

% curl -XPUT --insecure -u 'USER:PASS' 'https://testos-smokeymonkey-aedd.aivencloud.com:28813/test-index'
{"acknowledged":true,"shards_acknowledged":true,"index":"test-index"}%

試験用のインデックスにデータを投入します。

% curl -XPUT --insecure -u 'USER:PASS' 'https://testos-smokeymonkey-aedd.aivencloud.com:28813/test-index/_doc/1' -H 'Content-Type: application/json' -d '{"Description": "This is a test."}'
{"_index":"test-index","_type":"_doc","_id":"1","_version":1,"result":"created","_shards":{"total":1,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}%

投入したデータを読み込みます。

% curl -XGET --insecure -u 'USER:PASS' 'https://testos-smokeymonkey-aedd.aivencloud.com:28813/test-index/_doc/1'
{"_index":"test-index","_type":"_doc","_id":"1","_version":1,"_seq_no":0,"_primary_term":1,"found":true,"_source":{"Description": "This is a test."}}%

ということで、当たり前なんですが、普通に使えるOpenSearchが簡単に起動しました!

さいごに

Amazon OpenSearch Serviceもとても簡単に使えるサービスですが、Aivenの良いところはAWS以外でも動かせるところなので、GCPやAzureでも簡単にOpenSearchが利用できます。パブリッククラウドベンダに依存せずに、どこでも同じように使えるのがAivenの素敵なところです。