Slide 1

Slide 1 text

OpenSearchのデータを Grafanaで可視化して、 ⾃由の翼を授ける PHPerKaigi2025 Day1 #TrackB

Slide 2

Slide 2 text

⾃⼰紹介 名前:Katsu 所属企業:株式会社ウィルゲート 所属チーム:インフラチーム 趣味:ゲーム、読書 PHPerKaigiに初参加初登壇 PHPは趣味で書く

Slide 3

Slide 3 text

皆さんに質問です

Slide 4

Slide 4 text

翼欲しいですか?

Slide 5

Slide 5 text

欲しいですよね?

Slide 6

Slide 6 text

今回は翼を授ける話です

Slide 7

Slide 7 text

⽬次 1. 導⼊ 2. アポトルの概要 3. OpenSearchの概要 4. Grafanaの概要 5. 技術選定の理由 6. Grafanaの設定 7. 苦労した点 8. 注意する点 9. 設定した結果

Slide 8

Slide 8 text

⽬次 1. 導⼊

Slide 9

Slide 9 text

新規技術を採⽤するとき思いがちな 「可視化するのだるい... 」 大事なのは分かるけど ... コストあまりかけたくない

Slide 10

Slide 10 text

ある⽇採⽤した新規技術を可視化することになった

Slide 11

Slide 11 text

今回可視化する対象は 「OpenSearch」 ドーモ。OpenSearch=サン。

Slide 12

Slide 12 text

実際のプロダクトをもとに説明

Slide 13

Slide 13 text

宣伝

Slide 14

Slide 14 text

⽬次 1. 導⼊ 2. アポトルの概要

Slide 15

Slide 15 text

アポトルの概要 ● BtoB セールスツールで、あらゆる機能が「企業を検索する」こと に関連

Slide 16

Slide 16 text

アポトルの概要 ● 企業名や事業‧サービス内容のフリーテキスト検索、業種や所在 地を選択しての検索、従業員数や売上⾼などの数値の範囲検索を ⾃由に組み合わせて検索

Slide 17

Slide 17 text

アポトルの概要 ● ⽇本で法⼈番号を持つ法⼈は約 500 万件の企業が存在

Slide 18

Slide 18 text

アポトルの概要 ● 企業ごとにキーマン情報を取得

Slide 19

Slide 19 text

リリース当時のアポトルの課題

Slide 20

Slide 20 text

アポトルの課題 ● 検索条件に対応する値をカラムとして持つ 1 つのテーブルに対し て、 MySQLでAND や OR でつなげて検索するイメージ ● 検索条件の組み合わせの最もひどいケースではMySQLサーバーか らレスポンスに 9 分近くかかる

Slide 21

Slide 21 text

OpenSearchを導⼊した理由は 「検索」が遅かったから うわっ…企業の検索、遅 すぎ…?

Slide 22

Slide 22 text

⽬次 1. 導⼊ 2. アポトルの概要 3. OpenSearchの概要

Slide 23

Slide 23 text

OpenSearchって何?

Slide 24

Slide 24 text

OpenSearchとは 「検索を速くする技術」

Slide 25

Slide 25 text

導⼊した結果は‧‧‧ 「10倍速くなった!」

Slide 26

Slide 26 text

導⼊結果 ● 画⾯上で 1 つの条件を指定し「検索」ボタンをクリックしてから 結果が表⽰されるまでの時間が13 秒から1 秒に短縮された ● 他にも数分間かかる複雑な条件の組み合わせが、1 秒強以内にな り、検索速度が全体的に少なくとも10倍になった 13秒 1秒

Slide 27

Slide 27 text

ブログ ● 詳細はテックブログを参照してください 参考資料 :https://tech.willgate.co.jp/entry/2024/12/07/090000

Slide 28

Slide 28 text

OpenSearchの構成 ● Amazon OpenSearch Service でOpenSearchの環境を構築

Slide 29

Slide 29 text

OpenSearchの構成 ● セキュリティ⾯を考慮し、VPCドメイン(VPC内でのみアクセス可 能)で設定したため、踏み台経由でアクセスしていた

