Amazon OpenSearch Serverless(プレビュー版)を使ってみた!

記事タイトルとURLをコピーする

本記事は2022/1/16時点の情報です。

サーバーワークス DS1課の吉岡です。
re:Invent 2022においてAmazon OpenSearch Serverless (プレビュー版)が発表されました。
このサービスに関してまとめたので参考にしていただけたら嬉しいです。

aws.amazon.com

Amazon OpenSearch Serverlessとは

Amazon OpenSearch Service

OpenSearchはオープンソースの検索・分析エンジンです。
Amazon OpenSearch Service はOpenSearchのデプロイ・スケーリング等を容易に行うためのサービスです。 www.opensearch.org docs.aws.amazon.com

ユーザーは Amazon OpenSearch Serviceで検索エンジンサービスの作成ができます。

Amazon OpenSearch Serviceとの違い

今回新たに発表されたAmazon OpenSearch ServerlessとこれまでのAmazon OpenSearch Serviceの違いを記述します。

Amazon OpenSearch Service

検索・分析を行うクラスタ・インスタンスをユーザーが選択して立ち上げます。
サービスの実行中はクラスタ・インスタンスが起動している状態となります。

Amazon OpenSearch Serverless

ユーザーが行うクラスタ・インスタンスの設定が不要になります。
自動でクラスタ・インスタンスの最適化を行ってくれます。
またクラスタ・インスタンスの起動を必要とせず、サーバレスにOpenSearch Serviceを使うことができます。

プレビュー版環境

プレビュー版は以下のリージョンで使用できます。

  • 米国東部 (バージニア北部)
  • 米国東部 (オハイオ)
  • 米国西部 (オレゴン)
  • アジアパシフィック (東京)
  • 欧州 (アイルランド)
  • 欧州 (ストックホルム)

実際に使ってみた

Amazon OpenSearch Serverlessを実際に使っていきます。

プレビュー版ページ

Amazon OpenSearch Service のページでプレビュー版のAmazon OpenSearch Serverlessが選択可能です。

コレクションの作成

Amazon OpenSearch Serverlessではコレクション単位でサービスを管理します。
(Amazon OpenSearchでは、これまでドメイン単位で管理していました)
コレクションの作成」を選択して、作成ページに進みます。
今回はコレクションタイプ「検索」を選択します。

ネットワークの設定でVPCエンドポイントを選択します。

コレクション作成の確認

コレクションが作成されていることを確認します。
OpenSearch ダッシュボード」を選択します。

選択後、OpenSearchのログイン画面が表示されることを確認します。

  • エラーが出る場合
    OpenSearchのURLにたどり着けていないことが考えられます。
    VPCエンドポイント周辺のネットワーク設定に問題があるかもしれません。

Amazon OpenSearch Serviceのドメイン作成との比較

デプロイタイプ(EC2)の選択が不要
ここがAmazon OpenSearch Serverlessのメリットになります。
最初からEC2の選択を行う必要がなく、スケーリングを自動で行ってくれます。
最適なEC2を自動で選択してくれるため、ユーザーの負担が無くなります。

コレクションのアクセスポリシー設定

アクセスポリシーを作成」を選択します。
コレクションにアクセスできるユーザーや権限を設定することができます。

今回は特定のIAMユーザーにコレクション操作する権限を与えます。
下の画像のようにIAMユーザーに権限を設定しました。

この設定によりIAMユーザーの認証情報でOpenSearchへのログインが可能になります。

ログインを行う

ログイン画面に移動します。
ここでIAMユーザのアクセスキーIDとシークレットキーアクセスキーを入力します。

  • エラーが出る場合
    認証情報に関してエラーが出ています。
    アクセスポリシーで必要な権限設定ができていない可能性があります。

ログインすることができれば、ここからの操作は通常のOpenSearchと同じです。

OpenSearchを活用してデータの検索を行う

下のページを参考にしました。 docs.aws.amazon.com

開発ツールに移行

OpenSearchの中の「Dev Tools」を選択します。

インデックスにアイテムを追加する

POSTコマンドを活用して"veggies"というインデックスにアイテムを追加します。

  • bulk
    一括操作を行うAPIです。リクエストをまとめて実行できます。
    今回はアイテム作成を一括して行っています。
    アイテム作成時にはインデックスとIDの指定が必要です。 opensearch.org

インデックスから検索する

GETコマンドを活用してインデックスからアイテムを検索します。
検索結果で追加したアイテムを取得できました。

  • search
    検索を行うAPIです。インデックスと検索ワードの指定が必要です。
    今回はveggiesというインデックスから、{ "color": "green" }というワードを検索しています。 opensearch.org

OpenSearchのAPI一覧は以下に記載されています。

docs.aws.amazon.com

使ってみて

使ってみてのOpenSearchとOpenSearch Serverlessの違いをまとめました。

OpenSerachOpenSearch Serverless
EC2のインスタンス・クラスタの選択必要EC2のインスタンス・クラスタの選択不要
EC2管理のためのノード関連の設定必要EC2管理のためのノード関連の設定不要
ドメイン単位で管理コレクション単位で管理
認証情報がユーザーID・パスワードアクセスキーID・シークレットアクセスキー
アクセスポリシーで権限管理セキュリティページのデータアクセスポリシーやネットワークポリシーで権限管理

冗長性について

作成されたIndexはS3に保存され、冗長性が担保されている (AWS公式ページより引用)

ローカル環境からの接続について

ローカル環境からOpenSearch Serverlessに接続するには AWS CLI 2.9以上が必要 docs.aws.amazon.com awscli.amazonaws.com

気になる方はぜひ使ってみてください!

▼AWS re:Invent 2022▼
米・ラスベガスで開催されるAWS最大のカンファレンスイベント

最後まで読んでいただき、ありがとうございました。