snaqme Engineers Blog

おやつ体験メーカー snaq.me エンジニアによる開発プロダクトブログ

おやつの商品開発と「データ」による裏側

こんにちは、スナックミーでデータエンジニアをしている加藤です。 スナックミーでは多種多様なおやつの中からユーザー一人一人に合った8つのおやつをお届けするサービスをメインに展開しています。 そんなたくさんのおやつ達は、定期便の商品を主に担当する…

おいしいおやつの定期便snaq.meマイページの変遷

snaq.meでプロダクトマネージャーをしている渡邉(@nabepiyoo)です。 私からは、技術的な詳細というよりはマイページがどのように変わってきて、それがユーザの皆さんのおやつ体験をどうお手伝いできるのかという話をさせていただければと思います。普段はマ…

ユーザーに最適なおやつを届ける「アサイン」の歴史

こんにちは、スナックミーでデータ周りを担当するエンジニアをしている加藤です。 スナックミーでは、ユーザーのみなさんにお届けするおやつを様々な情報をもとに選定することをアサインと呼んでいます。 過去にもこのアサインに関する記事がいくつか書かれ…

FastAPI schemaの考え方

こんにちは 今回はFastAPIのschemaの考え方を書いていきたいと思います。 FastAPIではpydantic を採用しており、pydanticを利用してschema設定していきます。 今回でいうschemaはDBのschemaではなく、I/Oのリクエスト・レスポンスのschemaの考え方になります…

FastAPI 独自でエラーハンドリングを設定する方法

こんにちは スナックミー CTO の三好 (@miyoshihayato) です FastAPIを開発するときに独自でエラーハンドリングを設定する方法を書いていきたいと思います。 FastAPIの採用背景は以下をご覧ください labs.snaq.me リプレイスの場合、エラーハンドリングはリ…

スナックミーのエンジニアチームで直近動きたいこと (2022年7月)

こんにちは スナックミー CTO の三好 (@miyoshihayato) です 四半期ごとにチームに共有している直近動いていきたいことを一部変えてこちらのエンジニアブログに載せたいと思います。 DBに残らないデータの活用 内製の強化 (+ 内製必要ないところの脱却) 他チ…

FastAPI 採用経緯

こんにちは スナックミー CTO の三好 (@miyoshihayato) です スナックミーは昨年からPHP -> FastAPIにReplaceをすすめ、すでに多くのAPIがFastAPIで本番稼働しています。 ここではなぜReplaceしようと考えたのか、FastAPIを採用したのかなどを記載させていた…

スナックミーのエンジニアチームで直近動きたいこと (2022年4月)

こんにちは スナックミー CTO の三好 (@miyoshihayato) です 四半期ごとにチームに共有している直近動いていきたいことを一部変えてこちらのエンジニアブログに載せたいと思います。 エンジニアのバリュー Scale Out Next Agile Quality グロースハック まと…

他ブランド含めた在庫管理について

こんにちは スナックミー CTO の三好 (@miyoshihayato) です 弊社ではsnaq.meというおやつの定期便を展開しているのですが、実はあまり知られていない「他ブランド含めた在庫管理」について今回紹介させてください。 当初のブランドの種類 ブランドの種類 在…

ユーザーさんにおやつを届けるまでのアーキテクチャ

こんにちは スナックミー CTO の三好 (@miyoshihayato) です 登壇などでユーザーさんにおやつを届けるまでのアーキテクチャを紹介させてもらったことはありましたが、ここではなかったので改めて紹介させていただきます。 過去紹介しているものからいくつか…

スナックミーのエンジニアチームが直近動きたいこと (2022年1月)

こんにちは スナックミー CTO の三好 (@miyoshihayato) です 四半期ごとにチームに共有している直近動いていきたいことを一部変えてこちらのエンジニアブログに載せたいと思います。 システムのシンプル化 データドリブン 相手を理解していこうとする意識 ま…

スナックミーのエンジニアチームで直近動きたいこと (2021年10月)

こんにちは スナックミー CTO の三好 (@miyoshihayato) です 四半期ごとにチームに共有している直近動いていきたいことを一部変えてこちらのエンジニアブログに載せたいと思います。 歩み寄りの意識 仕様追加 と 仕様変更 (改善) 仕様追加 仕様変更 (改善) …

おやつのアサイン最適化を求めて〜4時間かかった処理を20分に短縮した取り組み〜

こんにちは、SRE の多田(@tada_infra)です! この記事ではスナックミーのお客様にお届けする,おやつのアサインをカイゼンした話についてです.私と開発者の加藤(id:hisaaki_kato)で記事を書いていきます. 課題とカイゼンの経緯 カイゼンの取り組み プログラム…

スナックミー もMeety始めてみました!

こんにちは!スナックミーでPM兼エンジニアをやっている渡邉(@nabepiyoo)です。 新しいプロダクトが好きで日々情報収集しています。 最近TwitterのTLでMeetyをとても目にするようになりましたね。 meety.net Meetyめちゃくちゃ良い Meetyめちゃくちゃ良いプ…

開発プロセスの分析・課題解決でVSMが役に立った話

こんにちは!スナックミーでPM兼エンジニアをやっている渡邉(nabepiyo)です。 スナックミーに限らず、これまで開発する中で、「この機能が使われていないのはなんで?」、「この機能リリースしたけど要望と違っていたよ」、「この機能リリースまでに思ったよ…

