# GCP上のプロジェクトとElasticsearch Serviceの連携について

**URL:** <https://discuss.elastic.co/t/gcp-elasticsearch-service/198820>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [September 10, 2019, 3:50am UTC](https://discuss.elastic.co/t/gcp-elasticsearch-service/198820 "2019-09-10T03:50:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Masanori\_Mishima](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/masanori_mishima/32/45030_2.png) [@Masanori\_Mishima](https://discuss.elastic.co/u/Masanori_Mishima)\
**Post date:** [September 10, 2019, 3:50am UTC](https://discuss.elastic.co/t/gcp-elasticsearch-service/198820/1 "2019-09-10T03:50:25Z")

</div>

GCP上のプロジェクトにFirebaseでホスティングをしてSPAを開発しています。  
開発しているSPAでは、文字列検索によって目的のコンテンツの情報を取得しており、  
現在はローカルサーバ上に立てたDockerにElasticsearchのインデックスを作成してそこから  
検索結果の情報を取得しています。  
ローカルでElasticsearchを使用する場合、そのローカルサーバを立ててるPCが何らかの原因で故障して停止した場合、SPAからの検索が不可能になるためElasticsearch自体をクラウドから使用することを検討したところ、GCPでElasticsearch Serviceが使用できることがわかりました。

まずトライアルでインスタンスを作成するところまではできたのですが、SPAを立てているGCP上のプロジェクトからそのインスタンスを使う方法がわからない状況です。

わかりにくい長文で申し訳ないですが、回答可能な方はご回答いただけると大変助かります。

---

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [September 10, 2019, 4:25am UTC](https://discuss.elastic.co/t/gcp-elasticsearch-service/198820/2 "2019-09-10T04:25:00Z")

</div>

こんにちわ

SPAがどのような機能を持つ画面かわかりませんが、  
Elasticsearchにクエリを投げている部分があるかと思います。  
たぶん そのクエリの投げ先は、[http://localhost:9200/～](http://localhost:9200/%EF%BD%9E) などとなさっているのではないでしょうか。

その部分をElasticsearch Serviceのエンドポイントに変更いただくと良いのでは？と思います。  
localhost:9200を何に変更すれば良いのかは、Elasticsearch Serviceの`Copy Endpoint URL`のところを選択すれば得られます。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/0/c/0cb702a7d316e9e4b24387cc5fb0d265d0dbfd1c.png)

例えば、こんなURLになっているかと思います。

> [https://123456789012345678901234567890.asia-northeast1.gcp.cloud.es.io:9243/](https://123456789012345678901234567890.asia-northeast1.gcp.cloud.es.io:9243/)

localhost:9200 の部分を、https://ホスト名:9243と書き換えていただくと連携できるかと思います。

[https://ホスト名:9243](https://xn--zck4a3ct33s:9243) でアクセスすると、[https://localhost:9200](https://localhost:9200) を開いたときと同じなので、イメージできるかと。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/c/9c099e7b5f4ce97befcf95d6a3a0f02bd6cba2c8.png)

なお、ポート番号は不変（9243固定）だったように記憶しています。

見当違いの内容でしたらすみません。

---

<div class="post-metadata">

**Author:** ![Masanori\_Mishima](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/masanori_mishima/32/45030_2.png) [@Masanori\_Mishima](https://discuss.elastic.co/u/Masanori_Mishima)\
**Post date:** [September 10, 2019, 10:29am UTC](https://discuss.elastic.co/t/gcp-elasticsearch-service/198820/3 "2019-09-10T10:29:04Z")

</div>

tsgkdtさん

こんにちは。ご回答いただき、ありがとうございます。  
アプリにはクエリを投げている箇所があり、そこのエンドポイントをElasticsearch Serviceでインスタンスを作成した際に払い出されるEndpoint URLで置き換えればいけるのではないかとのことなので、  
試してみようと思います。

検索やindexの作成、データの登録等も払い出されたエンドポイントに対してcurlコマンドを投げて  
実施するという認識でいますが、合ってますでしょうか？

---

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [September 10, 2019, 12:44pm UTC](https://discuss.elastic.co/t/gcp-elasticsearch-service/198820/4 "2019-09-10T12:44:29Z")

</div>

補足しておきます。

つまるところ、何をするにしてもElasticsearchのエンドポイントに対してリクエストを投げるのですが、  
curlで頑張るよりは簡単かもしれない方法があるので以下紹介してみます。  
既知の内容があるかもしれませんが、ご容赦ください。

Elasticsearch Serviceでクラスターを構築した際に、Kibanaが１つ起動しているかと思います。

indexの作成やindexの中身の設定については、補完やサジェストをしてくれるという点でKibanaのDev toolsの中にあるConsoleというところで実行するのも便利です。

画面イメージを添付します。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/5/a/5a6cab13caab044156181407321ce3a1663e633f.png)

データの登録などは、１つ１つcurlで頑張って入れるのは大変かもしれません。  
データを入れるツールとしてLogstashがあります。入れたいデータの種類によっては、これを使うことも検討できるかと思います。

[https://www.elastic.co/guide/en/logstash/current/connecting-to-cloud.html](https://www.elastic.co/guide/en/logstash/current/connecting-to-cloud.html)

ご参考になれば。

---

<div class="post-metadata">

**Author:** ![Masanori\_Mishima](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/masanori_mishima/32/45030_2.png) [@Masanori\_Mishima](https://discuss.elastic.co/u/Masanori_Mishima)\
**Post date:** [September 17, 2019, 2:50am UTC](https://discuss.elastic.co/t/gcp-elasticsearch-service/198820/5 "2019-09-17T02:50:33Z")

</div>

回答ありがとうございます。  
Logstashについて聞きたいのですがこのツール自体はElasticsearch Service内でプラグインとして  
用意されているものではなく、別途ユーザのローカルにインストールを行って使用するものなのでしょうか？

---

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [September 17, 2019, 3:56am UTC](https://discuss.elastic.co/t/gcp-elasticsearch-service/198820/6 "2019-09-17T03:56:24Z")

</div>

Logstashは、Elasticsearch Serviceのプラグインではなく、どこかのサーバーにインストールして動かしてもらうものになります。

構成のイメージは、以下のスライドが参考になるかと思います。

> **[Elastic再入門 #elasticsearchjp by Jun Ohtani](https://noti.st/johtani/LrbqW8#srzPZvf)**
>
> 第30回Elasticsearch勉強会 - Elastic再入門で使用したスライドです。
> demoでお見せした、CSV読み込みとMachine Learningのスライドを少し追加しました。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [October 15, 2019, 3:56am UTC](https://discuss.elastic.co/t/gcp-elasticsearch-service/198820/7 "2019-10-15T03:56:28Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
