maybe daily dev notes

私の開発日誌

AWS

TIL: AWS SDK for JavaScript v3 で s3.GetObject する最新の方法

最近はもっぱらNode.jsのAWS SDKはv3を使っているのですが、一つ大きな不満がありました。 それは s3.GetObject がv2よりも使いづらかった点です。ユーザーはS3のファイルを読み込むために ReadableStream をなめていくコード (例) を自分で書く必要がありま…

TIL: ソフトウェア文脈における modal behavior とは

最近話題になっている AWS Fault Isolation Boundaries を読んでいると、こんな言葉が目に入った: Allowing individual workloads to make their own failover decisions makes the coordination less complex, but introduces modal behavior through the s…

AWS CDK Tips: スタックの分け方について

AWS CDKのスタック、まとめてますか?分けてますか?分けている方はどういう基準で分けていますか? この議論は人によって割と意見の分かれることも多く、最高の飲み会ネタになるでしょう。今日は私見も交えながら、CDKのスタック分割法についてまとめてみた…

AWS CDKのおもしろいバグを直した (Unhandled rejection編)

先日自分が修正してマージされたAWS CDKのバグが個人的には結構面白かったので、ざっくりとまとめます。 github.com どういうバグか CDKのhotswapデプロイ*1をするとき、hotswapできそうでできない変更が2つ以上あると、CDKがクラッシュするという現象が起き…

AWSでn秒ごとのループ処理、どうする?

はじめに サービスを開発していると、n秒ごとに何らかの処理を定期実行したい要件が見つかることがあります。 例えば、10秒ごとにあるAPIエンドポイントにアクセスして結果を保存したいなどです。この記事ではこのような機能の実装方法について考えます。 Ev…

趣味Webサービスをサーバーレスで作る ― 格安編

はじめに 最近AWSのサーバーレスサービスで作るWebサービスの雛形を公開してみた*1。小規模サービスならかなり安く (ほぼ無料になるケースも多そう) で運用できるので、割と良い選択になる場面も多いと考えている。今日はその布教記事。 github.com 全体構成…

DynamoDB、シングルテーブルにするか否か

はじめに DynamoDBを使っていると、とかくテーブルは1つにまとめるべきという声や、複数テーブルからシングルテーブル設計に移行したという事例を耳にすることがあります。 しかし、その理由を聞いてみると、性能のためだったり管理を簡単にするためだったり…

AWS Lambdaだけでアンケートフォームを作れる

Lambda function URL活用案件として、Lambdaだけを使ってアンケートフォームを作ってみた。 実際は回答の閲覧用にSlackも使ってるが、ほかは本当にLambdaだけ。アーキテクチャ コード 冗長な部分もあるので、要点だけ抜粋。フルのコードはこちらに載せた。 …

NodeJsFunctionのビルド時に依存関係を解決する3つの方法

タイトルの通り、AWS CDKのNodeJsFunctionを使う時に依存関係を解決する方法が数パターンあるので比較してみる。 例 今回は、以下のTypeScriptのLambdaをデプロイするケースを考える。 // よくあるAPI GatewayのLambda Authorizer import { APIGatewayReques…