Data Engineering Podcast

こんにちは。今日は、最近聴いてすごく面白かった Data Engineering Podcast のエピソードを紹介したいと思います。
https://www.dataengineeringpodcast.com/

今回のゲストはChakravarthy Kotaruさん。大手オンライン旅行会社でデータプラットフォームのディレクターをされていて、データ基盤とかスケーラブルなアーキテクチャに20年近く関わってきた方です。

テーマは、「スケールできるデータ基盤をどう作るか」「データベースをサービスとして提供するとは？」という話だったんですけど、正直…とっても勉強になりました。

特に印象に残ったのは、クラウドでよくある“とりあえず使えるDB”だけじゃ現場が回らないっていう現実。たとえば、Elasticsearchを使いたいのに標準で用意されてないとか、MongoDBを早く試したくて開発者が勝手に立ち上げちゃうとか…。でも、そうやって自前でやっちゃうと、パラメータの最適化もされてないし、SSLも認証もない、っていう問題が後からボロボロ出てくるらしいんです。

それを解決するために、Chakravarthyさんたちは「誰でも簡単に、安全でちゃんと設計されたDBを使えるようにしよう」と思って、社内用のデータベースプラットフォームをTerraformやService Catalogを使って構築していったそうです。これによって、開発チームは“書くコードに集中できる”、運用チームは“標準化されたDB環境をちゃんと管理できる”、という体制になって、スピードも安定性も上がったとのこと。

あと、面白かったのが「すぐに使える小〜中〜大サイズのDBテンプレート」を用意して、必要な性能に応じてポチッと選べば裏でノード数とか勝手にいい感じに設定してくれるって話。地味だけど、めちゃくちゃ嬉しい工夫だなと思いました。

何よりも印象的だったのは「プラットフォームはDevOpsの敵じゃない。味方として一緒に成長していくための土台」っていう姿勢。現場とちゃんと話して、強制せずに“使いたいと思われる”仕組みにしていくって大事なんだなって思いました。

データエンジニアリングに関わっている人はもちろん、「インフラってどう作っていくべき？」って悩んでいる人にもおすすめの回です！






**登場した技術・ツール**

| 用語                      | 説明                                                          |
| ----------------------- | ----------------------------------------------------------- |
| **Terraform**           | インフラをコードで管理する「Infrastructure as Code」ツール。AWSなどの環境を自動で構築できる。 |
| **AWS Service Catalog** | AWS内で事前定義されたリソース（EC2, RDSなど）を、セルフサービス形式で提供する仕組み。            |
| **CloudFormation**      | AWSでインフラをテンプレートベースで定義・構築できる仕組み。TerraformのAWS版のようなもの。        |
| **EventBridge**         | AWSのイベント駆動型の統合サービス。特定のイベントに応じて処理を自動実行できる。                   |
| **EC2**                 | AWSが提供する仮想サーバー。                                             |
| **EBS**                 | AWSのブロックストレージサービス。ディスク容量の自動拡張などで使われる。                       |

**データベース関連**

| 用語                     | 説明                                            |
| ---------------------- | --------------------------------------------- |
| **MongoDB**            | ドキュメント指向のNoSQLデータベース。スキーマが柔軟。                 |
| **Cassandra**          | 分散型NoSQLデータベース。高いスケーラビリティと可用性を持つ。             |
| **Redis**              | インメモリの高速NoSQLデータベース。キャッシュ用途によく使われる。           |
| **Elasticsearch**      | フルテキスト検索に特化した検索エンジン。ログ解析などにも使われる。             |
| **Aurora**             | AWSが提供する高性能なリレーショナルデータベース。MySQLやPostgreSQL互換。 |
| **SQL Server**         | Microsoft製のリレーショナルデータベース。多くの企業で使われている。        |
| **PostgreSQL / MySQL** | オープンソースのリレーショナルデータベース。汎用性が高く、クラウドでもよく使われる。    |
| **DocumentDB**         | AWSが提供するMongoDB互換のマネージドドキュメントDB。              |



**アーキテクチャ・考え方**
| 用語                                | 説明                                                                   |
| --------------------------------- | -------------------------------------------------------------------- |
| **Database as a Service (DBaaS)** | 開発者がインフラを意識せず、ボタン1つでDBを利用できるようにする提供形態。                               |
| **Platform Engineering**          | 開発チームがスムーズに開発できるよう、標準化されたプラットフォームを用意・提供するチーム文化。                      |
| **DevOps**                        | 開発（Dev）と運用（Ops）を連携させて、ソフトウェア開発とリリースを効率化するアプローチ。                      |
| **CAP定理**                         | データベースで「一貫性（C）」「可用性（A）」「分断耐性（P）」をすべて同時に満たすことはできないという理論。選択の指針として使われる。 |
| **Multi-account architecture**    | AWSなどで、スケーラビリティやセキュリティのために複数のアカウントを使って構成する運用方法。                      |
| **Hub-and-spoke モデル**             | 中心となる“Hub”が各“Spoke”に共通の機能やポリシーを提供・統制する構成。                            |
| **Automation-first mindset**      | 「繰り返し作業は自動化するべき」という考え方。運用コストを減らす。                                    |

**[用語の説明]**
Chat GPT