[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】【Lambda】NFC 名刺のアクセスカウンターを Lambda Function URL + DynamoDB で作る [Qiita_Trend] | Summary by TechDistill

> Source: Qiita_Trend
Execute Primary Source

// Problem

筆者が、イベントで配布するNFC名刺のアクセス数を把握したいと考えた。しかし、Google Analytics等の外部サービスを導入するほどではない小規模な用途に対し、最適な計測手法を見出す必要があった。
  • 外部サービス導入に伴う設定や学習コストの回避。
  • 名刺に記載するURLにクエリパラメータを含めず、見た目を美しく保つ必要性。
  • ブラウザのページ離脱時でも、ユーザー体験を損なわずに確実にデータを送信する仕組みの確保。
  • 低コストかつ、管理の手間が最小限である構成の実現。

// Approach

筆者が、管理コストと運用コストを最小化するために、AWSのサーバーレス機能を組み合わせた軽量な構成を採用した。
  • Lambda Function URLの採用:API Gatewayを介さず、単一エンドポイントをシンプルに構築。
  • DynamoDBのUpdateItem (ADD) 利用:アイテムの自動作成とアトミックなインクリメントを両立。
  • CloudFront Functionsによるパス書き換え:/nfc 等のクリーンなURLを実現。
  • navigator.sendBeacon() の利用:ブラウザのバックグラウンド送信により、計測によるUX低下を防止。
  • AWS CDKによるインフラのコード化:環境構築の再現性と管理性を向上。

// Result

筆者が、この構成を実装した結果、実質ほぼ0円という極めて低コストな運用を実現した。
  • LambdaとCloudFront Functionsは無料枠内で運用可能。
  • DynamoDBも数千リクエスト程度なら月額1円未満。
  • 集計用ダッシュボードも実装し、日付や経路別のカウントを容易に確認可能。
  • NFC名刺の利用において、実用的な計測環境を迅速に構築できた。

Senior Engineer Insight

> 小規模用途として、非常に合理的かつ「筋が良い」構成だ。API Gatewayを避ける判断や、sendBeaconによるUX維持は実践的である。ただし、Function URLの公開性と、集計時のscan操作は、規模拡大時に致命的なボトルネックとなる。商用展開を見据えるなら、認証層の追加と、GSIを用いたQueryへの移行が必須条件となる。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。