📄
概念 📚 beginner-stepup

SNSアプリの最終インフラ構成図

6ヶ月のカリキュラムを通して組み上げる SNS アプリの最終形(AWS 本番インフラ)を事前に俯瞰する

このドキュメントは、カリキュラム全体を通して「最終的に何を組み上げるのか」を最初に俯瞰するための 北極星 です。 個別の技術(React / Hono / Docker / AWS など)を学ぶときも、常にこの図の「どのピースを今作っているか」を意識することで、点の知識が線でつながります。


最終インフラ構成図

SNSアプリの最終インフラ構成図

構成要素と、関連する beginner-stepup docs

コンポーネント役割関連 docs
CloudFrontCDN・HTTPS 終端・エッジキャッシュb05 Webアーキ / b17 ホスティング
S3React SPA(静的ファイル)の配信元b17 ホスティング
ALB(Application Load Balancer)HTTP(S) を受けて EC2 に振り分けるb05 Webアーキ / b06 HTTP/REST
App EC2(private subnet)Docker Compose 上で Hono API を動かすb13 API設計 / b17 ホスティング
RDS PostgreSQL(private subnet)永続データストアb15 DB設計 / b16 マイグレーション
Bastion EC2(public subnet)管理 SSH の踏み台(private リソースへの穴)b01 シェル / b07 認証・認可
VPCAWS ネットワーク境界。public/private subnet に分離b17 ホスティング
GitHub ActionsCI/CD(build / test / deploy)b19 CI/CD
環境変数 / Secrets ManagerDB 接続文字列・JWT secret 等の秘匿管理b18 環境変数

通信経路(リクエストの流れ)

ユーザーからのアクセス

ブラウザ
  ↓ HTTPS
