本記事について
当サイトを閲覧いただきありがとうございます。 本記事はシリーズ『生成AI時代のアーキテクチャ超入門』の「付録」カテゴリ第2弾として、ベストプラクティス集を解説する記事です。
アンチパターン集が「踏んではいけない地雷」の逆引きだったのに対し、本記事は迷ったらまずこれの正引きカタログ。各分野で退屈だが裏切らない標準構成を1分野1枚に凝縮しています。新規プロジェクトの骨組み決定・レビュー前の最終確認・他チームへの説明資料の下敷きにご利用ください。
付録カテゴリの全記事一覧は以下のページにまとめています。
本記事のテーマについてさらに詳しく知りたい方は『アーキテクトの教科書』も参考にしてみてください。
そもそもベストプラクティスとは何か
安全運転の基本を思い浮かべてください。「車間距離を取る」「ミラーを確認する」「制限速度を守る」──派手なテクニックではありませんが、これを守るだけで事故の大半は防げます。上級テクニックは基本を押さえた上での話です。
ベストプラクティスはアーキテクチャ版の安全運転ルールです。各分野で「迷ったらまずこれ」と言える、退屈だが裏切らない標準構成を集めたものです。
もしベストプラクティスを知らずに独自路線を走ると、車輪の再発明を繰り返し、先人が既に解決した問題に時間を浪費します。まず鉄板を押さえてから、自分たちに合わせてカスタマイズするのが実務の王道です。
なぜベストプラクティスを学ぶ必要があるのか
「迷う時間」を最小化できるから
新しいプロジェクトの設計で最も時間を消費するのは、選択肢が多すぎてどれを選べばいいか分からない状態です。ベストプラクティスは「迷ったらまずこれ」の出発点を与えてくれます。標準から外れる場合だけ理由を考えれば良いので、意思決定のスピードが劇的に上がります。
車輪の再発明を防げるから
先人が試行錯誤の末に辿り着いた標準構成を知らないと、既に解決済みの問題に独自のアプローチで挑み、時間と予算を浪費します。独自実装は脆弱性やメンテナンスコストの温床にもなるため、標準に乗れるところは乗るのが合理的です。
「なぜ外すのか」を説明する基準線になるから
ベストプラクティスを知っていれば、あえて標準から外す判断をする際に「標準はXだが、この文脈ではYの方が適切。理由は〜」と根拠を明文化できます。基準線がない状態では、全ての選択が「なんとなく」になり、後から検証も改善もできません。
アーキテクチャ全般の鉄板
個別の技術選定より前に、設計に向かう姿勢として業界で広く効く原則です。どれも地味ですが、これを守っているだけで「炎上プロジェクト」のリストからは外れます。
| プラクティス | 内容 | 根拠 |
|---|---|---|
| YAGNI(今必要な分だけ) | 使うか不明な層・抽象は作らない | 未使用コードが技術的負債の主犯 |
| Choose Boring Technology | 実績2〜3年以上の選択肢を優先 | 情報量・採用事例がハルシネーションを抑える |
| ADRで判断理由を残す | なぜその選択をしたかを1ページで記録 | 3年後の自分と後任が最大の読者 |
| 標準ライブラリ/SaaS優先 | 車輪の再発明を避ける | 独自実装は脆弱性とメンテコストの温床 |
| 必ず計測してから選ぶ | 「速い気がする」は根拠にならない | 体感と実測は3割ズレるのが普通 |
判断理由が文書化された技術的妥協は、無文書の技術的正解より長期運用では強い。
インフラ・デプロイの鉄板
クラウド・実行環境の定番はスタートアップも中堅もまずはこれで9割外しません。K8s やマルチクラウドへの背伸びが必要になるのは、売上やチーム規模が相当大きくなってからです。
| プラクティス | 内容 | 適用フェーズ |
|---|---|---|
| 単一クラウドに寄せる | AWS か GCP か Azure の1択 | 全フェーズ(売上100億円規模まで) |
| ECS Fargate/Cloud Run | コンテナ運用の標準 | MVP〜中規模まで K8s より先に試す |
| Terraform/CDKで全リソース管理 | 手動構築を一切禁止 | 開発1人目から導入 |
| RDSはプライベートサブネット | DBを公開ネットワークに置かない | 例外なし |
| AZ 2本・RTO 1時間/RPO 15分 | 可用性の最低ライン | 業務システムの最低目標 |
段階別の実務テーブルとして、MVP は ECS Fargate 1AZ・RDS t4g.small で月数千円。成長期(DAU 10万〜)は 2AZ + Auto Scaling + CloudFront。エンタープライズ(社内業務・規制あり)は Multi-AZ + VPC エンドポイント + AWS Control Tower。
本命は単一クラウド + マネージドサービス。分散や自前は、9割のチームには早すぎます。
データの鉄板
データアーキテクチャはアプリと違って作り直せないため、最初の選択が5年後まで効きます。RDB + 厳密なスキーマ定義を中核に据えるのが現時点の業界相場で、AI 活用の前提でもここは変わりません。
| プラクティス | 内容 | 理由 |
|---|---|---|
| PostgreSQLを第一候補 | スキーマ・JSONB・pgvector・拡張性すべて備える | スキーマレスへの逃げを封じる |
| OLTPとOLAPを早期分離 | 業務DBと分析DBを混ぜない | 本番DBでの分析クエリは鬼門 |
| 履歴テーブルorイベントソーシング | 上書き更新せず履歴を残す | 監査・AI学習・障害分析すべてで効く |
| dbt tests/Great Expectations | データ品質を自動検証 | 不整合は気づいた時には数万件 |
| バックアップはリストア演習まで | 復旧検証を四半期に1回 | 取れているだけでは意味なし |
数値Gateの例として、テーブル1000万行以上はパーティション、10k RPS を超えたらストリーミング(Kafka/Kinesis)、DWH は Redshift/BigQuery/Snowflake から選定。
データアーキテクチャの失敗は、アプリケーションアーキテクチャの失敗より5倍重い。ここの妥協は5年先まで尾を引きます。
アプリケーションの鉄板
コード設計は「1ファイル300行・1メソッド50行・ネスト3段」の素朴な数値を守るだけで、大半の保守性問題は予防できます。DDD や Clean Architecture の派手な理論より、まず素朴な上限を決めるほうが効きます。
| プラクティス | 内容 | 閾値の目安 |
|---|---|---|
| 単一責任原則で分割 | 1クラス・1ファイル・1メソッドに1つの責任 | 1ファイル300行・1メソッド50行 |
| ビジネスロジックはアプリ側 | ストアドプロシージャに寄せない | DB移行可能性を確保 |
| エラーは握りつぶさない | catchしたらログ + 再スロー | 握りつぶしは障害発覚の致命傷 |
| ドメイン用語で命名 | data・manager・utilを避ける | コードの意図を読める命名 |
| コンストラクタ注入 | 全staticを避ける | テスト可能性の土台 |
| Optional/Result型 | nullの代わりに型で表現 | nullチェック漏れの撲滅 |
素朴な数値上限を守る地味なチームは、複雑な設計論を振りかざすチームより5年後の生産性が高いです。
フロントエンドの鉄板
フロントはメタフレームワーク + ユーティリティCSS + マネージド認証の3点セットが現時点の業界標準です。自作認証・独自 CSS 設計・生の React ルーティングは、工数に見合うリターンが出にくい選択です。
| プラクティス | 内容 | 代表例 |
|---|---|---|
| メタフレームワーク採用 | ルーティング・SSR・ビルドを自作しない | Next.js/Astro/Remix |
| JWTはHttpOnly Cookie + BFF | localStorage 保存は禁止 | BFF 経由でトークンを隠す |
| 認証はSaaSに委譲 | Clerk/Auth.js/Auth0/Cognito | 自前実装は脆弱性の温床 |
| Tailwind + shadcn/ui | 独自CSS設計システムを作らない | 人材確保・学習コスト最適 |
| 画像はCDN変換 + WebP/AVIF | LCP 2.5秒以下を目標 | Core Web Vitals対策 |
| JSバンドルは170KB(gzip後) | コード分割で段階配信 | 3G端末でも初期描画3秒 |
SEO 重視なら SSG/ISR、ダッシュボード系なら CSR + API、コンテンツ + 対話なら SSR + RSCで使い分けるのが現在の相場です。
「素のReactで自前ルーティング」は、現在の業界で筋が悪い選択。メタフレームワークに乗るのが鉄板です。
セキュリティの鉄板
セキュリティは最初に標準装備するのが最もコストが低く、後から足すと100倍高くつきます。自前実装を徹底的に避け、委譲・多層防御・最小権限で組むのが業界の定石です。
| プラクティス | 内容 | 必達レベル |
|---|---|---|
| 認証はIDaaSに委譲 | Auth0/Cognito/Clerk/Okta | 新規サービスの初日から |
| MFA全ユーザー必須化 | SMSより TOTP/Passkey | 管理者は例外なし |
| Passkey対応を標準化 | FIDO2 ベースのパスワードレス | 現在、新規サービスでは標準 |
| TLS 1.3必須・1.2最低 | 1.0/1.1を廃止 | 全通信で強制 |
| 秘密情報はVault/Secret Manager | Git への混入を pre-commit hook で検知 | 開発初日から |
| ゼロトラスト前提 | VPN内を信頼しない | 全リクエストで認証 |
| ログのPIIマスキング | 個人情報を生ログに出さない | 個人情報保護法対応 |
自作するな、委譲しろがセキュリティの鉄則。独自実装が正当化される組織は国内に数社しかありません。
監視・運用の鉄板
「動いている」と「監視できている」は別物です。可視化の仕組みを最初から組み込み、人間の勘ではなく数値で運用を回すのが SRE 的な標準構成です。
| プラクティス | 内容 | 目標値 |
|---|---|---|
| 構造化ログ(JSON)標準化 | 検索・集計を前提にした形式 | 1日から導入 |
| SLO/SLI/エラーバジェット | 可用性を数値で議論 | 99.9%(月43分ダウンまで) |
| 3本柱を揃える | メトリクス・ログ・トレースの統合 | Datadog/New Relic/Grafana Stack |
| オンコール + PagerDuty | アラートを確実に人に届ける | 夜間対応は必ず当番制 |
| ランブック整備 | 主要障害の対応手順を文書化 | 新人が夜間対応できる粒度 |
| ポストモーテム必須 | 障害後に原因と対策を記録 | 責任追及ではなく再発防止 |
| CI/CD経由のみで本番変更 | 本番SSHを禁止 | 再現性・監査可能性の担保 |
可視化されていないものは存在しないのと同じ、が運用業界の共通認識です。
プロセス・組織の鉄板
技術選定が正しくても、プロセスで失敗するプロジェクトが実は最も多い領域です。意思決定の記録・段階移行・発注側の理解の3つが長期運用の成否を決めます。
| プラクティス | 内容 | 効果 |
|---|---|---|
| ADRで決定記録を残す | 「なぜ」を1ページで文書化 | 3年後に誰も答えられない問題を予防 |
| Strangler Figで段階移行 | ビッグバン刷新を避ける | 数年・数億の炎上を回避 |
| PoC → 本実装の順序 | 不確実性が高い技術は必ず先に検証 | 見積もり精度が2倍以上変わる |
| アーキテクトと実装者を混ぜる | 孤立した理想論を避ける | 現場と整合する設計を担保 |
| Conway’s Lawを逆利用 | 組織構造からシステム境界を逆算 | チーム境界とAPI境界を揃える |
| 発注側もアーキテクチャを理解 | ベンダー丸投げを避ける | 運用引き継ぎを可能にする |
「動かしている技術の中身を発注側が理解していない」状態は、いずれ必ず爆発します。これは業界の共通認識です。
AI時代の鉄板
AI 駆動開発が前提になると、AIが流暢に書けるか・読めるかが選定軸の中心に入ります。主流フレームワーク・型安全・宣言的・CLI操作の4つが AI との相性を決めます。
| プラクティス | 内容 | AI時代の効き |
|---|---|---|
| 主流フレームワークに寄せる | Next.js/Django/Rails/FastAPI | 学習データ量が生産性を決める |
| 型とスキーマを明示 | TypeScript/Pydantic/dbtモデル | AIのハルシネーションを抑制 |
| CLI/API/IaCで操作可能なツール | GUI専用ツールを避ける | AI に操作を任せられる |
| データカタログとメタデータ整備 | 説明文・タグ・関係性を記載 | RAG・AIエージェントの精度が跳ねる |
| AI生成コードも通常レビュー | 検査なしデプロイを禁止 | 脆弱性の本番流入を防ぐ |
| pgvector/Pinecone前提の設計 | ベクトル検索を後付けしない | RAG機能の追加コストを下げる |
現在の設計原則はAIが流暢に書ける・読めるという軸が中心。この軸で選ぶと、長期保守の観点では人間側にも利益が返ってくる場面が多くなります(短期的にはIaC等の冗長化コストはありますが、引き継ぎやすさ・属人化回避という長期メリットが上回ります)。
「退屈な技術」で勝つ組み合わせ
Stack Overflowが .NET + SQL Server + Redis の保守的スタックで月間1億アクセスを9台のサーバーで捌いた話は、「退屈な技術」を選んだ勝者の典型として業界で語り継がれています。逆に Uber が2,200以上のマイクロサービスに分割した後、開発体験の悪化で DOMA(Domain-Oriented Microservice Architecture)への再統合を進めた事例は、「できる分割の最大値をやった結果の反省」として頻繁に引き合いに出されます。
現時点の外さない鉄板組み合わせは以下です。新規プロジェクトで迷ったら、まずこの構成から引いて、外す必要がある要素だけ差し替えるのが現実解です。
| 層 | 鉄板 |
|---|---|
| クラウド | AWS(東京リージョン) |
| 実行環境 | ECS Fargate |
| DB | PostgreSQL + pgvector |
| バックエンド | Python(FastAPI/Django)or Go |
| フロントエンド | Next.js + Tailwind + shadcn/ui |
| 認証 | Clerk or Auth.js |
| 監視 | Datadog or Grafana Cloud |
| IaC | Terraform |
| CI/CD | GitHub Actions |
退屈な構成を5年間まっすぐ動かせるチームが、結局のところ一番強いチームです。
| 「カンファレンスの最先端事例」を10人チームで真似る | 規模・予算が前提と違い、本命の機能開発に手が回らなくなる | | 「自前実装の方が学べる」とプロダクションで学習 | 脆弱性・メンテコストの温床、SaaS委譲が鉄則 |
AI判断軸
| AI有利 | AI不利 |
|---|---|
| 主流FW(Next.js/Django/Rails) | ニッチFW・独自言語 |
| 型・スキーマ明示(TypeScript/Pydantic) | 型なし・スキーマレス |
| マネージド + IaC(Terraform/CDK) | 手動構築・GUI操作 |
| pgvector/Pinecone前提の設計 | ベクトルDB対応なし |
- 標準・多数派 — 情報量と人材確保のしやすさが長期で効く
- マネージド/SaaS — 自前実装より脆弱性・運用コストで圧勝
- 型安全・宣言的 — AI時代の精度と保守性を底上げ
- 段階移行可能 — ビッグバン刷新を避け、差し替え余地を残す
鉄板スタックを選ぶとAIの恩恵が自動的に最大化される
ベストプラクティスとして「標準・多数派を選ぶ」という原則は以前から存在していましたが、AI時代にはこの原則の効果が倍増しています。理由は、AIの生成精度がそのまま学習データの量に比例するためです。
Next.js、Django、Rails、Spring Boot──こうした主流フレームワークは世界中の開発者がGitHubに公開しているコードが膨大にあるため、AIが正確なコードを生成できる確率が高くなります。ベストプラクティスを愚直に守るだけで、AI活用の恩恵を追加コストなしに享受できる構造になっています。
逆に、技術的な好奇心からニッチなフレームワークを採用した場合、AIの支援がほぼ得られない状態で開発を進めることになります。5年前は「人材確保が難しくなる」が主なリスクでしたが、2026年は「AI活用の恩恵を受けられない」というコストが加わっています。
型安全+宣言的な構成がAI時代のベストプラクティスの核
TypeScript、Pydantic、Zod、Prisma、Terraform──これらに共通するのは「型やスキーマを宣言的に定義する」設計思想です。この設計思想がAI時代のベストプラクティスの核になっています。
宣言的な定義があると、AIは「何が正しい出力か」を型情報から判断できるため、生成コードの型エラーが減少します。型定義がない言語(Python素のdict、JavaScript等)ではAIが返すコードの型安全性を人間が毎回確認する必要があり、生産性向上の幅が狭まります。
既存プロジェクトに後から型を追加するのは大きなコストがかかるため、新規プロジェクトでは最初から型安全な技術選定をすることが、長期的なベストプラクティスになっています。
筆者メモ — 「鉄板」を選ぶのは気恥ずかしさとの戦い
アーキテクトの仕事で意外と難しいのは、「最新」「かっこいい」「勉強になる」という3つの誘惑を振り切ることだと業界で繰り返し語られています。カンファレンスで紹介される最先端事例は、ほぼ例外なく「相当な規模・相当なチーム・相当な予算」が前提になっており、それを10人のチームが真似ると、本命の機能開発に手が回らなくなるケースが多いと示唆されています。
Shopify が Ruby on Rails をモノリスのまま巨大スケールまで運用し続けている話、Basecamp が HEY というメールサービスを意図的に「退屈な技術」で構築した話、Amazon ですら S3 の裏側で20年以上 C++ と内製 RPC を使い続けている話は、全て退屈さを受け入れる勇気が勝者の共通項だと示唆する典型例です。
気恥ずかしさを受け入れて標準に寄せたチームが、5年後に淡々と動かし続けている事例が多数報告されています。アーキテクトが誇れるべきは「使っている技術の新しさ」ではなく、「プロダクトが5年間止まらずに動いていること」──これを忘れないのが、長く現場を回せる人の共通項です。
自己診断チェックリスト
鉄板を押さえられているかを確認できます。3つ以上該当しないならレッドゾーンで、該当する分野を見直す価値があります。
- 本番環境はADRで意思決定記録を残している
- Terraform/CDKで全リソースを管理している(手動構築なし)
- RDS/DBは必ずプライベートサブネットに配置している
- 認証はIDaaS(Auth0/Cognito/Clerk等)に委譲している
- MFAを全ユーザー必須化している
- 構造化ログ(JSON)で出力している
- SLOを明示的に数値で定義している(99.9%など)
- 本番への変更は必ずCI/CD経由で行っている
- 主要障害のランブックが文書化されている
- バックアップからのリストア演習を定期的に行っている
まとめ
本記事はベストプラクティス集について、全分野鉄板・退屈な技術・AI時代の標準構成・5年後も淡々と動かす設計姿勢まで含めて解説しました。如何だったでしょうか。
標準に寄せ、マネージドに委譲し、型で締め、段階で移す。これが2026年のベストプラクティスの現実解です。
次回は「重大インシデント事例集」について解説します。Knight Capital・Equifax・SolarWinds・CrowdStrike など、業界が払った数百億円規模の代償から学ぶ実践リファレンスを掘り下げる予定です。
シリーズ目次に戻る → 『生成AI時代のアーキテクチャ超入門』の歩き方
本記事で扱った内容の詳細は AWS Well-Architected フレームワーク も合わせて参考にしてください。
それでは次の記事も閲覧いただけると幸いです。
📚 シリーズ:生成AI時代のアーキテクチャ超入門(88/89)
