MNTSQ Techブログ

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

PrivateLinkを使ってクロスアカウント & クロスVPCでセキュアなデータベースアクセスを実現する

SREチームの藤原です。 サービスを運用しているとデータ分析や他システムとのデータ連携などで、DBへの読み取り専用アクセスが必要になる場合は多々あると思います。 本エントリでは、AWS PrivateLinkを活用することで、セキュアなクロスアカウントかつ、ク…

CloudFrontのVPC Originの利用と静的リソースの配信について(副題: ひょっとしたらさよならパブリックサブネット)

SREチームマネージャーの藤原です。 本エントリでは、現在構築中の新サービスにて利用する予定の CloudFrontおよびVPC Originの活用と、CloudFrontを経由した静的リソース配信について解説します。 シンプルな構成へのCloudFrontの導入 まずは非常にシンプル…

あるSREの生成AI (Devin) 活用事例

はじめに こんにちは、MNTSQ株式会社でSREをやっている西室と申します。私生活ではゲーム以外でPCを使わないので、最新技術へのアンテナ感度はエンジニアとしては最低クラスです。未だにタッチタイピングができません。 さて、最近巷では「生成AIがすごい」…

Route 53 による DNS クエリログを全部 Athena で取り扱えるようにした

はじめに MNTSQ はそのサービスの性質(「契約」の集約、一元管理、活用)上、セキュリティの維持と向上が至上命題です。 セキュリティへの取り組みには幾つかのアプローチがありますが、何が不足しているのか、どういった対処が必要かという点を突き止める…

GeminiのStructured outputでレスポンスの型を矯正するためのTips 7選

こんにちは、MNTSQ(モンテスキュー)でアルゴリズムエンジニアをしている清水です。 MNTSQは契約書を解析・管理・検索するプロダクトを提供しています。これらのプロダクトには大規模言語モデル(以下LLM)が搭載された機能が実装されています。また、LLMを…

型だけでは足りなかったAPIクライアントの自動生成。

openapi-ts 導入 こんにちは、MNTSQ のソフトウェアエンジニアの森山です。今回は、REST API の OpenAPI 3.0 から API クライアントを自動生成するまでの過程を紹介します。 実はメインのプロダクトへ TypeScript を導入できたのはつい最近のことです。API …

ECS on EC2 構成の ECS サービスで GuardDuty ECS Runtime Monitoring を有効化するには EC2 インスタンス側で GuardDuty エージェントを動かす必要がある

小ネタです。そして掲題が全てを語っています。 以下、ECS on EC2 構成の ECS サービスにおいて ECS タスクを動作させるプラットフォームとなる EC2 インスタンスを ECS コンテナインスタンス と呼称します。これは Launching an Amazon ECS Linux container…

SaaSのためのAIエージェント開発: GeminiとMCP(Streamable HTTP)で作るシンプルなRAGアプリケーション

こんにちは、MNTSQでアルゴリズムエンジニアをやっている平田です。 MNTSQではAIで企業の契約業務を変革するプロダクトを開発しています。 mntsq.co.jp ところでみなさん、MCP(Model Context Protocol)使っていますか? 2024年11月にAnthropicがMCPを提唱…

ECSのオートスケールイベントをDatadog経由でSlackに通知してみる

はじめに 構成 実装してみる EventBridge EventBridge API destinationsの設定 オートスケールイベントを拾うためのEventルールを作成する Datadog Slack連携の設定 Event Monitorの設定 おわりに はじめに ECSのオートスケールは、一度設定してしまえば非常…

Entra ID ユーザでの AWS への SSO ログインを IAM Identity Center で実現する

はじめに AWS Organizations にて複数の AWS アカウントを管理する場合において、各アカウントへどのようにアクセスするかは色々と検討の余地があると思います。 弊社では長らくこれを以下のような手法で運用していました。 踏み台的用途の AWS アカウントを…

DXは今日も無風 〜ある法務担当者の一日〜

note.mntsq.co.jp

LLM時代の競争優位 - MicrosoftにもGoogleにも勝つには?

note.mntsq.co.jp

世界を変えるプロダクトの条件 - ラスボスに勝つ -

note.mntsq.co.jp

ElastiCache Redis ログを Datadog Logs(と S3)で取り扱う

はじめに Redis ログについて slow ログ engine ログ 設定方針 構成 Datadog Logs 向けに slow ログを修正する インフラ構成 Datadog Logs の風景 おわりに 参考 はじめに 弊社では Web アプリケーションや非同期処理用ジョブの一時データなどを取り扱う際に…

契約版Devinで「社会のバグ」を駆逐する

note.mntsq.co.jp

財布を気にしたくないのでローカルLLM(Gemma3)にコードを書かせてみた

SREチームマネージャーの藤原です。 LM Studio + Gemma 3 + Cline + VSCodeの環境を自由研究的に試用したので、その報告エントリです。 モチベーション プライベートでコードを書く際も最近はClineなどを使ってLLMを使ってコーディングをすることが徐々に増…