CloudFront
  ├─ /            → S3(React SPA の index.html)
  └─ /api/*       → ALB → App EC2(Hono API)
                          ↓ SQL over SSL
                        RDS PostgreSQL

管理者の運用アクセス(SSH ProxyJump)

管理者の PC
  ↓ SSH
Bastion EC2(public subnet)
  ↓ SSH(VPC 内通信)
App EC2(private subnet)
  ↓ psql
RDS PostgreSQL

Private subnet のリソースはインターネットから直接アクセス不能。 「踏み台を経由して VPC の中に入る」が AWS セキュリティの基本パターン。


なぜこの構成なのか(学習ポイント)

1. Public / Private Subnet 分離

  • Public subnet: インターネットからの窓口(ALB・Bastion)
  • Private subnet: アプリ本体・DB(外部から直接触れない)
  • セキュリティ境界を明示する設計

2. コンテナ化(Docker Compose)

  • アプリを環境に依存しない形でパッケージング
  • ローカル開発 → EC2 本番 → 同じコンテナイメージで動く
  • 再現性・デプロイの高速化

3. CloudFront + S3(フロント)

  • 静的ファイルは CDN で高速配信
  • サーバー不要 → コスト低
  • グローバル配信(世界中から速い)

4. ALB + EC2(API)

  • 将来的な水平スケールへの布石(ALB 配下に複数 EC2 を並べられる)
  • ヘルスチェック・スティッキーセッション等の機能

5. Bastion 踏み台

  • Private リソースへの SSH アクセス経路を 1 箇所に集約
  • ログ・アクセス制御を1台に集中できる
  • 「最小権限の法則」の実践例

6ヶ月で組み上げるピースのマップ

Month組み上げるピース
Month 1上図のピースをローカル開発として凝縮した状態(web + api + Docker PostgreSQL)で動かす
Month 2要求から要件を起こし、自前アプリとしてコード再設計
Month 3-4自前アプリを Month 1 と同じローカル構成で完成させる
Month 5本図の AWS 構成を実際に組み立てる(VPC→SG→RDS→Bastion→EC2→ALB→CloudFront→S3)
Month 6CI/CD で自動化し、監視・セキュリティ診断を導入

よくある質問

Q. なぜ Amplify ではなく EC2/RDS? Amplify は確かに速く立ち上がるが、ブラックボックス化されていて中身の理解が浅くなる。 このカリキュラムは「本番運用で使える実務スキル」を目指すので、VPC/SG/Docker/RDS など、実務でよく使われるピースを 自分の手で 組み立てる経験を重視する。

Q. 全部自分でやる必要がある? 初見では複雑に見えるが、Month 5 の4週間をかけて Step-by-Step で一緒に構築する。 AWS Console での操作と、AWS CLI での確認を並行させることで、GUI に頼らない理解も育てる。

Q. コストは大丈夫? t3.micro(EC2・Bastion)と db.t3.micro(RDS)は AWS Free Tier の対象。 使わない時は停止を徹底すれば、月 100 ドル以内に収まる設計。Month 5 の冒頭で Budget Alert を設定する。

生きているコード

本ドキュメントで扱ったパターンの完全な動作コードは、メンター側リポジトリの参照ブランチで確認できます。

ブランチの作り方・見方は b00-curriculum-map を参照してください。

  1. 1. 📄環境構築の段階的導入(macOS / Windows)
  2. 2. 📄SNSアプリの最終インフラ構成図
  3. 3. 📄SNSクローンの全体設計(Month 1 ゴール)
  4. 4. 📄カリキュラム全体マップ(Week × 教材 × 参照ブランチ × 要求チェックリスト)
  5. 5. 📄このカリキュラムの使い方(SQL・Python・Dify経験者向け)
  6. 6. 📄シェル・ターミナル基礎
  7. 7. 📄Windows で完全にゼロから始める開発環境構築(Week 1)
  8. 8. 📄Git基礎
  9. 9. 📄GitHubワークフロー
  10. 10. 📄パッケージ管理(pnpm workspace)
  11. 11. 📄Webアプリアーキテクチャ全体像
  12. 12. 📄要求ヒアリングとユーザーストーリー(Month 2 Week 5)
  13. 13. 📄画面ワイヤーフレームと画面遷移図(Month 2 Week 6)
  14. 14. 📄HTTP・REST API基礎
  15. 15. 📄ER 図の描き方(Month 2 Week 7)
  16. 16. 📄認証・認可のパターン
  17. 17. 📄REST API 仕様書の書き方(Month 2 Week 7)
  18. 18. 📄HTML/CSS基礎とレイアウト
  19. 19. 📄JavaScript基礎(Pythonとの対比)
  20. 20. 📄TypeScript基礎(型システムとPythonとの対比)
  21. 21. 📄Reactコンポーネント設計の基礎
  22. 22. 📄状態管理の概念
  23. 23. 📄フォーム検証(React Hook Form + Zod)(Month 3 Week 11)
  24. 24. 📄バックエンドAPI設計(Hono)
  25. 25. 📄ルーティング(React Router v7)
  26. 26. 📄Hono のエラーハンドリング(Month 4 Week 13)
  27. 27. 📄データベース設計・SQL→Drizzle ORM対応
  28. 28. 📄マイグレーションの考え方
  29. 29. 📄AWSインフラ基礎
  30. 30. 📄AWS Budget Alert の設定(Month 5 Week 17)
  31. 31. 📄環境変数管理
  32. 32. 📄Bastion EC2 と SSH ProxyJump(Month 5 Week 18)
  33. 33. 📄CI/CD基礎
  34. 34. 📄ECR への Docker イメージ push と App EC2 デプロイ(Month 5 Week 19)
  35. 35. 📄テスト設計の基本
  36. 36. 📄CloudFront + S3 + ALB で公開する(Month 5 Week 20)
  37. 37. 📄CLAUDE.md・プロジェクト設定
  38. 38. 📄PR レビュー 5 観点ルーブリック(全 Week 共通)
  39. 39. 📄タスク分解・仕様の書き方
  40. 40. 📄Playwright で E2E テスト(Month 6 Week 22)
  41. 41. 📄生成コードのレビュー・デバッグの勘所
  42. 42. 📄Trivy で脆弱性スキャン(Month 6 Week 23)
  43. 43. 📄CloudWatch Logs の読み方と運用(Month 6 Week 23)
  44. 44. 📄PDF ポートフォリオの自動生成(Month 6 Week 24)