KAKEHASHI Tech Blog

カケハシのEngineer Teamによるブログです。

インフラ

社内SREゼミ_信頼性向上編での参考資料

以下資料は先に実施したSREゼミ_信頼性向上編で利用したものです。Well Architected Frameworkの信頼性の柱、その補足資料として読み合わせに使ってください。 Well Architected Frameworkを読み解きながら、信頼性が高まる設計を学びます。 信頼性のほうが…

EOL 管理入門(AWS、OSS ライブラリ、コンテナイメージ)

「このライブラリのサポートいつまでだっけ?」「Lambda ランタイムの EOL っていつだったかな?」 システム運用をしていると、こんな疑問がよく浮かびますよね。サービス・ライブラリの EOL を皆さんはどうやって管理しているでしょうか。 なぜEOLチェック…

最も価値のある仕事は、最も「泥臭い」。データサイエンティストが向き合うべきデータ整備のリアル

はじめに こんにちは!データサイエンティストの川邊です。普段は医療・ヘルスケア領域の案件やSaaS利用促進に関わるデータドリブンな意思決定支援を行っています。 タイトルの通り、最近はデータユーザーの視点からアプローチするデータ整備に取り組んでい…

Databricks サーバレスコンピュート導入時の注意点、Tipsの紹介

私たちのデータ基盤はDatabricks on AWSで構築されており、従来、Databricksのコンピュートクラスタは自社のAWSアカウント内のEC2インスタンス上で稼働していました。昨年、DatabricksのサーバレスコンピュートがGA(一般提供)となり、その迅速な起動時間や…

Amazon ECR Docker Credential Helperを利用したECR認証

docker loginによるコンテナレジストリログインの課題 Docker Clientから各種コンテナレジストリに認証するときは、通常docker loginコマンドを利用します。しかし、以下の課題があります。この記事ではこの課題に対応するDocker Credential Helperを紹介し…

ALB mTLS導入事例:独自CRLチェックからマネージドサービスへの移行

こんにちは。Musubiアカウント管理基盤チームの松岡です。今回は、私たちが担当するプロダクトでApplication Load Balancer (ALB)のmTLSを導入した事例をご紹介します。独自実装していたクライアント証明書のCRL(証明書失効リスト)チェックをALBに移行した…

社内管理画面を Slack App から Lambda Web Adapter を利用した Web アプリケーションに移行している話

はじめに 処方箋データ連携チームでエンジニアをしている岩佐(孝浩)です。 カケハシには「岩佐」さんが複数名在籍しており、社内では「わささん」と呼ばれています。 私が所属する処方箋データ連携チームでは、これまで Slack App を用いて社内管理画面を…

サイズが小さい新形式Let's Encrypt証明書

