技術記事
nagiyu のサービス開発で得た技術知見・アーキテクチャ解説を公開しています。
AWS CDK で IAM 最小権限を設計する:Grant メソッドと PolicyStatement の使い分け
AWS CDK でコンストラクト間の権限を付与する方法を解説。Grant メソッド・addToRolePolicy・PolicyStatement の使い分け、ARN のハードコードを避けるテクニック、ユニットテストによる権限検証まで実運用ベースで整理します。
2026-05-21Next.js 16 Metadata API で SEO・OGP・JSON-LD を整える
Next.js 16 App Router の Metadata API を使って、title・description・OGP・Twitter Card・canonical・JSON-LD を体系的に管理する方法を解説。SSG ページと動的ページそれぞれの設定パターンを実装例で紹介します。
2026-04-30EventBridge Scheduler で定期バッチを置き換える
AWS EventBridge Scheduler を使って cron / 定期バッチを移行する方法を解説。Schedule Expression・Target・Dead Letter Queue・既存 EventBridge Rules との違いまで実例で示します。
2026-04-29Next.js generateStaticParams 完全ガイド:SSG の動的ルートを使いこなす
Next.js App Router の generateStaticParams を使って動的ルートを SSG ビルド時に展開する方法を解説。複数階層の動的ルート・dynamicParams・部分的 SSG(ISR)・型安全な実装まで網羅します。
2026-04-28Amazon Cognito User Pool で OAuth 認証を実装する
Amazon Cognito User Pool を使って Web アプリに OAuth 2.0 / OIDC 認証を実装する手順を解説。User Pool・App Client・Hosted UI・トークン検証・リフレッシュフローまで実装コードベースで紹介します。
2026-04-26ECS Fargate と Lambda の使い分け基準を実運用で整理する
AWS の ECS Fargate と Lambda、どちらでサービスを動かすべきか迷う場面の判断基準を整理。コールドスタート・常時稼働コスト・実行時間・依存ライブラリサイズなど、実運用で効いてくる観点ごとに比較します。
2026-04-25CloudFront キャッシュ戦略:TTL・Cache-Control・Invalidation の実践
CloudFront のキャッシュを正しく効かせるための TTL 設定・Cache-Control ヘッダ設計・キャッシュキー・Invalidation の使いどころを実運用ベースで解説します。Next.js を CloudFront の背後に置く構成を例に取ります。
2026-04-22React Server Components の境界設計:use client をどこに置くか
Next.js App Router の React Server Components で `use client` をどこに引くべきかを実装パターンで整理。データ取得・インタラクション・props のシリアライズ可否・パフォーマンス影響を踏まえた実用的な指針を解説します。
2026-04-20S3 Presigned URL でブラウザから直接安全にアップロード/ダウンロードする
S3 Presigned URL を使って、認証情報をクライアントに渡さずブラウザから S3 へ直接アップロード・ダウンロードする実装方法を解説。期限・サイズ制限・Content-Type 拘束など、本番運用で必要なセキュリティ設計まで踏み込みます。
2026-04-18AWS SES でトランザクションメールを送る:認証・到達率・運用
AWS SES(Simple Email Service)でユーザー登録確認・パスワードリセット・通知などのトランザクションメールを送る実装方法を解説。SPF/DKIM/DMARC の設定・送信制限解除・バウンス処理まで実運用観点で整理します。
2026-04-16Material-UI v7 と Next.js App Router の SSR を両立する ThemeRegistry 実装
MUI(Material-UI)v7 と Next.js App Router の Server Components で SSR とスタイル一貫性を両立する ThemeRegistry の実装方法を解説。Emotion キャッシュ・ハイドレーション・テーマ切替まで網羅します。
2026-04-15AWS WAF で Web アプリを守る:ルール設計と運用のコツ
CloudFront / ALB の前段に AWS WAF を置いて Web アプリを守るための、Managed Rules・Rate-based Rules・カスタムルールの組み合わせ方を整理。誤検知を抑える運用フローも実例で紹介します。
2026-04-14ECR ライフサイクルポリシーで古いイメージを自動削除する
Amazon ECR のライフサイクルポリシーを使って古いコンテナイメージを自動削除する設定を解説。タグ付きと untagged の使い分け・rollback 用イメージの保護・コスト削減効果まで実例で紹介します。
2026-04-12AWS Batchで重い処理をサーバーレス化する構成解説
動画変換・画像処理などの重いバッチ処理をAWS Batchでサーバーレス化する構成を解説。ジョブ定義・ジョブキュー・コンピューティング環境・S3トリガー・コスト最適化まで詳しく説明します。
2026-04-10CloudFront+ECSでNext.jsをデプロイする構成解説
CloudFront + ECS FargateでNext.jsをデプロイするAWS構成を解説。ECSサービス設定・ALB構成・CloudFrontディストリビューション・キャッシュ設定・GitHub ActionsでのCI/CDまで詳しく説明します。
2026-04-10Next.jsでMarkdownを静的ページに変換する実装方法
Next.jsのSSGとMarkdownファイルを組み合わせた静的サイト生成の実装方法を解説。gray-matterによるフロントマター解析・remark/rehypeによるレンダリング・generateStaticParamsの活用まで詳しく説明します。
2026-04-10Web Push通知をVAPIDキーで実装する方法
VAPIDキーを使ったWeb Push通知の実装方法を解説。サービスワーカーの設定・Push APIのサブスクリプション管理・web-pushライブラリでのサーバーサイド送信・ブラウザサポートまで詳しく説明します。
2026-04-10H.264・VP9・AV1のコーデック比較と使い分け
動画コーデックH.264・VP9・AV1の詳細比較。圧縮効率・ブラウザサポート・エンコード速度・画質・用途ごとの使い分けをFFmpegのコマンド例とともに解説します。
2026-04-10Playwright E2E テストを GitHub Actions で並列実行する
Playwright の E2E テストを GitHub Actions のマトリクスとシャーディング機能で並列実行し、CI 時間を短縮する手法を解説。flake 対策・アーティファクト収集・モバイル/デスクトップ複数 viewport 対応まで実運用ベースで紹介します。
2026-04-08CloudFront Functions と Lambda@Edge の使い分け
AWS CloudFront のエッジで実行する 2 つのコンピュート、CloudFront Functions と Lambda@Edge を比較。実行タイミング・対応言語・できること・コストを整理し、用途別の使い分け指針をまとめます。
2026-04-06Docker multi-stage build で Next.js standalone をスリム化する
Next.js の standalone モードと Docker multi-stage build を組み合わせて、本番イメージサイズを最小化する手法を解説。Alpine ベース・依存最小化・ECR への push まで一連の流れを示します。
2026-04-05Lambda コールドスタート対策:Provisioned Concurrency と SnapStart の使い分け
AWS Lambda のコールドスタートを抑える 2 大手法、Provisioned Concurrency と SnapStart の仕組み・コスト・対応ランタイムを比較。実運用で「どちらをどう使うか」を判断するための整理。
2026-04-03GitHub Actions でモノレポの差分デプロイを実装する
モノレポ構成で GitHub Actions を使い、変更があったサービスだけをデプロイするワークフローの実装方法を解説。paths フィルタ・dorny/paths-filter・依存ライブラリ変更時の波及・並列実行までカバーします。
2026-04-02TypeScript の discriminated union で API レスポンスを安全に扱う
TypeScript の discriminated union(判別可能な共用体)を使って、API のレスポンス・状態管理・エラー型を網羅的かつ型安全に扱う方法を解説。switch の網羅性チェック・Zod との連携・実務で効くパターンを整理します。
2026-03-30Web Push 通知のサーバー実装:VAPID と web-push ライブラリ
Web Push 通知を自前のサーバーから配信するサーバー側実装を解説。VAPID キーの生成・サブスクリプション保存・web-push ライブラリでの送信・エラーハンドリング・スケール時の注意点まで実例で示します。
2026-03-27Zod でランタイムバリデーションと型推論を両立する
Zod を使って API 入力・環境変数・外部 API レスポンスをランタイムでバリデーションしつつ、TypeScript の型推論も活かす実装方法を解説。スキーマ設計・エラーハンドリング・パフォーマンスの観点まで踏み込みます。
2026-03-25AWS Batch ジョブの並列度を制御する:array job と vCPU クォータ
AWS Batch でバッチ処理を並列実行する際の並列度制御方法を解説。array job の使い方・compute environment の vCPU 上限・ジョブキューの優先度・依存関係の表現まで実運用ベースで整理します。
2026-03-22monorepo + npm workspaces で TypeScript パッケージを共有する
モノレポ構成で TypeScript の型・関数・コンポーネントを複数アプリ間で共有する実装方法を解説。npm workspaces の設定・パッケージ間参照・ビルド順序・デプロイ時の依存解決まで実運用ベースで整理します。
2026-03-20DynamoDB single-table design 入門:パーティションキーと GSI の設計
DynamoDB の single-table design(単一テーブル設計)の基本を、複数エンティティをひとつのテーブルに格納する具体的な設計例で解説。パーティションキー・ソートキー・GSI の使い分け、アクセスパターンからの逆算手順まで整理します。
2026-03-17TypeScript strict mode で書く型安全な Repository パターン
TypeScript の strict モードで Repository パターンを実装する具体的な方法を解説。エンティティ型の定義・null と undefined の扱い・トランザクション・テスト容易性まで、実プロダクトで効く型設計を整理します。
2026-03-15