クリエイティブチームとの継続的なリリースフローの実践

こんにちは!SRE を担当している多田です(@tada_infra). 先日,lp.snaq.me のデザインがリニューアルしました✨ lp.snaq.me このサイトの継続的なリリースを行う上で,キャンペーンを打ったりするためクリエイティブチームが作ったコンテンツを差し替えが頻繁に…

サービススケールに対応していくための既存アーキテクチャ再構成の取り組み

AWS

こんにちは!SRE を担当している多田です(@tada_infra). お客様のおかげで snaq.me はサービス開始から5年が経ちました.これからもサービスのスケールに合わせてシステム側もその変化に対応していけるように既存システムの課題から構成を見直し,改善を試みた…

『JAWS DAYS 2021 - re:Connect -』でシステムリリースフローの刷新の取り組みを話してきた

こんにちは!SRE を担当している多田です(@tada_infra). 3/20 開催の「JAWS DAYS 2021 - re:Connect -」にて「スタートアップ企業での散乱したシステムリリースフローをととのえる話」というタイトルでオンライン登壇させていただきました.開発者が安心かつ…

Mackerel アンバサダーの一員になりました!

こんにちは!SRE を担当している多田です(@tada_infra). この度 Mackerel アンバサダープログラムに招待いただき,アンバサダーの一員に加えていただくことになりました! Mackerel は業務で導入することになったことがきっかけで使い始めたのですが,アンバサ…

Aurora のクローン機能を使ったバイナリログレプリケーションを実行してみた

こんにちは!SRE を担当している多田です(@tada_infra). 本番稼働中の Aurora のデータを別の Aurora に移行するために DMS を使おうと思いバイナリログを有効化して DMS の準備をしていました.ただ,DMS のトラブルシューティングを確認してみるとオブジェク…

SSM Run Command をメンテナンスウィンドウで実行する

こんにちは!SRE を担当している多田です(@tada_infra). 業務の中で日時を決めて SSM Run Command を実行したい要件がでてきたのでメンテナンスウィンドウを使ってみることにしました.この記事ではメンテナンスウィンドウを AWS CLI を使って設定して行った…

カスタムランタイム の Lambda をコンテナイメージ化してみた

こんにちは!SRE を担当している多田です(@tada_infra). Lambda のアップデートで昨年の re:Invent でコンテナがサポートされました. aws.amazon.com 自前のコンテナイメージを実行できるならカスタムランタイムで設定している Lambda の処理をコンテナイメ…

JTF2021w で『スタートアップ企業でのAWS マルチアカウント運用の実践と普及』と題して#推しテクを発表した

こんにちは!SRE を担当している多田です(@tada_infra). 1/24 開催の「July Tech Festa 2021 winter #推しテク総選挙」にて「スタートアップ企業でのAWS マルチアカウント運用の実践と普及」という AWS 管理をしていくなかでアカウントを分割し,組織に分離し…

胸熱! Aurora MySQL in-place upgrades 機能を使って MySQL 5.6 => 5.7 にアップグレードする

あけましておめでとうございます! SRE を担当している多田です(@tada_infra). re:Invent 中に Aurora MySQL 5.6 から 5.7 へアップグレードすることが容易になるアップデートが出るアナウンスがあり,業務で担当しているデータベースは MySQL 5.6 なので期待…

2020年終わりに

こんにちは スナックミー CTOの三好です @miyoshihayato 先月にスタートした弊社の技術ブログですが、まだ私は書いてなく、最低1本今年中に書きたかったので書きます。 スナックミーはどういうサービスでエンジニアの関わり方どうなっているのか長くなりすぎ…

AWS SSO と GSuite を連携した認証のフローを作ってみよう!

こんにちは! SRE を担当している多田です(@tada_infra). 自分の会社では AWS アカウントのログイン形式がこれまでは IAM ユーザーによるアカウントに直ログインになっていたのですが,それを AWS SSO を入れてログイン方式を変更しました.ユーザー管理はデフ…

AWS Client VPN のユーザー認証を Active Directory 認証で行う

こんにちは! SRE を担当している多田です(@tada_infra). AWS Client VPN の相互認証を検証した時の課題が VPN 接続ログに誰が VPN を使っているかが記録されてなかったことです.ユーザー認証の仕組みは Active Directory 認証と SAML 認証が用意されているの…

AWS Client VPN の IP アドレスを固定化してインターネットと通信する

こんにちは! SRE を担当している多田です(@tada_infra). AWS Client VPN 検証の続きです.前回の記事でプライベートサブネットの EC2 への VPN 接続が可能になりました.次に,VPN を繋いだ IP アドレスで業務システムへのアクセス制限をしたいといった要件で検…

プライベートサブネットのサーバー接続をするために AWS Client VPN を使ってみる

こんにちは! SRE を担当している多田です(@tada_infra). リモートワークが広がる中で AWS Client VPN を使って各種業務システムへの接続を検証する必要があり,AWS Client VPN を検証したので何記事かに分けて検証した内容をまとめます.この記事で Get Starte…

microCMS + Nuxt.js + Vue.js のコンテンツを GitHub Actions でビルド&デプロイする

こんにちは! SRE を担当している多田です(@tada_infra). microCMS + Nuxt.js + Vue.js のコンテンツを GitHub Actions を使ってビルド,S3 にコンテンツを配備する設定を行いました.また,コンテンツが更新された時にも自動でデプロイされるような設定も行った…