Let's Encryptのプロファイル選択機能 Let's EncryptにはProfile機能があり、異なる仕様のサーバ証明書を発行できます。 説明ページにある通り、現在classicとtlsserverの2種類のプロファイルが選択できます。(shortlivedプロファイルもありますが、まだ一…

そろそろ困ってきた開発者のための2025年版AuroraMySQL利用ガイド

RDBを好む開発者は多い一方、非常に手がかかるシステムの一種です。 どうしても開発者の腕次第でスケーリングや性能、障害の有無に差が出ますし、 事前の綿密な計画が必要な一方、普段は毎日のようにメトリクスを確認してあげないと不安定です。 この記事で…

一部のAWS RDSインスタンスタイプはRIが使えない

AWSでDBを構築する場合、RDSのリザーブドインスタンス(RI)を利用することが多いと思います。しかし、一部のインスタンスタイプはRIが提供されずオンデマンド専用です。例えば東京リージョンのAurora MySQLの場合、r7iシリーズがこれに該当します。 ここでは…

DynamoDB シングルテーブル設計入門

はじめに 処方箋データ基盤チームでエンジニアをしている岩佐 (孝浩) です。 カケハシには「岩佐」さんが複数名在籍しており、社内では「わささん」と呼ばれています。 私が所属する処方箋データ基盤チームでは、DynamoDB をメインのデータベースとして利用…

2025年版 DynamoDBを本格的に使いたい開発者のためのDynamoDB利用ガイド

DynamoDBも当初はマネージドとしてシンプルでしたが要求が増えるにつえ複雑になってきました。 *ソフトウェアでは良くあることで、そして新しくシンプルなものが生まれ新しいサイクルが始まる モデリングなどはドキュメントを見ていただきつつ、この記事で…

CloudWatchコスト削減のリアル:効果的なログ分析と対策方法

こんにちは、AI在庫管理の開発チームでバックエンドエンジニアをしているもっち(@mottyzzz)です。 AI在庫管理では、プロダクトのインフラとしてAWSを使用しています。その中でも特に重要なサービスのひとつがCloudWatchです。システムの監視やログ管理に不…

【Node.js】S3からS3へのアップロードをnode:stream/promisesのpipelineやaws-sdk/lib-storageでやる

はじめに こちらの記事は Advent Calendar 2024 の 6日目の記事になります。 カケハシでソフトウェアエンジニアをしている加藤です。 この記事では、S3からS3へのファイルのアップロードをNode.js, TypeScript, Stream APIを利用して行う方法について説明し…

S3 イベント通知とオブジェクトのストレージクラス変更で発生する CopyObject イベントについて

処方箋データ基盤チームでエンジニアをしている岩佐 (孝浩) です。 カケハシには「岩佐」さんが複数名在籍しており、社内では「わささん」と呼ばれています。 私が所属する処方箋データ基盤チームは、日本全国の薬局から送信される処方箋データを S3 に保存…

AWS Client VPN で API Gateway Private REST API にアクセスする方法

処方箋データ基盤チームでエンジニアをしている岩佐 (孝浩) です。 カケハシには「岩佐」さんが複数名在籍しており、社内では「わささん」と呼ばれています。 先日、社外のオンプレミス環境から API Gateway Private REST API にアクセスしたいという要件を…

AWSの設定値保存:最適な方法を選ぶためのガイド

Musubi AI 在庫管理で DevOps エンジニアをしている kacky です。 Web アプリケーションの開発において、設定値の管理は避けて通れない課題です。データベース接続情報や 機能フラグなど、アプリケーションの挙動を左右する重要な情報を安全かつ効率的に扱う…

目的別データベースの実践: PostgreSQL 行レベルセキュリティと DynamoDB Outboxパターン

カケハシのプラットフォームチームのテックリードとして組織管理サービスと認証基盤を開発している kosui です。今回は、目的別データベースをプラットフォームチームではどのように実践しているかご紹介します。

処方箋データ基盤チームが提供する「しなやかなプラットフォーム」の紹介

処方箋データ基盤チームでエンジニアをしている岩佐 (孝浩) です。 2024年6月に入社し、薬局の処方箋データを扱うプラットフォームの構築に携わっています。カケハシには「岩佐」さんが複数名在籍しており、社内では「わささん」と呼ばれています。 この投稿…

医薬品検索でMySQLの全文検索機能を使った話

AI在庫管理の開発チームでバックエンドエンジニアをしている沖です。今回は、AI在庫管理の医薬品検索において、MySQLの全文検索機能を使った話を紹介しようと思います。

Okta ログを AWS S3 にログストリームで保存する

この記事は秋の技術特集2024の2記事目です。 Okta のログは社内ユーザの認証とアクセスを記録するため、セキュリティとコンプライアンスの観点から長期保存を行いたいです。 AWS S3 に保存することでインシデント対応や不正アクセス調査に活用することができ…

Amplify Consoleでホストしている既存アプリの前段にCloudfrontを挿入する

こんにちは! 「AI在庫管理」開発チームの小室です。 最近、Amplify Consoleで稼働中の、ReactのSPAアプリケーションの前段に、Cloudfrontを挿入する改修をおこないましたが、 Amplify Console + Cloudfront環境の情報源が限られていることもあり、特にドメ…

CloudFront配信サイトでGitHub組織のドメイン認証するときの注意

GitHubドメイン認証がうまくいかない 会社でGitHubを利用するときは組織のドメイン認証を行い、トップ画面に"Verified"マークを表示させることが多いと思います。 GitHubのドメイン認証を行うときは指定のTXTレコードを追加しますが、CloudFrontを使っている…

RDS Snapshot Exportを利用してDatabricksにデータ連携を行う

こちらの記事はDatabricks Advent Calendar 2023の21日目の記事です。 こんにちは、カケハシのデータ基盤チームでデータエンジニアをしている伊藤と申します。 カケハシのプロダクト1ではRDS(Aurora MySQL/Aurora PostgreSQL)を利用しています。 全社的なデ…

Wing(プレリリース中) を使ってみたら開発体験が良さそうだったので紹介してみる

こちらの記事は カケハシ Advent Calendar 2023 の 15 日目の記事になります。 adventar.org はじめに こんにちは、おくすり連絡帳 Pocket Musubiというサービスを開発している石井です。 私たちのチームはフルスタックなエンジニアで構成されております。し…

DynamoDBのCDCデータを利用して、ニアリアルタイムにDatabricksへ取り込む

こちらの記事はDatabricks Advent Calendar 2023の16日目の記事になります。 こんにちは。カケハシのデータ基盤チームでデータエンジニアをしている松田です。カケハシでは、2022年7月ごろから全社的なデータ活用基盤のプラットフォームとしてDatabricksを採…

【AWS】ログレベルを設定するだけでGlueSparkJobのログ収集にかかるコストを98%削減!?

こちらの記事は カケハシ Part1 Advent Calendar 2023 の5日目の記事になります。 こんにちは、カケハシで Musubi Insight のバックエンドエンジニアをしている末松です。 Musubi Insight ではデータ集計バッチに AWS の GlueSparkJob を採用しているのです…

ECS起動を高速化するSeekable OCI(SOCI)インデックスをGitHub Actionsでも作る

SOCIとは? SOCI(Seekable OCI)はAWSが開発しているコンテナイメージの遅延読み込みのための仕組みです。コンテナイメージには起動時には使わないデータも多く含まれています。遅延読み込みによって、起動時には最小限のデータのみ読み込んで起動時間を短縮す…

ETL ワークフローに Aurora DB Cluster Export を導入してみた

はじめに こんにちは、カケハシの坂本です。 「AI 在庫管理」というプロダクトの ETL ワークフローに Amazon Aurora のマネージドサービスである Aurora DB Cluster Export という機能を導入したことについてお話しします。 AI 在庫管理では、医薬品などの需…

RDSの新証明書の有効期限を考える

RDSの50年, 100年有効な認証局証明書 2023年1月13日のリリースで、RDS向けの新しい認証局(CA)証明書が提供されました。 新しいCA証明書には以下の特徴があります 有効期限が50年あるいは100年と長い RSA 2048bitの証明書が50年で、RSA 4096bit, ECDSA 384b…