LoginSignup
2
0

More than 3 years have passed since last update.

CloudSearchを使ってみた

Last updated at Posted at 2021-04-21

はじめに

SAPの勉強中にCloudSearchというサービスを初めて知ったので試しに触ってみます。

CloudSearchの概要

  • ウェブサイト、アプリケーション向けの検索機能を実装できるフルマネージド型サービス
  • アーキテクチャ
    • 構成サービス:検索ドメイン作成・構成
    • ドキュメントサービス
    • 検索サービス
  • 検索インスタンスが1つ以上存在(自動的にスケールアップ・スケールアウト)
  • アップデートが2015年で停止(https://aws.amazon.com/jp/cloudsearch/whats-new/)

料金

  • 初めての使用の場合、30日間無料
  • 通常料金
    • 検索インスタンスタイプsearch.m1.small $0.082/hour
    • マルチAZなら単純に倍
    • ドキュメントバッチのアップロード $0.1/1000件
    • IndexDocumentsリクエスト(インデックス構成変更) $0.98/検索ドメインに格納されたデータ1GB
    • データ転送(イン) 無料
    • データ転送(アウト) 最初の10TB/月 $0.14/1GB
    • データ転送量は少し複雑なので鵜呑みにせず公式サイト参照のこと

https://aws.amazon.com/jp/cloudsearch/pricing/

使ってみた

コンソールからCloudSearchに移動し、Create a new search domainをクリック。

スクリーンショット 2021-04-21 22.01.07.png

ドメイン名やインスタンスタイプなどを以下の通り入力。

項目
Search Domain Name test
Desired Instance Type Use default (search small)
Desired Replication Count Use default (0)

Use defaultの既定値は、ドメイン作成後に以下の通りcliを使用して確認しました。

[cloudshell-user@ip-10-0-142-142 ~]$ aws cloudsearch describe-scaling-parameters --domain-name test
{
    "ScalingParameters": {
        "Options": {
            "DesiredReplicationCount": 0,
            "DesiredPartitionCount": 0
        },
        "Status": {
            "CreationDate": "2021-04-21T13:53:50.348000+00:00",
            "UpdateDate": "2021-04-21T13:53:50.348000+00:00",
            "UpdateVersion": 15,
            "State": "Active",
            "PendingDeletion": false
        }
    }
}
[cloudshell-user@ip-10-0-142-142 ~]$ aws cloudsearch describe-domains --domain-name test --query DomainStatusList[*]["SearchInstanceType"]
[
    [
        "search.small"
    ]
]

インスタンスタイプとレプリケーションカウントは後から変更可能です。
あらかじめ大量のトラフィックやデータが予想されている場合、最初の設定時からインスタンスタイプなどを大きく設定できます。
CloudSearchは自動的にスケールしますが、希望したインスタンスタイプやレプリケーションカウントを下回ることはありません。
設定した内容を下限として動作します。

スクリーンショット 2021-04-21 22.08.15.png

今回、インデックス作成にはデモを使用します。

スクリーンショット 2021-04-21 22.09.00.png

デモを使用しているので、良い感じに設定してくれています。
実際に自分が設定するとなると時間がかかりそうですね。

スクリーンショット 2021-04-21 22.10.52.png

自分が使用しているグローバルIPアドレスを指定します。

スクリーンショット 2021-04-21 22.12.30.png

内容を確認します。

スクリーンショット 2021-04-21 22.13.38.png

ドメインの初期化に10分ほど時間がかかります。

スクリーンショット 2021-04-21 22.14.05.png

完了するまで待ちます。

スクリーンショット 2021-04-21 22.14.43.png

完了しました。
ドキュメントがないので、デモをダウンロードします。

スクリーンショット 2021-04-21 23.01.58.png

スクリーンショット 2021-04-21 23.03.21.png

5000のドキュメントがアップロードされます。

スクリーンショット 2021-04-21 23.04.07.png

スクリーンショット 2021-04-21 23.04.58.png

jacksonで検索をかけると一致するものが表示されました。

スクリーンショット 2021-04-21 23.06.48.png

ブラウザからエンドポイントを入力しても表示されます。
Search Endpoint/2013-01-01/search?q=jackson&format=xml

スクリーンショット 2021-04-21 23.12.52.png

Access Policyを全て拒否に設定すると、以下のようにブラウザからの検索はできなくなります。

スクリーンショット 2021-04-21 23.27.20.png

ブラウザからも検索できていたのは、Access Policyで自分のグローバルIPを許可していたからだということがはっきりと分かりました。

おわりに

実際にアプリなどに組み込むときはどのようにするのか気になります。
今回の目的はとりあえずCloudSearchに触れてみることなので、ここまでにしておきます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0