サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
kaminashi-developer.hatenablog.jp
はじめに こんにちは、takagi (@tkg_216) です。私が開発運用に携わっている「カミナシ 従業員」では、クラウドサービスとしてAWSを主に利用しています。今年、運用していく中で「これ便利だな」と感じたAWSのモニタリング、オブザーバビリティに関する機能ベスト3を、以下の観点で紹介します。 背景や課題、なぜその機能を使おうと思ったか どうやって活用したか 効果や使ってみての感想 渋くていぶし銀な機能が多いですが、自分たちの環境でも活用できそう!であったり、そんなこともできるんだ〜というような何かしらの発見等があれば幸いです。 (1) S3 Storage Lens S3 Storage Lens とは AWS が提供する S3 の利用状況をみるためのダッシュボードです。ストレージの合計やGETリクエスト数、ダウンロード済みバイト数などのメトリクスを見ることができます。 docs.
こんにちは、「カミナシ レポート」の開発に携わっている furuya です。 re:Invent2025 の参加レポート第三弾です。前回に引き続き現地レポートとセッションレポートをお送りします。 現地レポート:ラスベガスを生き残るために 今回初めての長期海外出張ということで、事前に集められるだけの情報を集めて準備は念入りにしていきました。その中でも持っていってよかったもの、使わなかったものをご紹介します。ラスベガスに行ってみたい!と思っている方の参考になれば幸いです。 持っていってよかったもの ウォーキングシューズ 第一弾で書きましたがめちゃくちゃ歩くので、いいウォーキングシューズ(1ヶ月程度履き慣らしておく)は必須です。連日歩きまくってもダメージが少ないと感じています。経験者にオススメしてもらい、Nike の Pegasus シリーズの靴を履いていきました。 ウルトラライトダウン / パ
こんにちは。カミナシでID管理・認証基盤の開発に携わっている小松山です。私の携わっているプロダクト『カミナシ ID管理』では、バックエンドに Go を採用しています。この記事では、Go のエラーハンドリングとエラーロギングの改善事例を紹介します。 はじめに 私たちのチームでは、定期的にシステムのメトリクス・トレース・ログなどを確認し、運用の健全性を確認する「サービスレビュー」という取り組みを行っています。その一環で出力されたエラーログを確認しているのですが、以下のような課題がありました。 同じerr を関数・メソッドから受け取った直後にロギングしてしまっている箇所が多く、リクエスト内で発生したエラーに対して複数回エラーログが出力されている context canceled やクライアントエラーのログも Error レベルで出力されている 上記問題のため、サービスレビューを行うたびに「このエ
こんにちはセキュリティエンジニアリングの西川です。本記事は前回の続きで、実際に ThreatForest を実行する方法や実行した結果についてシェアしていきますので、ThreatForest って何?という方は前回の記事をご覧いただければと思います。 初回ステップ クレデンシャルの設定をします。様々な LLM を選択できはするのですが、実際は初期リリース(AWS re:Invent 2025 時点)では AWS の Bedrock しか対応していません。そのため Bedrock を利用するためのクレデンシャルの設定がまずは必要です。 モデル選択については、 Haiku(高速) Sonnet 4.5(バランス) Opus(構造化に強いがやや遅い) などを推奨していましたがデモでは時間の都合で Haiku を選択していました。早いからという理由だけです。実際は色々と試してみると良さそうです。
こんにちは、カミナシでソフトウェアエンジニアをしているShimmyです。 カミナシでは現場のDXを支援するB2B SaaSプロダクトを開発しています。そのうちの1つである「カミナシ レポート」の「ひな形編集」機能では、ユーザーがフォームテンプレートを自由に作成できます。 ひな形の保存前には約20種類のバリデーションを実行します。ひな形名のチェック、回答項目の設定確認、設定キーの重複チェックなど多くのバリデーションがあり、今まではこれらが 1つの巨大な関数 でした。 今回は、関数型プログラミングのアプローチである 「Railway Oriented Programming」 と 「Result型」 を TypeScript で使って、数百行あるバリデーション処理を改善した話をご紹介します。 改善前のコード:何が問題だったのか 改善前のバリデーション処理を簡略化して書くと、次のようなコードです
こんにちは、「カミナシ レポート」の開発に携わっている furuya です。 re:Invent2025 の参加レポート第二弾です。前回に引き続き現地レポートとセッションレポートをお送りします。 現地レポート:食べ物 ラスベガスでの夕食 前回、朝ごはんやランチ、おやつはカンファレンス内で提供される、というのを書きました。夕食はどうでしょう。毎日各所でAWS含むいろんな会社さんやグループがパーティを開いており、事前に申し込んでいればネットワーキングと会食を楽しむことができます。そういうのがない日はカミナシメンバーみんなでご飯にいきました。 美味しかったチキンバーガー。ポテトも美味しかったけど油が... 到着した日、くら寿司があったので行きました。わざわざラスベガスでくら寿司を食べた、というネタのために(美味しかったしアメリカ限定メニューも日本で戦える味でした) どれも美味しかったですが、やは
こんにちは。カミナシで「カミナシ 従業員」の開発を行っている nilpoona です。 業務アプリケーションを作っていると、避けて通れないのが CSV インポート機能 です。 最初は「encoding/csv で読んでループ回せば実装できる」と考えて作り始めるのですが、仕様が複雑になるにつれて、以下のような課題に直面することがあります。 バリデーションとパース処理が混在し、エラーの発生箇所が追いづらい。 「文字コードが Shift_JIS だった」など多様なエンコーディングへの対応で、ビジネスロジックが複雑になる。 パースやバリデーションエラーを即座にリターンしてしまうと、ユーザーは一つのエラーを直してもまた次のエラーが出る「モグラ叩き」のような修正サイクルを繰り返すことになる。 データが正しい状態か保証されないまま、後続の処理(DB 保存など)に渡されてしまう。 今回は、こういった CS
カミナシでソフトウェアエンジニアをしているいちび(@itiB_S144)です。 12月1日から12月5日にかけて開催されていたAWS re:invent に参加してきました!日本に帰ってきて時差ボケもだいぶ治ってきました。 最終日に参加した以下のセッションについてレポートします。 NET301 Hands-on AWS WAF: Troubleshooting attack scenarios セッション詳細として記載されていた内容は以下です。 Suspicious of an activity spike? Seeing odd traffic patterns? Introduced a new AWS WAF rule and want to make sure it is operating as it should? Join this session for a walkthr
こんにちは。カミナシで「カミナシ 設備保全」サービスの開発を行っている澤木です。 今回はReact Router v7でReadableStreamを利用したデータの逐次表示を実装する方法について紹介します。 現在私たちのチームではLLMを使った機能開発を行っているのですが、LLMは生成処理に時間がかかるため全てのデータ生成を待ってから表示するとユーザー体験が悪化してしまいます。 そのためストリーミングで逐次データを受け取り、生成された部分から少しずつ表示していくという実装が一般的かと思います。 React Router v7にもストリーミング機能は提供されているのですが、これはあくまで遅延読み込みを実現するためのものでありデータの一部分を読み取りながら表示していくユースケースには対応していません。 そこで今回はReact Router v7のストリーミング機能は使わず、ReadableS
はじめに カミナシの認証認可チームのmanaty(@manaty226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、最終日に参加した以下のワークショップセッションについて記載します。 Modern batch analytics: Building advanced transactional datalakes with S3 Tables メダリオンアーキテクチャにもとづくS3 Tablesデータ基盤 本セッションでは、S3 Tablesを使ってメダリオンアーキテクチャと呼ばれる、データを3層のストレージで管理するデータ基盤を作成するワークショップです。メダリオンアーキテクチャでは、未加工のデータを保存するブロンズ層、データのクレンジングや複数の未加工情報の結合などを行ったきれいなデータを扱うシルバー層、報告用ダ
こんにちはセキュリティエンジニアリングの西川(@nishikawaakira)です。今回は ThreatForest を使用した脅威モデリングについてセッションに参加してきたので概要編と実践編に分けて紹介したいと思います。 脅威モデリングの4つの質問のフレームワーク ThreatForest の話に入る前にまずは脅威モデリングのお話から。脅威モデリングには4つの質問のフレームワークがあるらしいです。私はそんな基礎的なことすら知らなかったのですが、このフレームワークは古くから脅威モデリングのプロセスを進める際のメンタルモデルとして使われてきたそうです。 要点は下記の 4 つの質問です。 何を作っているのか?(What are we working on?) スコープの分解(scope decomposition) より小さく管理しやすい単位にまとめる データフローダイアグラムを描く 何がうま
おはようございます。カミナシでシニアマネージャーを担当している daipresents です。 ついにクロール25mで娘に負けそうになってきました。子どもの成長はやすぎですね。 自分の部署にはもうひとりエンジニアマネージャ(EM)がいるのですが、おたがいに1on1やファシリテーションでチームにかかわることが多いため、「お互いにスキルアップを目指そう!」と話しています。 年末なので「特訓は来年がんばろう」と意見が一致しているのですが、年内はAIを使って自分たちのファシリテーションスキルを高める方法を試しています。 自分のファシリテーションをAIに評価してもらおう 1on1の場合、自分のスキルを手っ取り早くたかめるいい方法は、「1on1後に、相手と振り返りを行う」だと思っています。これによって、相手から直接フィードバックが得られ、改善を次にすぐ活かせるからです。このサイクルをがんがんまわせば、
はじめに カミナシの認証認可チームのmanaty(@manaty226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、最終日に参加した以下のワークショップセッションについて記載します。 Active defense strategies using AWS Al/ML services [REPEAT] (SEC401-R1) AIを使った能動的防御 サイバーセキュリティにおける能動的防御とは、攻撃を受ける前にその予兆を把握して対処することです。特に、本ワークショップではサイバーセキュリティ欺瞞(Cyber Security Deception)と呼ばれる、偽の脆弱なコンテンツを使った攻撃手法の能動的な収集について取り扱っています。 link.springer.com 私は専門でないためハニーポットと欺瞞(decept
どうも Security Engineering の西川(@nishikawaakira)です。今回は AWS の脅威インテリジェンスについてセッションでお伺いしてきたのでシェアしたいと思います。 どういうセッションだったか まず AWS 社がどういった脅威インテリジェンスの取り組みを行っているかという話があり、それらの知見をサービスに落とし込んでくれていて、我々ユーザーがどのようにそのナレッジを検知や防御に活かせば良いかという内容でした。こんなに簡単にまとめていますが、とても長い記事なので覚悟してください。 AWS の観測範囲 IPv4 アドレスは約43億あるわけですが、AWS が毎日何らかの形でやり取りしている IP アドレスはなんと 26億にも及ぶそうです。つまりインターネットの約60%とやり取りがあるということです。 で、これらの数値というのは下記から観測しています。 ネットワーク
はじめに カミナシの認証認可チームのmanaty(@manaty226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、3日目に参加した以下のワークショップセッションについて記載します。 [NEW LAUNCH] Authenticate securely beyond AWS identity with JSON Web Tokens [REPEAT] (SEC352-R1) AWSにおける長寿命クレデンシャルのこれまで セッションの冒頭では、AWSにおける長寿命なクレデンシャル(アクセスキーなど)を、これまでにどのように改善してきたか話されました。2006年当初はルートユーザーしか存在せず、ルートユーザーのアクセスキーはアカウントの全権限を持つ長寿命なクレデンシャルでした。今考えると恐ろしい状態ですね。2011年にI
こんにちは、「カミナシ レポート」の開発に携わっている furuya です。 現在ラスベガスで開催されているre:Invent2025に参加しています。初の現地参加、ということで色々戸惑いつつも事前に見聞きした情報や、他にも参加しているカミナシメンバーがいてくれることもあり問題なく過ごせています(感謝)。ということで、現地レポートとセッションレポートをしていきます。 現地レポート:事前の噂検証 めちゃくちゃ歩く 事前の情報で毎日1万5千歩は歩くよ、と聞いていました。ホテルが広いし、会場間もめちゃくちゃ広い(大阪の感覚でいうと梅田から心斎橋・なんばくらいまで)らしいので、それはそうだろうなぁ、と思っていたのですが、実際やっぱりそうでした。1日2万歩くらい歩いてました。 月曜日の記録。日曜日も1万9千歩くらいでした。 日本の建物で例えるとまずホテル(カジノ)を中心にイオンモールが3つくらいくっ
どうも Security Engineering の西川(@nishikawaakira)です。今年も AWS re:Invent に参加しており、個人としては3回目の参加です。本日は re:Invent 期間中に Public Preview になったサービス AWS Security Agent についてワークショップに参加してきたので AWS Security Agent の紹介や感想などをシェアしたいと思います。 AWS Security Agent とは ものすごく簡単にいうと、ソフトウェアデベロップメントサイクル(SDLC)におけるアプリケーションのセキュリティレビューをしてくれるというものです。今までもコードをみてくれるサービスがあったり、設計書(Design Doc)をみてくれるサービスがあったりしたと思いますが、AWS Security Agent はそれら全てを包括して
はじめに カミナシの認証認可チームのmanaty(@manaty226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、2日目に参加した以下のセッションについて記載します。私が初めて参加するLv. 500のセッションです。 Known Unknowns: Bayesian Multi-Path Framework for Uncertainty in LLMs (INV506) LLMにおける未知の未知 普段からコーディングエージェントやサービスへの組み込みで利用されている方はよく知っているとおり、LLMの出力は確率的な振る舞いをして不確実性が伴います。中でも、誤った答えを自信満々に回答してしまったり、ハルシネーションを起こすのは本番アプリケーションにおける運用の難しさにつながります。発表者らは、LLMの回答を以下のよう
カミナシにてソフトウェアエンジニアをしているいちび(@itiB_S144)です。現在ラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。 re:Invent に参加するのはこれで通算3回目で今回も非常にたくさんの学びを得られていて楽しいです🙌 参加した以下のセッションについてレポートします Building serverless vector applications with Amazon S3 Vectors (STG321) セッション詳細として記載されていた内容は以下です。 Vector embeddings are transforming how organizations build and scale AI, powering everything from semantic search to generative applica
AIはE2Eテスト撲滅の夢を見るか? おはようございます。カミナシでシニアマネージャーを担当している daipresents です。息子がけん玉にハマり、定期的にボールをぶつけられて痛い思いをしております。 僕は普段、「カミナシ 教育」のエンジニアリングマネージャも担当しているのですが、プロダクト開発の中で、プロダクトマネージャと一緒に、開発された機能の受け入れテストも手伝っています。 また、新しい変化を受け入れるとともに、プロダクト全般の挙動も確認する必要があるので、少し前にE2Eを整備しはじめました。 E2Eテストの整備は、仕事柄いろいろやってきたのですが、AIの活用が劇的に広がっているので、今回は、自分はコードを書かず、E2EテストのすべてをAIに作ってもらいました。 AIを使ったE2Eテスト作成 今回作成したのは、Webアプリ向けのE2Eテストです。技術的にはSeleniumからP
はじめに カミナシの認証認可チームのmanaty(@manaty0226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、初日に参加したAIエージェントに関する以下の2つのセッションについて記載します。 Building Scalable, Self-Orchestrating AI Workflows with A2A and MCP (DEV415) Hands-on multi-tenant agents: Inside tenant-aware agentic systems (SAS403-R) AIエージェントのコレオグラフィとA2Aプロトコル 1つめのセッション(Building Scalable, Self-Orchestrating AI Workflows with A2A and MCP)では、タス
カミナシの認証認可ユニットでソフトウェアエンジニアをやっているトモ=ロウです。 先日、過去に弊社で行った共通ID基盤構築プロジェクトに関するブログ記事を公開したのですが、お読みいただけたでしょうか?まだ読んでいない方は是非ご一読ください! スタートアップがゼロから作る共通ID基盤:立ち上げ〜ID統合まで道のり(前編) - カミナシ エンジニアブログ スタートアップがゼロから作る共通ID基盤:ID統合のその先へ(後編) - カミナシ エンジニアブログ さて、今回は前半に「認証認可完全初心者だった自分が如何にしてID基盤構築プロジェクト完遂に貢献するに至ったか」という視点で僕がどのように認証認可の学習をしてきたかについてお話しします。そして後半は「今から学習し直すならどうするか」というテーマで現時点で僕の考える最速の「知の高速道路」を紹介してみようと思います。 前回の記事が少し硬めの感じになっ
カミナシの「カミナシ 設備保全」チームでプレイングマネージャー型のエンジニアリングマネージャーをしてます、すずけん(@szk3)です。 先日、社内プロダクトの連携機能を実装するにあたり、カミナシの別サービスから自チームが管理するサービスのプライベートなAPIを呼び出す必要があり、サービス間API呼び出し経路について、CloudFrontの機能のひとつであるVPCオリジンを使って実装しました。 本エントリでは、VPCオリジンを導入する過程で得たVPCオリジンについての知見や、その判断に至るまでの背景をシェアします。 プライベートサブネットのAPIを呼び出したいニーズ増えてない? 昨今のAI/LLMアプリ開発の隆盛もあり、mcpサーバーからプロダクトのAPIを呼び出したり、自社・他社問わずサービス間連携したいというようなカジュアルなニーズも増えたように感じます。 一方で、実装する側の視点で言う
こんにちは、先日開催された社内イベント「ごーとんカップ 2025」にてセキュリティチャンピオンになりました、ソフトウェアエンジニアの渡邉(匠)です。「カミナシ 設備保全」の開発に携わっています。 最近、AIエージェントの技術トレンドに乗り遅れないよう、Amazon Bedrock を使ったプロトタイピングに取り組んでいます。その中で、Amazon Bedrock Agents で提供されている「Return of Control」という機能をStrands AgentsとAmazon Bedrock AgentCoreを使って作ってみたので、その実装方法と学びを共有します。 Return of Control とは Return of Control は、Amazon Bedrock Agentsの機能の一つです。 この機能を簡単にまとめると以下のような特徴があります: エージェントが実行
どうもセキュリティエンジニアの西川です。私は最近ポケモンカードの奥深さと難しさを痛感する日々を過ごしていますが、みなさんいかがお過ごしでしょうか。 カミナシでは社内セキュリティ競技会を実施しました。1年に1度開催しておりまして、気付けば今年で3回目です。初回は私一人で運営していましたが、2回目は二人、3回目は三人と徐々にセキュリティエンジニアリングに人が増え、問題の幅が増えたように感じています。 「こいつ競技会やる度にブログ書いてるな」と思われるかもしれないのですが、新しい発見というか自分なりに改めて社内セキュリティ競技会を実施する目的などを言語化したので、それについても共有できればと思っています。 社内セキュリティ競技会ってどんなもの? これは CTF(Capture The Flag) のようなものですが、社内で実施する良い点は下記のようなものがあります。 自分たちのサービスや環境のコ
こんにちは、「カミナシ レポート」の開発に携わっている furuya です。先日は Observability Conference Tokyo 2025 が開催され、盛況だったようですね。カミナシメンバーも登壇・参加しました!発表資料はこちらです。 speakerdeck.com この記事では、先日登壇したID管理・認証認可チームとは別で、「カミナシ レポート」の開発チームにおいてもここ数ヶ月間オブザーバビリティと向き合っていた、というお話ができればと思います。 課題 オブザーバビリティとはなんぞや?というところをそろそろちゃんと理解したいなと思い、書籍「オブザーバビリティ・エンジニアリング」を手に取りました。そこで理解したのは、高度に複雑で分散された現代のシステムにはモニタリングだけでは太刀打ちできず、その解決策としてオブザーバビリティを獲得する必要がある、ということです。 「ハンマー
「よし、これで完璧!」と思って実装したファイルアップロード機能。テストで同じファイルを2回選んだら...あれ?2回目は何も起きない。 // さっきまで動いてたはずなのに... <input type="file" onChange={(e) => { console.log('ファイル選択した!', e.target.files[0]); uploadFile(e.target.files[0]); }} /> 「え、なんでonChange動かんの...?」 Chromeのコンソールとにらめっこすること数分。これ、実は私の実装ミスじゃなくて、ブラウザの仕様に起因する面白い問題だったんです。今日は、この挙動を掘り下げて、Web標準とブラウザによる挙動の違いについて話してみたいと思います。 そもそもchangeイベントってさぁ 教科書的な説明を確認してみる MDNのchangeイベントのドキュ
はじめに カミナシでID管理・認証認可基盤を開発しているmanaty(@manaty0226)です。 先日行われたObservability Conference Tokyo 2025に出席し登壇しました。カンファレンス運営の方々本当にありがとうございました。当日までのサポートはもちろんのこと、登壇前の準備も丁寧に説明いただき、リラックスできるようお気遣いいただいたので楽しく登壇することができました。また、当日聴講していただいた方々、ask the speakerに来ていただいた方々や懇親会でお話させていただいた方々もありがとうございました。 本記事では登壇で話したことや、他のセッションを聴講した学びなどを残したいと思います。 登壇で話したこと 私のセッションでは、「オブザーバビリティと共に育てたID管理・認証認可基盤の歩み」というタイトルで、カミナシのID管理・認証認可基盤の立ち上げから
皆さん、こんにちは。カミナシの認証認可ユニットでソフトウェアエンジニアをやっているトモ=ロウです。 この記事は、共通ID基盤の構築について解説した連載記事の後編です。まだ前編を読んでいない方は、ぜひそちらからご覧いただくことをお勧めします。 前編はこちら: スタートアップがゼロから作る共通ID基盤:立ち上げ〜ID統合まで道のり(前編) 後編では、真の共通ID基盤を完成させるための最後の関門である、「ログインフローの統一」と「ユーザー管理機能の統一」への道のりをご紹介します。 「ID統合」というワードについて 「ID統合」という言葉は厳密な定義がなく、一般的には 複数存在する「認証処理」や「ユーザー管理機能」を一つの基盤に統合すること 同一ユーザーが持つ複数のユーザーアカウントを一つのユーザーアカウントに統合すること のどちらか、あるいはその両方を行うことを指すようです。本記事では前者の『複
次のページ
このページを最初にブックマークしてみませんか?
『カミナシ エンジニアブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く