MinIOからS3へのデータ移行方法について

はじめに MinIOについて データ移行の要件 データ移行手順 帯域制御の方法 おわりに はじめに MNTSQでSREチームに所属している中岡です。 昨今ではコンテナ技術を使用してアプリケーションを稼働させることが一般的になっています。 コンテナが稼働する環境…

GitHub ActionsでECSの夜間停止の仕組みを作ってみた

はじめに 要件の整理 構成 実装例 Stop Env (GitHub Actions) Control ECS (GitHub Actions) Update ECS Clusters (Lambda) おわりに はじめに 弊社MNTSQではAWS上にMNTSQ CLMをはじめとする複数のサービスを展開していますが、サービス運用が軌道に乗るにつ…

SREチーム内勉強会で入門 継続的デリバリーの読書会を完走しました

こんにちは!! SREチームマネージャーの藤原です。 2024年6月末から2025年2月頭にかけて、入門 継続的デリバリーの読書会を実施し、完走したのでその報告エントリです。 www.oreilly.co.jp 勉強会の進め方 基本的な進め方としては、過去エントリにて解説し…

AWS DMSを使ってMySQLの移行をする際に気をつけたいこと7選!

はじめに DMSを使ってMySQLの移行をする際に気をつけたいこと7選! その1. DMSのログを出力するには決まった名前のIAMロールが必要である その2. CDCを有効にするにはソースDBでバイナリログを出す必要がある その3. GENERATEDカラムは移行対象から除外せよ …

DynamoDBへの書き込みをLambdaを使わずにSlack通知したかった

......のですが、かなり苦戦しました。この記事に辿り着いた人はすでにハマっている、もしくはこれからハマる運命(さだめ)にある人も多いと思うので、そのような人の助けになればと思い、記事にして残しておきます。 結論からお伝えすると、Lambdaを使わず…

Autifyを用いたテスト自動化

こんにちは。MNTSQ(モンテスキュー)株式会社でQAエンジニアをしている坂本です。 今回はソフトウェアテスト Advent Calendar 2024の場をお借りして、 弊社の自動テスト構築過程をご紹介します。 QAメンバー4名だけでなく、PdMやSREにもご協力頂きながら進…

Kaigi on Rails 2024 参加記

こんにちは、MNTSQ でバックエンドエンジニアをやっております河久保です。 先日 Kaigi on Rails 2024 に参加してきたので、参加記をしたためます。 Kaigi on Rails は昨年に続き2回目の参加となります。 MNTSQ もアプリケーションのバックエンドは Ruby on …

「Datadog Summit Tokyo 2024」参加レポート

みなさんこんにちは、SREチームメンバーの中岡です。 2024年10月16日に開催された「Datadog Summit Tokyo」に参加しましたので、そのレポートをお届けしたいと思います。 DatadogはSaaSで提供されている、クラウドアプリケーションのためのモニタリングとセ…

【AWS】IAMインラインポリシーのサイズ制限でハマった話

備忘録として残しておきます。 こんな感じで、IAMユーザーにStatement AとStatement Bを付与するインラインポリシーがあり、このインラインポリシーにStatement Cを追加しようとしました。 ところが、コードを変更してterraform applyをかけたところ、「Limi…

生成AIの出力JSONをunpretty-printしてトークン節約する

こんにちは、MNTSQでエンジニアをやっている平田です。 ありがたいことに生成AI関連のイベントでLTする機会を何度かいただいており、その発表資料の小ネタについて嬉しいコメントをいただきましたので、記事にすることにしました。 トークン節約の方法考えて…

S3のs3:ListBucketのプレフィックス指定で少し時間を溶かした話

こんにちは! SREチームマネージャーの藤原です。 今回はライトな話題として、s3:ListBucketのプレフィックス指定で時間を無駄にしたお話をしたいと思います。 よくあるs3リソースへのアクセス用ポリシー 特定のS3バケット内オブジェクトへの書き込み、読み…

「生成AI Conf 第7回勉強会」の登壇レポート

こんにちは、MNTSQでエンジニアをやっている平田です。 先日、「生成AI時代のリーガルテック」という題目でお話させていただきました。 generative-ai-conf.connpass.com 合計240名の方にご参加いただいたとのことで、ご視聴いただいた方々、ありがとうござ…

ChatGPTとPydanticでかんたん契約書解析

こんにちは、MNTSQでエンジニアをやっている平田です。 MNTSQでは自然言語処理を使って契約書を解析したり検索したりする機能を開発しています。 契約書解析には、次のようなタスクがあります。 秘密保持契約等の契約類型に分類 契約締結日や契約当事者等の…

RubyKaigiに初めて参加する方へ届けたい、2回目参加者が送る Tips と心構え

こんにちは。 すべての合意をフェアにしたいMNTSQ(もんてすきゅー)のJessie (@Jessica_nao_) です。 仕事では、Ruby on Rails を"利用"させていただき、法務業務に利用されるSaaS Webアプリの開発を行っています。 RubyKaigi2024が間も無く開催されますね…