Slide 30

Slide 30 text

Grafanaの導⼊経緯 ● プロダクトのセキュリティも担保し、パフォーマンスは上がった 開発チーム おっ、やったか!? よし、勝ったな 
 風呂入ってくる 


Slide 31

Slide 31 text

Grafanaの導⼊経緯 ● 営業チームが欲しいデータを直接DBから抽出していたり、 OpenSearchに直接クエリ叩いて抽出していた N回

Slide 32

Slide 32 text

Grafanaの導⼊経緯 ● 運⽤⾯の負担が開発チームに重くのしかかっていた 開発チーム

Slide 33

Slide 33 text

⽬次 1. 導⼊ 2. アポトルの概要 3. OpenSearchの概要 4. Grafanaの概要

Slide 34

Slide 34 text

Grafanaって何?

Slide 35

Slide 35 text

Grafanaとは 「データ可視化ツール」

Slide 36

Slide 36 text

Grafanaの導⼊経緯 ● プロダクトの監視でGrafanaを利⽤していた

Slide 37

Slide 37 text

構成図

Slide 38

Slide 38 text

⽬次 1. 導⼊ 2. アポトルの概要 3. OpenSearchの概要 4. Grafanaの概要 5. 技術選定の理由

Slide 39

Slide 39 text

技術選定 機能 可⽤性 セキュリティ コスト 標準のダッシュボード ◎ ◎ △ △ Amazon Managed Grafana 〇 ◎ 〇 × Grafana 〇 △ 〇 ◎

Slide 40

Slide 40 text

技術選定 機能 可⽤性 セキュリティ コスト 標準のダッシュボード ◎ ◎ △ △ Amazon Managed Grafana 〇 ◎ 〇 × Grafana 〇 △ 〇 ◎

Slide 41

Slide 41 text

標準のダッシュボードの特徴 メリット ● OpenSearchにクエリを投げる、モニタリングする、データをバッ クアップする、権限を管理するなど幅広い操作が可能 ● Amazon OpenSearch Serviceの場合、クラスターを作成した時点 で利⽤可能

Slide 42

Slide 42 text

標準のダッシュボードの特徴 デメリット ● 機能が多すぎることで学習コストと運⽤コストが⾼い ● インフラ⾯での管理コストは低いが、権限設定や学習コストの⾼ さで、アプリケーション⾯の管理コストが⾼くなる

Slide 43

Slide 43 text

標準のダッシュボードのユースケース ユースケース ● 基本的には標準のダッシュボードがおすすめ ● OpenSearchへのアクセスが容易 ● 操作する⼈が開発チームのみなど限られている ○ 権限設定などで考慮する点が少なくなる

Slide 44

Slide 44 text

技術選定 機能 可⽤性 セキュリティ コスト 標準のダッシュボード ◎ ◎ △ △ Amazon Managed Grafana 〇 ◎ 〇 × Grafana 〇 △ 〇 ◎

Slide 45

Slide 45 text

Amazon Managed Grafanaの特徴 メリット ● マネージドサービスなのでサーバーを管理する必要が無く、管理 コストと運⽤コストは低い ● OpenSearchのネットワークの設定やセキュリティ⾯を考慮しなく て良い ● 既にGrafanaを運⽤している場合、学習コストが低い

Slide 46

Slide 46 text

Amazon Managed Grafanaの特徴 デメリット ● ⾃前のGrafanaよりサービス分のコストが⾼い ● インフラ⾯のセキュリティリスクは低いが、アプリケーション⾯の セキュリティリスクは⾃前のGrafanaと同じ

Slide 47

Slide 47 text

Amazon Managed Grafanaのユースケース ユースケース ● インフラコストが増えても運⽤コストや管理コストを低くしたい ● OpenSearchのセキュリティ⾯を厳しく設定している

Slide 48

Slide 48 text

技術選定 機能 可⽤性 セキュリティ コスト 標準のダッシュボード ◎ ◎ △ △ Amazon Managed Grafana 〇 ◎ 〇 × Grafana 〇 △ 〇 ◎

Slide 49

Slide 49 text

