このプロジェクトについて

これは AWS 上でフルスタックソリューションをデプロイする CDK サーバーレスのウェブサイトアナリティクス構成です。フロントエンドダッシュボード、バックエンド API、およびインジェストパイプラインを作成し、ウェブサイトトラフィックとユーザーインタラクションを追跡します。低〜中程度のトラフィックのサイト(最大 10M ページビュー)向けに設計されており、最小限のコスト、プライバシー(PII は保存されません)、導入の容易さを重視しています。 機能には、ページ滞在時間を含むページビュー追跡、イベント追跡、アラート付きの異常検出、カスタムドメインサポート、そして 3 つの認証オプション(なし、基本認証、AWS Cognito)が含まれます。参照元、国/市レベルのジオロケーション、デバイス種類、UTM パラメータ、クエリパラメータを追跡します。ボット検出は組み込まれています。スタンドアロンの JavaScript スニペットまたは任意のフロントエンドフレームワークで使用できる SDK を介して統合できます。 アーキテクチャは、S3/CloudFront 上にホストされる Vue 3 フロントエンド、Lambda Function URLs と tRPC を使用した TypeScript バックエンド、そして Kinesis Firehose を介してイベントをバッファリングし S3 のパーティション分割された Parquet ファイルに格納するインジェスト API から構成されます。データは Athena を介してクエリされます。ロケーションデータは IP を保存せずに MaxMind GeoLite2 から導出されます。 デプロイには `aws-cdk` と `aws-cdk-lib` > 2.79.1 が必要です。npm パッケージをインストール後、ユーザーはサイト、オリジン、認証、ドメイン、可観測性、異常検出の設定を含む CDK スタックにこの構成を定義します。クライアント側のセットアップは、アプリケーションにスクリプトタグを追加するか、SDK を初期化することで行われます。 さまざまなトラフィックレベルに対するコスト見積もりが提供されますが、毎日のデータ真空プロセスにより、最悪ケースの予測は実際のコストよりも大幅に高くなります。v0 から v1 へのアップグレードは、パーティション分割と DNS レコード ID に関連する破壊的変更を含みます。 ドキュメントには設計上の決定、貢献ガイドライン、詳細なコスト内訳が含まれます。ライブデモが利用可能です。