AWS のための OpenSearch GUI とクライアント

DynoTable は Amazon OpenSearch Service のためのデスクトップの OpenSearch GUI 兼クライアントです。インデックスを DynamoDB テーブルと同じウィンドウで開きます。テーブルが検索インデックスにデータを流しているなら、インデックスの中身を確かめるために OpenSearch Dashboards へ切り替える必要はもうありません。⌘K から開いて検索し、ドキュメントを直して Commit します。タブもキーもテーブルと同じです。

接続できるターゲットは 3 種類です:

  • Amazon OpenSearch Service のマネージドドメイン。
  • Amazon OpenSearch Serverless の Serverless コレクション。
  • 自分で入力するセルフホストのエンドポイント(手元のマシンで動く OpenSearch コンテナなど)。
テーブルグループとインデックスグループを表示した ⌘K パレット:ドキュメント数とサイズを示す products インデックスと、それを指すエイリアス。
テーブルグループとインデックスグループを表示した ⌘K パレット:ドキュメント数とサイズを示す products インデックスと、それを指すエイリアス。

インデックスでできること

テーブルタブでできることはすべて、ドキュメント向けの言葉で使えます:

プロファイルで OpenSearch をオンにする

各 は DynamoDB、OpenSearch、またはその両方を使います。これがエンジンの設定で、少なくとも 1 つは常にオンです。設定する場所は 3 つあります:

  • オンボーディング: エンジンのステップ。OpenSearch を選ぶと、次のステップに認証情報で届くドメインとコレクションが、インデックス数とともに表示されます。何も見つからないときは理由を示し、そのまま先へ進めます。
  • Profile を追加: ダイアログ内の同じエンジンのステップ。
  • 設定 → 対象の Profile → エンジン: 接続のすぐ下の項目。

1.18.0 より前のバージョンで作ったプロファイルは DynamoDB のみのままです。 DynoTable がそのプロファイルで OpenSearch を初めて見つけたとき、一度だけ OpenSearch をオンにするか今はしないかを尋ねます。どちらを選んでも、自分でエンジンを変えるまでその答えが続きます。

DynamoDB のみのプロファイルにはインデックスがどこにも表示されず、OpenSearch のみのプロファイルにはテーブルが表示されません。設定を変えても、開いているタブは閉じません。

オンボーディングのエンジンのステップ。DynamoDB と OpenSearch のカードが両方ともオンになっている。
オンボーディングのエンジンのステップ。DynamoDB と OpenSearch のカードが両方ともオンになっている。

DynoTable がインデックスを見つける仕組み

DynoTable は、プロファイル自身の AWS 認証情報とプロファイルのリージョンで、ドメインと Serverless コレクションを一覧します。見つかったインデックスは ⌘K のインデックスグループに表示されます。隠しシステムインデックス(名前が . で始まるもの)は除かれ、エイリアスは指し示すインデックスとともに表示されます。

それ以外は、設定にあるプロファイルの OpenSearch セクションにあります:

  • ドメインとコレクションを検出: 既定でオン。アカウントに OpenSearch の権限がないとき、またはセルフホストのエンドポイントだけを使うときはオフにします。
  • セルフホスト endpoint: http://localhost:9200 のような URL。DynoTable はここへ署名なし(AWS 署名もパスワードもなし)で接続するので、ローカルのコンテナや、認証なしのリクエストを受け付けるエンドポイントに向いています。
  • 接続をテスト: エンドポイントのインデックスを一覧するか、できない理由を示します。

ローカルの DynamoDB プロファイルには AWS アカウントがないため、検出は実行されません。それでもセルフホストのエンドポイントは開けます。

DynoTable は手元のマシンから接続し、当社のサーバーを経由することはありません。 VPC 内のドメインは、マシンからそのエンドポイントに届く場合(たとえば VPN 経由)にだけ開けます。

設定のプロファイルの OpenSearch セクション:接続をテストに成功した、http://localhost:9200 のセルフホストエンドポイント。
設定のプロファイルの OpenSearch セクション:接続をテストに成功した、http://localhost:9200 のセルフホストエンドポイント。

IAM 権限

ターゲットを一覧するには、プロファイルのプリンシパルに次の権限が必要です:

{
  "Effect": "Allow",
  "Action": [
    "es:ListDomainNames",
    "es:DescribeDomains",
    "aoss:ListCollections",
    "aoss:BatchGetCollection"
  ],
  "Resource": "*"
}

それぞれの組は単独で機能します。aoss のアクションがなくてもドメインは表示され、その逆も同じです。両方が拒否されると、インデックスグループに拒否されたアクションの名前が表示されます。

ドキュメントの読み書きは OpenSearch 自身が認可します:

  • マネージドドメイン: ドメインのアクセスポリシーが IAM プリンシパルを許可している必要があります。きめ細かなアクセスコントロールが有効なら、そのロールマッピングで読み書きできるインデックスが決まります。
  • Serverless コレクション: データアクセスポリシーがプリンシパルにコレクションとインデックスの権限を与え、IAM ポリシーに aoss:APIAccessAll が必要です。

拒否された場合、インデックスタブには空の結果ではなく権限エラーが表示されます。

ドメインと Serverless コレクションの違い

DynoTable は、できることが変わる箇所でその違いを示します:

機能マネージドドメインまたはセルフホストServerless コレクション
Commit が同時の変更を検出するはい、リベースするいいえ、最終書き込み優先(タブに表示)
レプリカと更新間隔はいいいえ
エイリアスはいいいえ
直接の一括実行サーバー上で実行DynoTable が各ドキュメントを書き込む
独自のドキュメント _id で編集はいSearch コレクションのみ

無料で使える範囲

無料の読み取り専用プランでは、インデックスの閲覧と検索ができます: Lucene とクエリ DSL の検索、フィルター、クイックビュー、インデックスのダイアログ、ファイルやクリップボードへのエクスポート、そしてベクトルを貼り付けてのベクトル検索です。これらは読み取りです。

ドキュメントの編集や削除、一括編集、インポート、インデックスの作成・変更・削除、Workbench クエリや Smart Table の実行、AI アシスタントには、テーブルと同じく試用中または有効なライセンスが必要です。

DynoTable がしないこと

DynoTable はインデックスのデータを扱うクライアントで、OpenSearch のあらゆるツールの代わりではありません:

  • Elastic Cloud やその他の Elasticsearch サービスには対応していません。
  • ダッシュボードや可視化はありません。 グラフには OpenSearch Dashboards を使い続けてください。
  • インデックステンプレートや ISM ポリシーはなく、マッピングエディタもありません。新しいインデックスは、最初に書き込んだドキュメントから自動でマッピングされます。
  • Serverless のインデックスには設定がありません: コレクションが自分で管理します。
  • インデックスの S3 へのエクスポートはありません。エクスポート先はファイルかクリップボードです。

更新日