MNTSQ Techブログ

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

リーガルテック・カンパニー「MNTSQ(モンテスキュー)」のTechブログです。

フィード

記事のアイキャッチ画像
CloudFrontのVPC Originの利用と静的リソースの配信について(副題: ひょっとしたらさよならパブリックサブネット)
MNTSQ Techブログ
SREチームマネージャーの藤原です。 本エントリでは、現在構築中の新サービスにて利用する予定の CloudFrontおよびVPC Originの活用と、CloudFrontを経由した静的リソース配信について解説します。 シンプルな構成へのCloudFrontの導入 まずは非常にシンプルなアプリケーションを考えてみます(図1)。 単一のバックエンドのコンピューティングリソースに外部向けのAPIと内部向けのAPIがある場合、インターネットからアクセス可能な外部向けのロードバランサーと、内部からのみアクセス可能な内部向けのロードバランサーを分けて設定するパターンがあります。 図1. シンプルな構成の…
11日前
記事のアイキャッチ画像
あるSREの生成AI (Devin) 活用事例
MNTSQ Techブログ
はじめに こんにちは、MNTSQ株式会社でSREをやっている西室と申します。私生活ではゲーム以外でPCを使わないので、最新技術へのアンテナ感度はエンジニアとしては最低クラスです。未だにタッチタイピングができません。 さて、最近巷では「生成AIがすごい」だの「使えないと時代に取り残される」だの、何かと話題が尽きないですが、まだ業務にうまく活用できていないという方も多いのではないでしょうか? かくいう私も「なんか調べるのが億劫だな〜」と、ChatGPT以外には手を出していなかったのですが、半年ほど前に開発チームにDevinが導入されたので試しに使ってみたところ、これがなんともう世界が一変するくらい…
13日前
記事のアイキャッチ画像
Route 53 による DNS クエリログを全部 Athena で取り扱えるようにした
MNTSQ Techブログ
はじめに MNTSQ はそのサービスの性質(「契約」の集約、一元管理、活用)上、セキュリティの維持と向上が至上命題です。 セキュリティへの取り組みには幾つかのアプローチがありますが、何が不足しているのか、どういった対処が必要かという点を突き止めるには情報が必要です。これはどういったアプローチを取るにしても共通して重要な観点と思います。 本稿はこの情報の獲得のためのログ収集範囲の拡充を行った記録となります。対象は Route 53 の DNS クエリログです。 なぜ DNS クエリログを取るか DNS クエリログはその名前の通り DNS へのクエリのログです。つまり いつ 誰が 何を どこから(…
1ヶ月前
記事のアイキャッチ画像
GeminiのStructured outputでレスポンスの型を矯正するためのTips 7選
MNTSQ Techブログ
こんにちは、MNTSQ(モンテスキュー)でアルゴリズムエンジニアをしている清水です。 MNTSQは契約書を解析・管理・検索するプロダクトを提供しています。これらのプロダクトには大規模言語モデル(以下LLM)が搭載された機能が実装されています。また、LLMを活用した新プロダクトも鋭意開発中です。 LLMをアプリケーションに組み込む際の大きな課題の一つとして、「LLMの出力形式(型)を如何に矯正するか?」が挙げられます。単純なチャットアプリケーションであればそこまで問題にはなりませんが、LLMによる生成結果を後続のプログラムで処理する必要がある場合、事前に定義された型に従って出力を生成する必要があ…
1ヶ月前
記事のアイキャッチ画像
型だけでは足りなかった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 定…
2ヶ月前
記事のアイキャッチ画像
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 エー…
2ヶ月前
記事のアイキャッチ画像
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でも自社プ…
2ヶ月前
記事のアイキャッチ画像
ECSのオートスケールイベントをDatadog経由でSlackに通知してみる
MNTSQ Techブログ
はじめに 構成 実装してみる EventBridge EventBridge API destinationsの設定 オートスケールイベントを拾うためのEventルールを作成する Datadog Slack連携の設定 Event Monitorの設定 おわりに はじめに ECSのオートスケールは、一度設定してしまえば非常に便利ですが、人の手を離れて安定運用に乗せるまでには様々な技術的なハードルがあります。安定運用に入るまでは、現在の設定は妥当なのかを判断するため、オートスケールが発生したことを何らかの方法で人間が把握し、日々改善を重ねていくことが必要不可欠です。そこで今回は、ECSのオートスケ…
2ヶ月前
記事のアイキャッチ画像
Entra ID ユーザでの AWS への SSO ログインを IAM Identity Center で実現する
MNTSQ Techブログ
はじめに AWS Organizations にて複数の AWS アカウントを管理する場合において、各アカウントへどのようにアクセスするかは色々と検討の余地があると思います。 弊社では長らくこれを以下のような手法で運用していました。 踏み台的用途の AWS アカウントを1つ用意し、そこに作業者が使う IAM ユーザ及びスイッチ用 IAM ロールを用意 各 AWS アカウントにもスイッチ先 IAM ロールを用意 踏み台 AWS アカウント上の IAM ユーザから、作業対象 AWS アカウント上の IAM ロールへスイッチすることで、対象 AWS アカウントへアクセス 今回このあたりを全て IAM…
3ヶ月前
記事のアイキャッチ画像
DXは今日も無風 〜ある法務担当者の一日〜
MNTSQ Techブログ
note.mntsq.co.jp
4ヶ月前
記事のアイキャッチ画像
ElastiCache Redis ログを Datadog Logs(と S3)で取り扱う
MNTSQ Techブログ
はじめに Redis ログについて slow ログ engine ログ 設定方針 構成 Datadog Logs 向けに slow ログを修正する インフラ構成 Datadog Logs の風景 おわりに 参考 はじめに 弊社では Web アプリケーションや非同期処理用ジョブの一時データなどを取り扱う際に ElastiCache Redis をインメモリデータベースとして利用しています。 これまで ElastiCache Redis 自体の稼動状況の把握には CloudWatch メトリクスを中心とした数値ベースの情報のみを利用していましたが、今回ここにログ情報を加えることにしました。ログ取得…
4ヶ月前
記事のアイキャッチ画像
契約版Devinで「社会のバグ」を駆逐する
MNTSQ Techブログ
note.mntsq.co.jp
4ヶ月前
記事のアイキャッチ画像
財布を気にしたくないのでローカルLLM(Gemma3)にコードを書かせてみた
MNTSQ Techブログ
SREチームマネージャーの藤原です。 LM Studio + Gemma 3 + Cline + VSCodeの環境を自由研究的に試用したので、その報告エントリです。 モチベーション プライベートでコードを書く際も最近はClineなどを使ってLLMを使ってコーディングをすることが徐々に増えてきました。 VSCodeとClineを組み合わせて外部サービスをつかってコードの変更作業を実施する場合、 何かコードの変更を依頼するたびに、財布の中身から少しずつお金が溢(こぼ)れていく感覚があるでしょう。 1回1回の額は少額とはいえ、多数回繰り返すとなかなかの金額になってきます。 会社では予算の範囲内であ…
5ヶ月前
記事のアイキャッチ画像
MinIOからS3へのデータ移行方法について
MNTSQ Techブログ
はじめに MinIOについて データ移行の要件 データ移行手順 帯域制御の方法 おわりに はじめに MNTSQでSREチームに所属している中岡です。 昨今ではコンテナ技術を使用してアプリケーションを稼働させることが一般的になっています。 コンテナが稼働する環境であれば、理論上はAWSなどのクラウド上でも、オンプレでも、自分の端末でも同じように動作するはずです。 そのため、開発者が自身の端末内に開発環境を構築し、そこで開発を進めた上でAWS上の環境にデプロイするというケースも多いかと思います。 その際、アプリケーションで使用するデータ保持のため、RDBやオブジェクトストレージが必要になります。 …
5ヶ月前
記事のアイキャッチ画像
GitHub ActionsでECSの夜間停止の仕組みを作ってみた
MNTSQ Techブログ
はじめに 要件の整理 構成 実装例 Stop Env (GitHub Actions) Control ECS (GitHub Actions) Update ECS Clusters (Lambda) おわりに はじめに 弊社MNTSQではAWS上にMNTSQ CLMをはじめとする複数のサービスを展開していますが、サービス運用が軌道に乗るにつれて、社内利用の環境(AWSアカウント)が開発環境、QA環境、ステージング環境と用途によって増えていき、コストの増加が無視できない問題となってきました。そこで、GitHub Actionsを使用して、ECSサービスを夜間停止する仕組みを導入することにより…
5ヶ月前
記事のアイキャッチ画像
SREチーム内勉強会で入門 継続的デリバリーの読書会を完走しました
MNTSQ Techブログ
こんにちは!! SREチームマネージャーの藤原です。 2024年6月末から2025年2月頭にかけて、入門 継続的デリバリーの読書会を実施し、完走したのでその報告エントリです。 www.oreilly.co.jp 勉強会の進め方 基本的な進め方としては、過去エントリにて解説した通りの進め方に則る形としました。 tech.mntsq.co.jp つまり、 事前に対象とする章を定める 参加者は対象の章を読む 参加者は気になった部分などを引用しながら所感をなどをGoogle Docsに記載する 当日はそれぞれ読んだ内容についてDocs記載内容について説明しながらディスカッションする の形で進めました。…
6ヶ月前
記事のアイキャッチ画像
AWS DMSを使ってMySQLの移行をする際に気をつけたいこと7選!
MNTSQ Techブログ
はじめに DMSを使ってMySQLの移行をする際に気をつけたいこと7選! その1. DMSのログを出力するには決まった名前のIAMロールが必要である その2. CDCを有効にするにはソースDBでバイナリログを出す必要がある その3. GENERATEDカラムは移行対象から除外せよ その4. LOB型のカラムがある場合はターゲットDBでNOT NULL制約を一時解除せよ その5. 完全LOBモードの設定が必要か確認せよ その6. AUTO_INCREMENTは手動で移行する必要がある その7. 移行後の検証の設計は慎重に おわりに はじめに データベース移行というのは非常にセンシティブな作業であ…
7ヶ月前
記事のアイキャッチ画像
DynamoDBへの書き込みをLambdaを使わずにSlack通知したかった
MNTSQ Techブログ
......のですが、かなり苦戦しました。この記事に辿り着いた人はすでにハマっている、もしくはこれからハマる運命(さだめ)にある人も多いと思うので、そのような人の助けになればと思い、記事にして残しておきます。 結論からお伝えすると、Lambdaを使わずに通知を行うことは可能ですが、設定は少し複雑かなという印象でした。 しかし、一度設定出来てしまえば、同じようなことをしたい時の実装コストをグッと抑えられる、とても良い仕組みだと思います。 構成について この構成のメリット この構成のデメリット AWS Chatbotの認証を行う terraformでデプロイしてみる SNS -> Chatbot …
8ヶ月前
記事のアイキャッチ画像
Autifyを用いたテスト自動化
MNTSQ Techブログ
こんにちは。MNTSQ(モンテスキュー)株式会社でQAエンジニアをしている坂本です。 今回はソフトウェアテスト Advent Calendar 2024の場をお借りして、 弊社の自動テスト構築過程をご紹介します。 QAメンバー4名だけでなく、PdMやSREにもご協力頂きながら進めており、 2025年1月からの稼働に向けた準備が大詰めの段階です。 品質と開発スピードの両立を目指したコラボレーションの様子が少しでも伝わればうれしいです。 テスト自動化の目的 MNTSQ社ではアジャイル開発を行っており、製品のリリースサイクルごとに新規開発機能のテストと、既存機能全体のリグレッションテストを実施してい…
8ヶ月前
記事のアイキャッチ画像
Kaigi on Rails 2024 参加記
MNTSQ Techブログ
こんにちは、MNTSQ でバックエンドエンジニアをやっております河久保です。 先日 Kaigi on Rails 2024 に参加してきたので、参加記をしたためます。 Kaigi on Rails は昨年に続き2回目の参加となります。 MNTSQ もアプリケーションのバックエンドは Ruby on Rails で実装されており、昨年に続き今年もスポンサーとして手を挙げさせていただきました。 個人としてプロポーザルを出したことや、担当しているシステムのより深いところまで触れる機会が増えたことで、昨年より主体的にカンファレンスに関われたと実感しています。 スポンサーボード 今回は以下の講演を聴講し…
10ヶ月前
記事のアイキャッチ画像
「Datadog Summit Tokyo 2024」参加レポート
MNTSQ Techブログ
みなさんこんにちは、SREチームメンバーの中岡です。 2024年10月16日に開催された「Datadog Summit Tokyo」に参加しましたので、そのレポートをお届けしたいと思います。 DatadogはSaaSで提供されている、クラウドアプリケーションのためのモニタリングとセキュリティプラットフォームです。 弊社サービスの監視にもDatadogを使用しており、SREチームで取り組んでいるモニタリング改善の参考になればと思い、参加しました。 イベントの内容 Datadog Summit Tokyo Datadog Summitが東京で開催されるのは2019年以来、5年ぶりの開催とのこと。 …
10ヶ月前
記事のアイキャッチ画像
【AWS】IAMインラインポリシーのサイズ制限でハマった話
MNTSQ Techブログ
備忘録として残しておきます。 こんな感じで、IAMユーザーにStatement AとStatement Bを付与するインラインポリシーがあり、このインラインポリシーにStatement Cを追加しようとしました。 ところが、コードを変更してterraform applyをかけたところ、「LimitExceeded: Maximum policy size of 2048 bytes exceeded」と怒られてしまいました。 │ Error: putting IAM User (****) Policy (****): operation error IAM: PutUserPolicy, h…
1年前
記事のアイキャッチ画像
生成AIの出力JSONをunpretty-printしてトークン節約する
MNTSQ Techブログ
こんにちは、MNTSQでエンジニアをやっている平田です。 ありがたいことに生成AI関連のイベントでLTする機会を何度かいただいており、その発表資料の小ネタについて嬉しいコメントをいただきましたので、記事にすることにしました。 トークン節約の方法考えてたら、ぴったりのもの見つけた。JSON を unpretty-print して、改行と空白を消す方法めちゃめちゃよい。https://t.co/hGCW8AT9eL— Yuto (@YutoY3629) September 4, 2024 はじめに プロダクトで生成AIを活用する際、トークン数(特に出力)の節約は重要です。 その理由は主に次のような…
1年前
記事のアイキャッチ画像
S3のs3:ListBucketのプレフィックス指定で少し時間を溶かした話
MNTSQ Techブログ
こんにちは! SREチームマネージャーの藤原です。 今回はライトな話題として、s3:ListBucketのプレフィックス指定で時間を無駄にしたお話をしたいと思います。 よくあるs3リソースへのアクセス用ポリシー 特定のS3バケット内オブジェクトへの書き込み、読み込み、一覧表示としたい場合以下のようなIAMポリシーを作成することがよくあるでしょう。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ],…
1年前
記事のアイキャッチ画像
「生成AI Conf 第7回勉強会」の登壇レポート
MNTSQ Techブログ
こんにちは、MNTSQでエンジニアをやっている平田です。 先日、「生成AI時代のリーガルテック」という題目でお話させていただきました。 generative-ai-conf.connpass.com 合計240名の方にご参加いただいたとのことで、ご視聴いただいた方々、ありがとうございました。 本稿で簡単に内容を紹介させていただきます。 発表資料 speakerdeck.com パネルディスカッション テーマ1: リーガルを扱う上で難しいこと/それに対して工夫していること リーガルテック業界全体でいえば弁護士法72条との関係を取り上げられることが多いですが、MNTSQはサービスの性質上、弁護士法…
1年前
記事のアイキャッチ画像
ChatGPTとPydanticでかんたん契約書解析
MNTSQ Techブログ
こんにちは、MNTSQでエンジニアをやっている平田です。 MNTSQでは自然言語処理を使って契約書を解析したり検索したりする機能を開発しています。 契約書解析には、次のようなタスクがあります。 秘密保持契約等の契約類型に分類 契約締結日や契約当事者等の基本情報を抽出 条項(第1条, 第2条, ...)単位で分解 本稿では、これらの契約書解析タスクをGPT-4oに解かせてどんな結果になるか見てみます。 ざっくりやり方 GPT-4oのAPIを呼び出すところ ここではAzure OpenAIのGPT-4oを使います。Microsoftのサンプルコードほぼそのままですが、一応貼り付けておきます。 fr…
1年前
記事のアイキャッチ画像
RubyKaigiに初めて参加する方へ届けたい、2回目参加者が送る Tips と心構え
MNTSQ Techブログ
こんにちは。 すべての合意をフェアにしたいMNTSQ(もんてすきゅー)のJessie (@Jessica_nao_) です。 仕事では、Ruby on Rails を"利用"させていただき、法務業務に利用されるSaaS Webアプリの開発を行っています。 RubyKaigi2024が間も無く開催されますね! 土日から沖縄入りされている方の投稿がTwitterに流れてきており、既に私の気持ちもかなり高まってきています✈️ この記事では、「今回RubyKaigi に初めて参加するぞ!」という方に向けて、2023年に初めてRubyKaigiに参加した私が、知っておくと嬉しいと思うTipsやRubyK…
1年前
記事のアイキャッチ画像
チーム内勉強会の進め方事例
MNTSQ Techブログ
おはようございます!こんにちは!場合によってはこんばんわ! SREチームマネージャーの藤原です。 今年の3月からSREチームの中で、勉強会を定期的に実施するようになりました。 本エントリでは勉強会を開催するにあたって考えたことと、実際の進め方についての事例解説です。 勉強会を通じて実現したいことの説明から、テーマ設定、効果最大化のための開催形態と頻度、現時点(2024/4・5時点)の結果について解説しています。 勉強会を通じて実現したいこと チーム内勉強会を通じて実現したいこととして、以下を設定していました。 チーム・個人としてのレベルアップ 積極的な議論への参加 相互理解 チームとしての目線…
1年前