Grafanaの特徴 メリット ● AWS以外の環境でも使え、移⾏しやすい ● 既にGrafanaを運⽤している場合、学習コストが低い ● サーバーを管理する運⽤コストは⾼いが、サービス分のコストが 低い

Slide 50

Slide 50 text

Grafanaの特徴 デメリット ● セキュリティ⾯やネットワーク⾯を考慮する必要があるので、実装 に⼯夫が必要 ● Grafanaを運⽤していない場合、コスト⾯のメリットはあまり無い

Slide 51

Slide 51 text

Grafanaののユースケース ユースケース ● 既にGrafanaを運⽤している ● 運⽤コストや管理コストが増えてもインフラコストを低くしたい

Slide 52

Slide 52 text

ここまでのまとめ ● 特に制約が無い場合 → 標準のダッシュボードがおすすめ ● 運⽤コストや管理コストを低くしたい場合 → Amazon Managed Grafanaがおすすめ ● インフラコストを低くしたい場合 → Grafanaがおすすめ

Slide 53

Slide 53 text

⽬次 1. 導⼊ 2. アポトルの概要 3. OpenSearchの概要 4. Grafanaの概要 5. 技術選定の理由 6. Grafanaの設定

Slide 54

Slide 54 text

どうやってGrafanaで可視化した?

Slide 55

Slide 55 text

設定 参考資料 :https://grafana.com/grafana/plugins/grafana-opensearch-datasource/

Slide 56

Slide 56 text

設定 ● 標準のダッシュボードからOpenSearchのインデックス や監視するのに欲しい項⽬を調査し、可視化

Slide 57

Slide 57 text

設定 ● 標準のダッシュボードからOpenSearchのインデックス や監視するのに欲しい項⽬を調査し、可視化 ● GrafanaのOpenSearchのプラグインを利⽤

Slide 58

Slide 58 text

設定 ● 標準のダッシュボードからOpenSearchのインデックス や監視するのに欲しい項⽬を調査し、可視化 ● GrafanaのOpenSearchのプラグインを利⽤ ● OpenSearchのエンドポイントを指定すれば設定完了

Slide 59

Slide 59 text

⽬次 1. 導⼊ 2. アポトルの概要 3. OpenSearchの概要 4. Grafanaの概要 5. 技術選定の理由 6. Grafanaの設定 7. 苦労した点

Slide 60

Slide 60 text

苦労した点 ● 可視化する話が出た段階でOpenSearchを知らなかった ○ → 0からキャッチアップ ● そもそも何を可視化すれば良いのかが分からなかった ○ → サンプルデータを使って、出来る範囲を調査 ● VPCドメインで作成し、アカウントもまたいでいるので、ネット ワークの疎通が難しかった ○ → VPCエンドポイントの設定が必要になった

Slide 61

Slide 61 text

構成図

Slide 62

Slide 62 text

⽬次 1. 導⼊ 2. アポトルの概要 3. OpenSearchの概要 4. Grafanaの概要 5. 技術選定の理由 6. Grafanaの設定 7. 苦労した点 8. 注意する点

Slide 63

Slide 63 text

注意点 ● VPCエンドポイントを利⽤する場合、その分だけコストが増える ● インデックスの構造が適切でないと正常に表⽰されない場合があ る

Slide 64

Slide 64 text

⽬次 1. 導⼊ 2. アポトルの概要 3. OpenSearchの概要 4. Grafanaの概要 5. 技術選定の理由 6. Grafanaの設定 7. 苦労した点 8. 注意する点 9. 設定した結果

Slide 65

Slide 65 text

Grafanaを設定した結果 ● 直接DBから抽出したり、OpenSearchに直接クエリ叩く必要がな くなった

Slide 66

Slide 66 text

Grafanaを設定した結果 ● 厳密な権限の管理が不要なので、クエリのミスなど⼈的な事故の リスクがほぼなくなった

Slide 67

Slide 67 text

Grafanaを設定した結果 ● 開発チームに重くのしかかっていた運⽤⾯の負担を取り除き、翼を 授けるに成功

Slide 68

Slide 68 text

翼を授けることに成功!