LoginSignup
7
5

More than 5 years have passed since last update.

RubyからAmazon CloudSearchを操作する(AWS SDK Version2版)

Last updated at Posted at 2015-03-05

こんにちは@joytomoです。
全文検索エンジンと言えば近頃はElasticsearchが元気ですが、
いろいろあって今回はAmazon CloudSearchを使ってみました。

AWS SDKは昨年メジャーアップデートがあり、
それ以降のCloudSearch周りの日本語資料があまり見つからないので、
個人的なメモも兼ねて導入部分を紹介します。

CloudSearchの設定

早速AWSコンソールからからCloudSearchを開いてみましょう。
他のAWSのサービスと同様に、メニューバーの「Service」から選択して開くことができます。
スクリーンショット 2015-03-06 2.42.10.png

この画面では手動で「Domain」を作成したり、「Index Fields」の構成を行ったりできます。
DomainというのはRDBで言うところのテーブルで、Index Fieldsはテーブル定義みたいなものです。

今回はRubyのSDKからDomainを作ったりするのが目的なので、
この画面での操作方法は割愛します。

ではSDKからAWSにアクセスするため、
ACCESS_KEYとSECRET_ACCESS_KEYを発行していきましょう。

この辺りは既知の方も多いと思いますので詳細は省きますが、
Security Credentialsを開いてユーザを発行しましょう。
スクリーンショット 2015-03-06 2.46.30.png

ユーザを作成するとACCESS_KEYとSECRET_ACCESS_KEYが発行されます。
続いて、Usersのリストから今作成したユーザを開き、ポリシーを追加します。
まずAttach Policyをクリックしましょう。
スクリーンショット 2015-03-06 2.44.15.png

「CloudSearchFullAccess」を選択します。
スクリーンショット 2015-03-06 2.44.35.png

するとポリシーが追加されました。
スクリーンショット 2015-03-06 2.44.52.png

これでSDKからCloudSearchにアクセスする準備は完了です。

Rubyから操作する

まずは準備です。gemのaws-sdkをインストールします。

$gem install aws-sdk

では早速スクリプトを書いていきます。
まずはDomainを作ってみましょう。

createCloudSearchDomain.rb
# encoding: utf-8
require 'aws-sdk-core'

cloudsearch = Aws::CloudSearch::Client.new(
  region: 'ap-northeast-1', #Tokyoリージョンです
  access_key_id: 'ACCESS_KEY',
  secret_access_key: 'SECRET_ACCESS_KEY'
)

resp = cloudsearch.create_domain(
  domain_name: "testdomain",
)
puts resp.successful?

ACCESS_KEYとSECRET_ACCESS_KEYは先程作成して設定したものを代入してください。
ではこれを流してみます。

$ruby createCloudSearchDomain.rb
true

responseがtrueになってます。
AWSコンソールを確認すると...
スクリーンショット 2015-03-06 3.21.16.png
ちゃんとDomainが新たにできていました。
これでひとまずRubyからAmazon CloudSearchを操作するのは出来そうです。

ひとまず今回は以上で!

7
5
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
7
5