KAKEHASHI Tech Blog

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

インフラ

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…

AWS GlueのCI/CD環境を作ってみた

こんにちは、カケハシの横田です。今回は我々の会社で実践しているテクノロジーについてお話しします。我々の開発チームは、日々 Apache Spark を活用し 100 個以上のバッチ処理を運用する中で、 AWS Glue という Apache Spark のマネージドサービスに大いに…

CDK for Terraformは実用可能か? DatadogのMonitorを構成管理してみる

概要 未だ0系でありながら、22年8月に一般提供が開始された CDK for Terraform の実用性を検討し、DatadogのMonitor(およびDowntime)の構成管理をコード化しました。 背景 弊社では主要な監視ツールの一つとしてDatadogを活用しており、弊チームでもDatadog…

OKRに書ける!知っておくだけでAWSコストをすぐ削減できる26個のヒント

AWSコストをいますぐ最適化しませんか? キャッシュフロー、ユニットエコノミクス、改善しませんか? この記事では、とにかくいますぐなんとかしたい方向けの方法を金額面で大きい傾向にあるサービスごとに26個紹介します。 以下各見出し内のはコスト削減度…

今日の午後には無理なく大胆にコスト削減できるようになります。サーバレス化しましょう

お金は好きですか? コストを削減したいみなさん、ようこそ。 原価を低減したいみなさん、ようこそ。 サーバレスのビジネスでの優位性は多数ありますが、今回はその中でもコスト最適化の面から説明します。 やればやるだけ成果が見える: 努力が必ず報われる…

2022年版 AWS Glue の Spark Job で Aurora MySQL にデータを書き込む方法まとめ

KAKEHASHI でバックエンドエンジニアをしている横田です。 私が運用している Web サービスでは、AWS Glue で ETL 処理をしたデータを Aurora MySQL に投入することでユーザーが利用できるようにしています。 その中でも「データを Aurora MySQL に投入する」…

Redash から Databricks SQL へ移行すると何がどう変わる??

こちらの記事は Databricks Advent Calendar 2022 の22日目の記事になります。 こんにちは、カケハシで Musubi Insight のバックエンドエンジニアをしている末松です。 カケハシでは 全社的なデータ活用基盤のプラットフォームとしてDatabricksを採用 してお…

Spark未経験のチームが2年間模索して実感した、効果的なパフォーマンス改善6選

こちらの記事は カケハシ Advent Calendar 2022 の17日目の記事になります。 こんにちは、カケハシで Musubi Insight のバックエンドエンジニアをしている末松です。 Musubi Insight に表示するデータは夜間の日次バッチで集計しているのですが、テスト・品…

Amplify でモノレポ対応してみた

こちらの記事は カケハシ Advent Calendar 2022 の16日目の記事になります。 はじめに こんにちは、おくすり連絡帳 Pocket Musubi というサービスを開発している宮里です。 サービスの運用をしていると、開発当初とはサービスとして重要視すべきことや技術ト…

Lambda Powertools の Feature Flags やってみた

こちらの記事は カケハシ Advent Calendar 2022 の 2 日目の記事になります。 https://adventar.org/calendars/7444 はじめに こんにちは、おくすり連絡帳 Pocket Musubiというサービスを開発している石井です。 私は主にアプリケーションのサーバーレスなイ…

AWS GlueのSpark Jobでクローラーを使わずにデータカタログにテーブルを作成する

KAKEHASHI でバックエンドエンジニアをしている横田です。 今回は、一般的にクローラーを使って作成するであろう、データカタログのテーブルを Spark だけで実現する方法について紹介できればと思います。 背景・目的 MusubiInsight のプロダクトでは、薬剤…

不思議な本番障害を防ぐためにタイムアウトを設定しましょう

本番サービスイン後、不思議な条件で起きるエラーが出てきませんか?調べても調べてもわからない...時間が過ぎるばかりですが、突然ハッと思いつきます。 あっ!タイムアウトだ! 見聞きする限り、ほぼ確実にこのパターンが発生しています。信頼性を上げ、不…

カケハシがDatabricksを導入した背景と技術選定のポイント

初めまして、カケハシのデータ基盤チームでデータエンジニアしている大木と申します。 この度カケハシでは、全社的なデータ活用基盤のプラットフォームとしてDatabricksを採用し、2022/07より本格導入することとなりました。 当記事では、カケハシがDatabric…

AWSの負荷テストソリューションを使ったGraphQLの負荷テスト

はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubi というサービスを開発している種岡です。 日頃もくもくと開発作業に勤しむ傍ら、ときどきユーザーからの生の声(良くも悪くも)が届くのは嬉しいものです。 サービスが成長している1つの証で…

Google + Cognitoでユーザーグループ単位の認証認可

こんにちは、あるいはこんばんは(アーニャ声)。 突然ですが認証認可周りの設計・実装は毎回全然違った要件に沿って違った感じでやっていく感じになるのでおもしろいですよね。 この記事では、先日Musubi Insightチームが社内向けに作成したコンソールの設計…

DynamoDBからS3へApache Hudiを使って同期してみた

KAKEHASHI でバックエンドエンジニアをしている横田です。 今回は、OLTP から OLAP へのデータ同期処理で、気になった技術を使ってみました。 背景・目的 DynamoDB のデータを S3 に日次で同期する必要がありました プロダクトで作っているデータをどうやっ…

まったく新しい開発体験をもたらすServerless Stackとは何か

はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubiというサービスを開発している種岡です。 この記事では、Serverless Stackとapollo-server-lambdaを使って、AWS Lambda上でApollo Serverを動かしてみたのでご紹介します。 対象読者 以下に興…

⚡今すぐ見直してほしい、2021年版Lambdaチェックリスト!開発者のためのポイント30選

AWS Lambdaを使えば開発者がビジネス価値に集中できる一方、それでも今までの開発と異なるポイントに気をつける必要があります。この記事では注意したい計30個のチェックポイントを紹介します。 まずは比較的簡単で効果が出やすい部分から見ていきましょう。…

ETL処理がシンプルになる!AWS Glue 3.0で使えるようになったPySparkの関数紹介

KAKEHASHI の、Musubi Insight チームのエンジニアの横田です。 KAKEHASHI では BI ツールの Musubi Insight という Web アプリケーションを提供しています。 BI ツールでは薬剤師さんの業務データを可視化しておりますが、そのデータの集計処理には AWS Glu…

AWSのSession ManagerとFargateを用いた踏み台サーバー構築のTips

こんにちは。カケハシの Musubi AI在庫管理 チームで業務委託のエンジニアとして開発を行っております山田です。こちらの記事は カケハシ Advent Calendar 2021 の17日目の記事になります。 本記事では、AWS Systems Manager Session ManagerとAWS Fargateで…

AWS CDKによるデプロイ作業を高速にするには?

1日に飲むコーヒーはカップ3杯までと決めています。 プラットフォームチームのさだです。 デプロイが遅い 私たちのチームは、弊社の各サービスから利用される共通の認証基盤を開発し、またそのアカウント管理機能をユーザー向けに提供しています。本番環境を…