レバテック開発部のフィード
https://zenn.dev/p/levtech
レバテック開発部の公式テックブログです!
フィード

ステータスを巻き戻す機能に気をつけろ!
レバテック開発部のフィード
これはなにこんにちは、レバテック開発部のもりたです。今回はもりたのやらかしたイマイチな機能開発について説明しようと思います。わりとやっちゃいそうで普遍的な要素を含む失敗だったので、ぜひみなさんが実際に触っているシステムと比較しながら読んでいただけると幸いです。今回の構成 構成こんな構成でいきます。シンプルにね〜。 ステータスを巻き戻す機能には気をつけろ! どんな機能追加をしたか?はじめに、問題となった機能開発がどのようなものだったのかについて説明しようと思います。本機能開発は、既存機能に対する機能修正でした。 既存機能 - LINE公式アカウントの登...
12時間前

障害対応のリーダーをやる時に気をつけていること
2

レバテック開発部のフィード
これはなにこんにちは、障害対応が大好きなもりたです(自己紹介)[1]。今回は障害対応をするのが大好きなわたし[2]が、障害対応のリーダー(インシデントコマンダー。以降IC)をやる上で気をつけている点を整理します。障害対応の進め方ってなんか直感みたいになりがちな上、予期して起こせないので学ぶのも難しいですよね。そこで、こうやったらいい感じですよというのをまとめてみました。構成 構成構成は以下です。概論基礎コミュニケーション対外的なもの対応チーム内でのもの調査の進め方はじめに障害対応における論点を整理し、その後基礎的な大切な点、特に大切な2点を紹介す...
3日前

Windowsユーザーの自分がMacを使いやすくするためにやったこと
レバテック開発部のフィード
概要MacをWindowsに近い操作感へ寄せるための設定とツールを紹介します。ほかの記事と一部重複するところもあると思いますがご了承ください。 背景レバテック開発部に転職し、開発PCとしてMacを標準利用することになりました。私は前職・私用ともに長年Windowsを利用していたため、操作の違いに戸惑いました。ここではWindowsライクな操作感に近づけるために行った最小限のセットアップをまとめます。 対象読者MacをWindowsに近い操作感で使いたい人 筆者の環境PCMacBook Pro(macOS Sequoia 15.5)※2025年9月時点...
3日前

【失敗談】KMSキーで「最小権限」に絞ろうと試みるも無惨に諦めた話
レバテック開発部のフィード
レバテック開発部の松浪です。先日、EBSボリュームに使用する暗号化キーについて、AWSマネージドキーからカスタマーマネージドキー(KMSキー)への移行を試みました。目的は権限を絞るためです。AWSマネージドキーは "Principal": {"AWS": "*"} という汎用性が高い反面、AWSアカウント内の誰からでも利用可能な広い権限設定になっています。KMSキーへ移行する過程で色々なエラーに遭遇しました。そして、移行を断念しました。 終 ...で、終わったらブログにならないので、この記事では私が遭遇した3つのエラーと移行を断念した理由を解説します。 はじめ...
10日前

ECS×FireLens(Fluent Bit v1.8.3)でSIGSEGV──回避のためのpreflightログ戦略
レバテック開発部のフィード
TL;DRDatadogとlog-router(FireLens/FluentBit)でログ送信するバックエンドサービスのデプロイ時、初回のログ送信でlog-routerが稀にクラッシュする事象があったデプロイ時のコンテナ起動を工夫し、preflightでログ送信が安全にできるかを確認し、そのSUCCESSを待ってからバックエンドサービスを起動する運用にした環境:ECSFargate、DatadogAgent7.31.0、aws-for-fluent-bit2.19.0(FluentBitv1.8系)備考:“preflight”はCORS文脈で利用される言葉だが、ここで...
23日前

macOS向けにCouchDBの初期設定手順を説明するよ
レバテック開発部のフィード
これはなにこんにちは、レバテック開発部のもりたです。今回はMacOS向けにHomebrewを使ったCouchDBのインストール/初期設定手順について簡単にまとめます。簡単なんですけど、公式ドキュメントだと分かりにくい箇所があったり、インターネットに日本語記事がないのでね、まとめますね。構成と前提 構成CouchDBとはインストール手順 前提macOS Version: Sequoia 15.xでテスト済みHomebrewがインストール済み管理者権限でのコマンド実行が可能 CouchDBとは基本的な特徴IDのみ持っておりスキーマレス。好きな...
1ヶ月前

