こんにちは、株式会社ライトハウスでエンジニアをしている平塚です。
今回はサウナで分析基盤を作った話を致します。
なぜサウナなのか
休憩時間に本気のリフレッシュできるからです。
逆に長時間働き過ぎると眠くなってくるので(個人の主観)夢中になってやりすぎ防止出来る面は 良いかなと思っています。
分析基盤を作成した場所
今回利用させて頂きました施設は両国湯屋江戸遊 です。
両国の江戸遊を選択した理由は複数あるのですが、以下の通りです。
会議室の利用
会議室は当日に伺うと埋まっている事が多いです、 事前予約が可能なので予約することをお勧めします。
サウナの種類
男湯には以下2種類のサウナが用意されています。
- フィンランドサウナ(90度前後)
- 中温サウナ(75度前後)
水風呂は1つあり、18度くらいに設定されています。
若干ぬるめかと思ったのですが、サウナの温度設定が良いのか 水質が良いのか分かりませんが水風呂がすごく気持ちよかったと感じました。
分析基盤とは
世の中ではデータの収集、蓄積、分析、可視化などの機能を有したものであるなど、色々ありますが ライトハウスでもそれら4つの機能を実現できる基盤を構築しています。
収集: Airflowを使用してISANAを利用したユーザのデータ(個人情報はマスクしています)や利用状況などの集計。
蓄積: Google BigQueryに保存。
分析:Redash Queryの利用。
可視化: Redash Dashboardの利用。
RedashのDashboard全社員が共通の指標を追うことができる状況を目指しています。
なぜEKSを利用したのか
AWSを選択する理由
AWS(S3やRDS)に大量のデータが存在するため、以下の理由から他のクラウドサービスではなくAWSを利用する選択をしました。
EKSを選択する理由
正直機能だけを考慮すればEC2やECSなどで十分ですが、 選択した理由は以下の通りです。
- ただただKubernetesを触りたいという欲望
- どれを使っても基盤部分は2,3時間で環境作れる気がする
- BigQueryを利用しているのでいつでもGKEに移行できること
アーキテクチャの説明
KubernetesにRedashとAirflowを稼働させ、各種データソースから取得したデータを Bigqueryに保存し、Redashで分析します。
Redashを使用する理由
BIツールとして利用実績が十分あること。
私自身もコントリビュートしているためある程度バグが存在しても修正でき、 独自機能を追加することも十分可能であると考えたからです。
Redashの構築説明
redashの構築はコード付きで解説すると長くなるのでサンプルコードを作成しました。 ログインにはgoogle oauthを利用する想定で記載しています。
https://github.com/jasonsmithj/eks-redash
詳細な解説については次回以降で行います。
Airflowを使用する理由
ライトハウスに携わる以前はDigdagとEmbulkを利用していました。 今回Airflowの採用に踏み切った理由は以下の通りです。
- Pythonを利用して自由度の高い処理の実装が容易である
- GCPのマネージドサービスであるCloud Composerの実績が増えてきている
- 今まで触っていなかった技術に触れたかった
Airflowの構築説明
redashの構築はコード付きで解説すると長くなるのでサンプルコードを作成しました。 ログインにはgoogle oauthを利用する想定で記載しています。
https://github.com/jasonsmithj/eks-airflow
詳細な解説については次回以降で行おうといます。
今後の展望
漁業という独特なドメインに対してIoTを利用しているため、 他の会社には無いようなデータが数十億レコード存在するので 様々な観点で分析する計画を進めています。
また、現在は取得できていませんが、外部データ(気象情報、海底地形、漁協の水揚げ)も取得し 漁業者だけでなく流通や水産資源保護などのトレーサビリティ、サステナビリティの観点でも分析を進めていきます。
まとめ
初めて扱う技術ではハマる事が多く、 合間にサウナを利用する事でリフレッシュできるため、 体感でtypoなどの単純なミスに気付くのが早くなりました。
また、ライトハウスでは漁業者に直接お会いするなど、 出張先のサウナで作業をする機会が多く九州や関西地域のサウナについても 紹介させて頂きますのでサウナ好きの方は楽しみにしてもらえると嬉しいです。