MNTSQ Techブログ

https://tech.mntsq.co.jp/

「MNTSQ(モンテスキュー)」のTechブログです。

フィード

記事のアイキャッチ画像
IAM Identity Center を IdP としてセルフホスト Langfuse に SSO ログインできるようにする
はてなブックマークアイコン 1
MNTSQ Techブログ
はじめに 弊社では LLM を活用した機能開発の観測基盤として Langfuse をセルフホストで運用しています。Langfuse は LLM アプリケーションのトレーシングやプロンプト管理等に活用できるオープンソースの LLM エンジニアリングプラットフォームです。 さてこの種のサービスには認証の課題がつきまといます。Langfuse は標準でメールアドレス / パスワードによるログインが可能ですが、弊社の方針として開発組織内で利用、管理しているアプリケーションやサービス群には IAM Identity Center を IdP とする SSO を採用しています。Redash や SendG…
3日前
記事のアイキャッチ画像
Datadog Notebook の活用:メトリックとメモの素早い情報共有とネクストアクションの提案
MNTSQ Techブログ
はじめに Datadog には Notebook というものがあります。以前から存在する機能であり、目新しいものではありません。 詳細は公式のドキュメントが詳しいのですが、Datadog で取り扱えるログやメトリックなどを埋め込めるドキュメンテーションツールという捉え方で然程ズレは無いはずです。単にログやメトリックを追うという意味ではダッシュボード*1 も使え、継続的な観測をする場合は ダッシュボードのほうが断然よいです。 いっぽうでこういった課題感もあると思います。すくなくとも私は常々あります。 あのメトリックとこのメトリックとは何らか関連性のある動きをするはずなんだが、パッと追いづらいぞ …
1ヶ月前
記事のアイキャッチ画像
AuroraMySQL 負荷試験報告 その2〜「なんとなくの試験」を卒業するための実践ログ〜
MNTSQ Techブログ
前回のあらすじ スキーマ分離設計のDB(テナント毎に独立したスキーマを持つDB)でサービス規模が拡大すると、スキーマ数の増加に由来するオーバーヘッドが無視できないものになる 次はパラメータチューニングなどで何とか延命できないか試してみたい tech.mntsq.co.jp はじめに 前回の負荷試験によって、弊社サービスは600テナントを超えたあたりから、データベースの急激な性能劣化を起こすリスクが高いことが判明しました。長期的には根本的な構成の見直しを行うとして、パラメータチューニングなどでデッドラインを後ろにずらせるのであれば、それはそれでありがたいです。 よって、今回の負荷試験の目的は、チ…
1ヶ月前
記事のアイキャッチ画像
スプリットビュー DNS 実践: VPC 内で動く OpenSearch ドメインのカスタムエンドポイント用 SSL 証明書を ACM で管理する
MNTSQ Techブログ
はじめに 課題感 スプリットビュー DNS サンプルコード おわりに 参考 はじめに 小ネタです。記事タイトルが長いのですが、これは本稿の内容を1行で説明したものになります。 そして OpenSearch に限らない一般的な話題としては repost.aws という優れた情報が既にあります。本稿では Terraform コードの例示や背景についての解説を与えることで、付加価値を与えんとするものになります。 課題感 OpenSearch を AWS 上のマネージドサービスとして扱う場合、OpenSearch ドメインを外部からのアクセスが可能なものとして構築するか、VPC 内に閉じたものとして構…
2ヶ月前
記事のアイキャッチ画像
AWS / Azure / Google Cloud 各コストを Datadog に集約して確認する
MNTSQ Techブログ
はじめに 弊社では AWS を主軸としたインフラ構成をもってプロダクトを展開していますが、一部では AWS 以外にも Azure および Google Cloud も活用しています。それぞれの棲み分けは以下のようなものになります。 AWS:ほとんど全て コンピュート / ネットワーク / ストレージ / DB / セキュリティ etc. Azure:OCR 関連 Google Cloud:LLM を使う処理および OCR 関連 利用規模としては AWS >> Google Cloud > Azure といったものになり、結果としてこれらクラウドベンダーの利用にかかるコスト(利用料金の意。以下本…
3ヶ月前
記事のアイキャッチ画像
CloudFront: マルチオリジン構成でSPAをホスティング
MNTSQ Techブログ
はじめに ソフトウェアエンジニアの森山です。 CloudFront で API と静的ファイルを別オリジンで扱い Single Page Application(以下 SPA)をホスティングする構成について解説します。 プライベート API を遮断する設定を追加する際に CloudFront のカスタムエラーレスポンスで躓きました。しかし CloudFront Functions を活用することで上手く切り抜けることができました。 構成 リクエストのパスを元にCloudFrontでオリジンへのアクセスを振り分けています。 S3でSPAのアセットをホスティングし、ALB経由でECSでバックエンド…
3ヶ月前
記事のアイキャッチ画像
MCP Python SDKのClientSessionGroupで複数のMCPサーバーと接続する
MNTSQ Techブログ
こんにちは、MNTSQ(モンテスキュー)でアルゴリズムエンジニア(AIエンジニア)をしている清水です。 MNTSQのプロダクトをLLMネイティブなプロダクトに進化させるべく、LLMOpsに関する実装が増えてきた今日この頃です。 これらの実装の過程で、複数のMCPサーバーに接続してセッションを管理するにはどのような実装がベストか?という問題にぶつかりました。 自前でラッパークラスを実装するしか方法はないのか、と思っていたのですが、MCP Python SDKにClientSessionGroupというクラスがあることを発見したので、これを使うと良さそうだという結論になりました。 私が調べた限りで…
4ヶ月前
記事のアイキャッチ画像
ここ半年間で実施してきた AWS セキュリティ改善施策をまとめる
MNTSQ Techブログ
はじめに 構成 ログ送出 ログ保管 GuardDuty 関係 分析 結果確認 実際の運用 分析系 行動系 おわりに はじめに MNTSQ はそのサービスの性質(「契約」の集約、一元管理、活用)上、セキュリティの維持と向上が至上命題です。よってセキュリティ改善において強いモチベーションが存在します。 今回の取り組み以前にも AWS ベストプラクティスに沿った AWS アカウントの管理や各種ログの収集は行われていましたが、収集済みログの活用やセキュリティ系の AWS 各サービス運用には改善の余地が多々ありました。今回ここにテコ入れし、現状に寄り添った運用ができるように改善することを目論みました。 …
4ヶ月前
記事のアイキャッチ画像
AuroraMySQL 負荷試験報告 その1 〜結局のところスキーマ分離のDB設計ってどうなの?〜
MNTSQ Techブログ
はじめに スキーマ分離と行分離 目的と結論 目的 結論のサマリ 試験内容 試験環境とツール 負荷の設計 本番環境でのクエリ傾向の分析 QPSの測定 進め方 試験結果 スキーマ分離のボトルネック スキーマ数を固定して負荷をあげてみる 結果まとめ なんとか延命したい はじめに 弊社が採用しているDB設計は、テナントごとに独立したスキーマを持つ「スキーマ分離」 のデータ構造に基づいています。このアーキテクチャは、高いデータ分離性とセキュリティを確保できる一方で、「スキーマ数の増加に伴ってパフォーマンスが劣化する」という性質が指摘されます。 サービスのスケールにおいてこの「性能劣化」が、いつ、どのよう…
4ヶ月前
記事のアイキャッチ画像
デリバリーを担保するリードエンジニア
MNTSQ Techブログ
こんにちは。 「すべての合意をフェアにする」MNTSQの森山です。 この度、MNTSQでリードエンジニアを務めることになりました。 リードエンジニアは、チームの出力を最大化するためにあらゆる角度からデリバリーを支えます。責任を持つのは「コードの品質」だけではなく、「チームとして成果を出すこと」です。そのために必要な技術的・組織的な取り組みをリードしていきます。 エンジニアの役割は、会社やチームによって定義が少しずつ異なります。そこで今回は、MNTSQにおけるリードエンジニアとは何かを、自分自身の整理も兼ねて言語化してみました。 なぜリードエンジニアという役割が生まれたのか? これまで弊社には「…
4ヶ月前
記事のアイキャッチ画像
Kaigi on Rails 2025 参加記
MNTSQ Techブログ
バックエンドエンジニアの河久保です 2日間にわたる Kaigi on Rails 2025 お疲れ様でした 今回の会場が東京駅丸の内南口から徒歩1分で着く会場だったので、中央線(一番丸の内寄りにホームがある)ユーザーの私としてはものすごくアプローチが良くて最高でした 次回は渋谷(神泉寄り)とのことで、井の頭線使うかなぁーとか考えながら帰途に就いてました 今回の聴講スタイル 今回の Kaigi on Rails では聴講したすべてのセッションをスマートフォンで録音し、終わり次第 Notebook LM に音声データを渡すということを実践してみました 日英のセッション問わず文字起こし精度も良く、音…
5ヶ月前
記事のアイキャッチ画像
IAM Identity Center と Cognito とを組み合わせて SPA へのアクセス制御をおこなう
MNTSQ Techブログ
はじめに 弊社では Entra ID ユーザ / グループを使い AWS 利用時の認証や権限制御を IAM Identity Center を使い実現しています。Entra ID と IAM Identity Center を SCIM で連携させることで Entra ID 側の情報を用いて達成しており、このあたりは 拙稿 に詳細があります。 IAM Identity Center は自身が ID プロバイダ(以下 IdP と書きます)になることもでき、この場合 SAML / OAuth2 で外部アプリケーションとやりとりすることが可能です。このあたりも 拙稿 として存在します。 今回、社内の…
5ヶ月前
記事のアイキャッチ画像
IAM Identity Center を IdP として Redash に SSO ログインして操作ログを Athena で追う
MNTSQ Techブログ
はじめに 弊社では BI ツールとして Redash を EC2 上でセルフホストするかたちで利用しています。CS や Sales 等の部門で日々の指標を追うのに使われるだけでなく、開発や運用のためのアラーティングにも活用されています。 今回この Redash へ SSO ログインの仕組みを導入し、Redash 利用者の操作履歴を 部分的に 監査できるようにしました。SSO の IdP としては掲題通り IAM Identity Center を選定しています。これら対応について記録します。 なぜ IAM Identity Center を IdP に? 去る2025年5月下旬に以下記事を公開…
6ヶ月前
記事のアイキャッチ画像
PrivateLinkを使ってクロスアカウント & クロスVPCでセキュアなデータベースアクセスを実現する
MNTSQ Techブログ
SREチームの藤原です。 サービスを運用しているとデータ分析や他システムとのデータ連携などで、DBへの読み取り専用アクセスが必要になる場合は多々あると思います。 本エントリでは、AWS PrivateLinkを活用することで、セキュアなクロスアカウントかつ、クロスVPCなアクセスを実現できるのでその方法を解説します。 aws.amazon.com 構成のイメージ 本エントリでは、2つのアカウントの間でのクロスアカウント & クロスVPCアクセスを前提とします。 アカウントAがアクセスする側、アカウントBがアクセスされる側とします。 PrivateLink設定前のアカウントBは図1のような構成で…
6ヶ月前
記事のアイキャッチ画像
CloudFrontのVPC Originの利用と静的リソースの配信について(副題: ひょっとしたらさよならパブリックサブネット)
MNTSQ Techブログ
SREチームマネージャーの藤原です。 本エントリでは、現在構築中の新サービスにて利用する予定の CloudFrontおよびVPC Originの活用と、CloudFrontを経由した静的リソース配信について解説します。 シンプルな構成へのCloudFrontの導入 まずは非常にシンプルなアプリケーションを考えてみます(図1)。 単一のバックエンドのコンピューティングリソースに外部向けのAPIと内部向けのAPIがある場合、インターネットからアクセス可能な外部向けのロードバランサーと、内部からのみアクセス可能な内部向けのロードバランサーを分けて設定するパターンがあります。 図1. シンプルな構成の…
7ヶ月前
記事のアイキャッチ画像
あるSREの生成AI (Devin) 活用事例
MNTSQ Techブログ
はじめに こんにちは、MNTSQ株式会社でSREをやっている西室と申します。私生活ではゲーム以外でPCを使わないので、最新技術へのアンテナ感度はエンジニアとしては最低クラスです。未だにタッチタイピングができません。 さて、最近巷では「生成AIがすごい」だの「使えないと時代に取り残される」だの、何かと話題が尽きないですが、まだ業務にうまく活用できていないという方も多いのではないでしょうか? かくいう私も「なんか調べるのが億劫だな〜」と、ChatGPT以外には手を出していなかったのですが、半年ほど前に開発チームにDevinが導入されたので試しに使ってみたところ、これがなんともう世界が一変するくらい…
7ヶ月前
記事のアイキャッチ画像
Route 53 による DNS クエリログを全部 Athena で取り扱えるようにした
MNTSQ Techブログ
はじめに MNTSQ はそのサービスの性質(「契約」の集約、一元管理、活用)上、セキュリティの維持と向上が至上命題です。 セキュリティへの取り組みには幾つかのアプローチがありますが、何が不足しているのか、どういった対処が必要かという点を突き止めるには情報が必要です。これはどういったアプローチを取るにしても共通して重要な観点と思います。 本稿はこの情報の獲得のためのログ収集範囲の拡充を行った記録となります。対象は Route 53 の DNS クエリログです。 なぜ DNS クエリログを取るか DNS クエリログはその名前の通り DNS へのクエリのログです。つまり いつ 誰が 何を どこから(…
7ヶ月前
記事のアイキャッチ画像
GeminiのStructured outputでレスポンスの型を矯正するためのTips 7選
MNTSQ Techブログ
こんにちは、MNTSQ(モンテスキュー)でアルゴリズムエンジニアをしている清水です。 MNTSQは契約書を解析・管理・検索するプロダクトを提供しています。これらのプロダクトには大規模言語モデル(以下LLM)が搭載された機能が実装されています。また、LLMを活用した新プロダクトも鋭意開発中です。 LLMをアプリケーションに組み込む際の大きな課題の一つとして、「LLMの出力形式(型)を如何に矯正するか?」が挙げられます。単純なチャットアプリケーションであればそこまで問題にはなりませんが、LLMによる生成結果を後続のプログラムで処理する必要がある場合、事前に定義された型に従って出力を生成する必要があ…
8ヶ月前
記事のアイキャッチ画像
型だけでは足りなかったAPIクライアントの自動生成。
MNTSQ Techブログ
openapi-ts 導入 こんにちは、MNTSQ のソフトウェアエンジニアの森山です。今回は、REST API の OpenAPI 3.0 から API クライアントを自動生成するまでの過程を紹介します。 実はメインのプロダクトへ TypeScript を導入できたのはつい最近のことです。API クライアントを自動生成するまでの苦労や新たな発見が 1 つでも参考になれば嬉しく思います。 課題 API クライアントの自動生成に取り組む上で、現在の BE と FE には以下の課題がありました。 BE API フレームワーク移行期のため、OpenAPI 2.0 と 3.0 の 2 つの API 定…
8ヶ月前
記事のアイキャッチ画像
ECS on EC2 構成の ECS サービスで GuardDuty ECS Runtime Monitoring を有効化するには EC2 インスタンス側で GuardDuty エージェントを動かす必要がある
MNTSQ Techブログ
小ネタです。そして掲題が全てを語っています。 以下、ECS on EC2 構成の ECS サービスにおいて ECS タスクを動作させるプラットフォームとなる EC2 インスタンスを ECS コンテナインスタンス と呼称します。これは Launching an Amazon ECS Linux container instance へ微妙に倣っての呼び方になります。 3行で ECS on EC2 構成の ECS サービスで GuardDuty ECS Runtime Monitoring を有効化する場合、ECS サービスの更新は必要ない ECS コンテナインスタンスで GuardDuty エー…
8ヶ月前
記事のアイキャッチ画像
SaaSのためのAIエージェント開発: GeminiとMCP(Streamable HTTP)で作るシンプルなRAGアプリケーション
MNTSQ Techブログ
こんにちは、MNTSQでアルゴリズムエンジニアをやっている平田です。 MNTSQではAIで企業の契約業務を変革するプロダクトを開発しています。 mntsq.co.jp ところでみなさん、MCP(Model Context Protocol)使っていますか? 2024年11月にAnthropicがMCPを提唱してから半年しか経っていないのに、MCPを取り巻くAIエージェント開発のエコシステムは爆発的なスピードで成長を遂げています。 (実際、この記事を書いている最中にアップデートがあって、何度か書き直しています🫠) 先日MCPがStreamable HTTPをサポートしたため、MNTSQでも自社プ…
9ヶ月前
記事のアイキャッチ画像
ECSのオートスケールイベントをDatadog経由でSlackに通知してみる
MNTSQ Techブログ
はじめに 構成 実装してみる EventBridge EventBridge API destinationsの設定 オートスケールイベントを拾うためのEventルールを作成する Datadog Slack連携の設定 Event Monitorの設定 おわりに はじめに ECSのオートスケールは、一度設定してしまえば非常に便利ですが、人の手を離れて安定運用に乗せるまでには様々な技術的なハードルがあります。安定運用に入るまでは、現在の設定は妥当なのかを判断するため、オートスケールが発生したことを何らかの方法で人間が把握し、日々改善を重ねていくことが必要不可欠です。そこで今回は、ECSのオートスケ…
9ヶ月前
記事のアイキャッチ画像
Entra ID ユーザでの AWS への SSO ログインを IAM Identity Center で実現する
MNTSQ Techブログ
はじめに AWS Organizations にて複数の AWS アカウントを管理する場合において、各アカウントへどのようにアクセスするかは色々と検討の余地があると思います。 弊社では長らくこれを以下のような手法で運用していました。 踏み台的用途の AWS アカウントを1つ用意し、そこに作業者が使う IAM ユーザ及びスイッチ用 IAM ロールを用意 各 AWS アカウントにもスイッチ先 IAM ロールを用意 踏み台 AWS アカウント上の IAM ユーザから、作業対象 AWS アカウント上の IAM ロールへスイッチすることで、対象 AWS アカウントへアクセス 今回このあたりを全て IAM…
9ヶ月前
記事のアイキャッチ画像
DXは今日も無風 〜ある法務担当者の一日〜
MNTSQ Techブログ
note.mntsq.co.jp
10ヶ月前
記事のアイキャッチ画像
LLM時代の競争優位 - MicrosoftにもGoogleにも勝つには?
MNTSQ Techブログ
note.mntsq.co.jp
10ヶ月前
記事のアイキャッチ画像
世界を変えるプロダクトの条件 - ラスボスに勝つ -
MNTSQ Techブログ
note.mntsq.co.jp
10ヶ月前
記事のアイキャッチ画像
ElastiCache Redis ログを Datadog Logs(と S3)で取り扱う
MNTSQ Techブログ
はじめに Redis ログについて slow ログ engine ログ 設定方針 構成 Datadog Logs 向けに slow ログを修正する インフラ構成 Datadog Logs の風景 おわりに 参考 はじめに 弊社では Web アプリケーションや非同期処理用ジョブの一時データなどを取り扱う際に ElastiCache Redis をインメモリデータベースとして利用しています。 これまで ElastiCache Redis 自体の稼動状況の把握には CloudWatch メトリクスを中心とした数値ベースの情報のみを利用していましたが、今回ここにログ情報を加えることにしました。ログ取得…
10ヶ月前
記事のアイキャッチ画像
契約版Devinで「社会のバグ」を駆逐する
MNTSQ Techブログ
note.mntsq.co.jp
1年前
記事のアイキャッチ画像
財布を気にしたくないのでローカルLLM(Gemma3)にコードを書かせてみた
MNTSQ Techブログ
SREチームマネージャーの藤原です。 LM Studio + Gemma 3 + Cline + VSCodeの環境を自由研究的に試用したので、その報告エントリです。 モチベーション プライベートでコードを書く際も最近はClineなどを使ってLLMを使ってコーディングをすることが徐々に増えてきました。 VSCodeとClineを組み合わせて外部サービスをつかってコードの変更作業を実施する場合、 何かコードの変更を依頼するたびに、財布の中身から少しずつお金が溢(こぼ)れていく感覚があるでしょう。 1回1回の額は少額とはいえ、多数回繰り返すとなかなかの金額になってきます。 会社では予算の範囲内であ…
1年前
記事のアイキャッチ画像
MinIOからS3へのデータ移行方法について
MNTSQ Techブログ
はじめに MinIOについて データ移行の要件 データ移行手順 帯域制御の方法 おわりに はじめに MNTSQでSREチームに所属している中岡です。 昨今ではコンテナ技術を使用してアプリケーションを稼働させることが一般的になっています。 コンテナが稼働する環境であれば、理論上はAWSなどのクラウド上でも、オンプレでも、自分の端末でも同じように動作するはずです。 そのため、開発者が自身の端末内に開発環境を構築し、そこで開発を進めた上でAWS上の環境にデプロイするというケースも多いかと思います。 その際、アプリケーションで使用するデータ保持のため、RDBやオブジェクトストレージが必要になります。 …
1年前