WEBサーバの一部として Mountpoint for Amazon S3 を使えないか検討したが、Amazon EFS に落ち着いた。
レバテック開発部のフィード
導入「クラウド上のファイルを複数サーバーから扱いたい」という要件は頻繁に発生します。AWSでは長年Amazon EFSがその筆頭でしたが、fstabによる自動マウントのサポートを開始した「Mountpoint for Amazon S3」という選択肢も登場しました。この記事では、NewRelic移行時が発端となったステートフル問題の解消と共に「Mountpoint for Amazon S3」と「Amazon EFS」の違いを明らかにし、パフォーマンス、ユースケース、コストの観点から比較します。この記事を読んでいただいた方々のストレージ戦略のお助けになれれば幸いです。https...
2ヶ月前

本当は怖くない?CVSSスコアに惑わされない脆弱性との付き合い方
レバテック開発部のフィード
レバテック開発部の松浪です。先日、 multipart/form-data形式のHTTPリクエストを生成できるnpmパッケージ form-data にCVSSスコア9.4(Critical)の脆弱性が見つかりました。CVE-2025-7783CVSSスコア9.4(Critical)とあれば、非常に危険!即時対応!と考える方もいるかもしれません。本当にそうでしょうか?脆弱性対応において重要なのは、スコアの高さだけでなく、その脆弱性が、自分たちのプロダクトで実際に悪用される可能性があるのか? 、悪用された場合にどのような影響があるのか? を判断することです。たとえスコアが高くても、...
2ヶ月前

EventBridge と API Destination で実現する ECS タスク失敗イベントの New Relic 連携
レバテック開発部のフィード
はじめにコンテナ化されたアプリケーションを Amazon Elastic Container Service (Amazon ECS) にて運用する際、ECS タスクの異常終了を迅速に検知することは安定運用の鍵となります。本記事では、Amazon EventBridge と API Destination を活用して ECS タスクの失敗イベントを New Relic に送信する Terraform モジュールを紹介します。このモジュールの最大の特徴は、AWS Lambda を使用せずに実装している点です。 これにより、ランタイムの更新やコード保守といった運用負荷を最小限に抑える...
2ヶ月前

PHPで関数型プログラミング!Result型を使ってクリーンで予測可能なコードへ
レバテック開発部のフィード
こんにちは🐈!みなさん、いろんなところで「関数型はいいぞ」「関数型にせねば」という声をよく耳にしませんか?今回は関数型プログラミングの簡単な解説と、PHPにおける関数型プログラミングへのアプローチについて書いてみました。参考にさせていただいたのは、「なっとく!関数型プログラミング」という書籍です。 関数型プログラミングと純粋関数まずは関数型プログラミングとはなんぞや、について解説します。書籍によると、関数型プログラミングは以下を満たす関数を使ったプログラミングのことです。シグネチャ(関数名、引数の型や数、戻り値の型)が嘘をつかない本体が極力宣言的であるシグネチ...
3ヶ月前

Hono でリモート MCP サーバーを構築して Mastra エージェントから呼び出す on Docker
レバテック開発部のフィード
レバテック開発部の瀬尾です✌Zenn にダークモードが来て喜んでいます。今回は掲題のものを実装してみたら結構簡単だったので、その備忘録を残します。 やったことDB にあるデータを取得して返す MCP サーバーを実装するその MCP サーバーを Hono を使って Streamable HTTP Transport で利用可能にするMastra で作ったエージェントで、その リモート MCP サーバーを使ってデータ取得する 技術スタックMCP ServerBun, TypeScriptHono v4.8AgentBun, TypeScript...
3ヶ月前

DB Tech Showcase 2025(1日目)に参加してきたよ
レバテック開発部のフィード
これはなにこんにちは、レバテック開発部のもりたです。今日は7/10, 11に開催のDB Tech Showcaseに参加してきたので、その参加レポートです。https://www.db-tech-showcase.com/2025/?utm_campaign=db tech showcase&utm_source=note&utm_medium=note DB Tech Showcaseとは?DBTechShowcaseとは、インサイトテクノロジー社が主催する国内最大級のデータ技術系カンファレンスです。毎年夏場に開催されており、今回は7/10(木), 7/...
3ヶ月前

Terraformのmoduleを使ってソースコードの重複をなくすぞ〜
レバテック開発部のフィード
おつかれさまです。水谷です。最近Terraformのソースコードを触る機会が増えて、moduleを覚えたのでその備忘録です。 TL;DR以前はこんな感じで内容がほとんど同じtfファイルを環境ごとに用意していたが、module化することで同一ソースコードを参照できるようになった!moved を使って管理するリソースを引き継ぐことでterraform差分を作らずに移行できた!before(repository root)└── src ├── dev │ ├── ecs.tf │ ├── main.tf │ └── sqs....
3ヶ月前

レイヤードアーキテクチャでは入力検証をどのレイヤーで行うべきか考えてみた
レバテック開発部のフィード
はじめに昨今はクリーンアーキテクチャやオニオンアーキテクチャといった、レイヤードアーキテクチャを採用するプロジェクトが増えています。その中で、「ユーザーからの入力に対する検証をどのレイヤーで行うべきか?」という議論は、設計方針を左右する問題です。今回はこの問題について考えてみました。 この記事の要約「ドメイン層」に入力検証を実装するのは避けた方がいい。「コントローラ層」または「ユースケース層」に実装するのがいい。どちらを選ぶかは、拡張性と開発効率のトレードオフである。 入力検証とは?システムにおける「検証」には、主に以下の三種類があります:入力検証(Inp...
3ヶ月前

レバテック開発部に転職しました
レバテック開発部のフィード
はじめに2025年5月より、レバテック開発部にエンジニアとして入社しました。本記事では、入社して約2ヶ月が経過した現時点で感じているレバテック開発部の魅力や特徴そして現在の業務内容についてお話しします。転職を検討されているエンジニアの方にとって、一つの参考情報となれば幸いです。 自己紹介と転職の経緯 これまでの経歴と転職理由前職では、主にTypeScriptやJavaを用いてバックエンド開発に従事していました。一人で担当する領域が広く、裁量を持って開発を進められた一方で、よりチームでの一体感を持ちながらプロダクト開発に取り組みたいという思いが強くなり、転職を決意し...
3ヶ月前

新規システムのプロジェクトが一段落したので内容と反省点を書いてみる
レバテック開発部のフィード
TL;DR新規プロジェクトに業務委託として参加して、開発・リリース・追加開発をしたので反省点などを書いていく。 開発するシステムの目的バックオフィスの作業負荷軽減のため社内システムを構築して作業が円滑に進むようにしたい。すでに作業負荷がパンクに近くなっており、このまま行くと完全にパンクが見えているため、2025年3月末リリースを死守して開発してほしいとのこと。背景について同僚が詳しく書いた記事があるので、興味があれば下記を参照して下さい。https://zenn.dev/levtech/articles/5fb5373fccec47 開発期間など2024年12月...
3ヶ月前

レバテック開発部にもDevinを導入しました!活用事例と組織で管理するつらみ
レバテック開発部のフィード
はじめにこんにちは、レバテック開発部の塚原です。昨今、さまざまな企業で各種 AI エージェントの活用が進んでいますが、レバテック開発部でも4月から自律型 AI エージェントである Devin を導入しています。そこで、2ヶ月半ほど組織で Devin を運用してわかったことを共有していきます。 利用状況6月時点では14チーム (計30人ほど) が利用しており、Devin が作成してマージした PR 数は177になっています。Devin に依頼したタスクの種別ごとの割合は以下の通りで、さまざまなタスクに Devin を利用してきました。タスク種別ごとの Devin の利...
3ヶ月前

脆弱性(CVE)って何?
レバテック開発部のフィード
レバテック開発部の松浪です。エンジニアの皆さん、日々の脆弱性への対応お疲れ様です。え?脆弱性の対応してないって?以前、「システムをメンテナンスしてますか?」というタイトルでZenn記事を書きました。https://zenn.dev/levtech/articles/fc8992fa45f020そこでライブラリのバージョンアップを怠ってはいけない理由の1つとして、セキュリティ上の脆弱性を突かれて攻撃されるというのを挙げました。脆弱性は個人情報の漏洩やサービス停止に陥るきっかけとなる非常に危険な存在ですが、一方で脆弱性があってもシステムは正常に動作するので、放置されがちな...
3ヶ月前

リプレイス1年の現場で見えた、やって良かった7つのこと
レバテック開発部のフィード
TL;DR具体的な数値や実例を用いた事前準備で、“説得力” のある合意形成を実現リプレイス専任チーム体制の構築で、“推進力” を確保段階的リリースで “影響を局所化” し、リスクを最小化不要コードの早期削除によって、“既存仕様の調査コスト” を削減プロセス標準化により、“品質と速度” を両立リプレイス目的の達成基準を明確にし、“曖昧さ” を排除改善タスクを定期的に実施し、“技術負債” を着実に解消 はじめにこんにちは、リプレイスチームでバックエンドをメインに担当している内藤です!私は、これまで1年ほど Web アプリケーションのリプレイスプロジェクトに携わっ...
3ヶ月前

命令型プログラミング言語のPHPで、宣言的なコードを書く
レバテック開発部のフィード
こんにちは!レバテック開発部のきょうかです。今回は「PHPにおける宣言的コード」がテーマです。私は最近Reactに触れ始めたのですが、そこで「宣言型」という言葉に出会いました。Reactは宣言的にUIを記述できるライブラリで、それが大きな特徴のひとつにもなっています。一方で、私が普段から主に使用しているPHPは、一般的に命令型プログラミング言語として認識されています。そのため、PHPは宣言的に書くことはできないと思い込んでいました。しかし色々と調べていくうちに、PHPも書き方を工夫することで宣言的なスタイルを取り入れられると知りました。この違いや、PHPで宣言的にコードを書...
3ヶ月前