VPC内3層Webアプリ構成
Public Subnet、Private Subnet、Database Subnetを分け、Web層・アプリ層・DB層を分離する基本的な3層Webアプリ構成です。
構成図
使用AWSサービス
サービス名をクリックすると、用語詳細ページへ移動します。
概要
3層Webアプリ構成は、Web層、アプリケーション層、データベース層を分離して配置する基本的なAWSアーキテクチャです。VPC内にPublic Subnet、Private Subnet、Database Subnetを用意し、それぞれの役割に応じてリソースを配置します。 インターネットから直接アクセスされるのはALBだけにし、EC2やRDSはプライベートなネットワークに配置します。
通信フロー
1. ユーザーがインターネット経由でALBへHTTPSアクセスします。 2. ALBがPublic Subnetでリクエストを受け取ります。 3. ALBがPrivate Subnet内のアプリケーションサーバーへリクエストを転送します。 4. アプリケーションサーバーがDatabase Subnet内のRDSへ接続します。 5. RDSはアプリケーションサーバーからのDB接続だけを許可します。 6. レスポンスはアプリケーションサーバー、ALBを経由してユーザーへ返ります。
設計ポイント
Public SubnetにはALBなど外部公開が必要なリソースだけを置きます。アプリケーションサーバーはPrivate Subnet、RDSはDatabase Subnetに配置します。 Security Groupでは、ALBはユーザーからのHTTP/HTTPS、アプリケーションサーバーはALBからの通信、RDSはアプリケーションサーバーからのDB通信だけを許可します。管理用SSHを0.0.0.0/0へ開ける設計は避けます。
コスト設計
3層構成は実務では基本ですが、個人MVPではEC2、ALB、RDS、NAT Gatewayの固定費が発生しやすいです。このプロジェクト本体では採用せず、SAA学習用の構成図として扱います。 検証目的で作成する場合は、作業後にEC2、RDS、ALB、NAT Gateway、EBS、Elastic IPを確認し、不要なリソースを残さない運用が必要です。
SAA試験ポイント
Public SubnetとPrivate Subnetの役割分担、Security GroupとNACLの違い、ALBによる負荷分散、RDSの配置、Multi-AZ化の考え方が問われます。 外部公開する入口はALB、アプリケーションサーバーとDBはプライベートに配置する、という原則を押さえます。
このプロジェクトでの役割
AWS Cert Roadmap Lab本体はS3 + CloudFrontで公開しますが、SAA対策では3層Webアプリ構成の理解が必須です。面接では、なぜ個人MVPで3層構成を採用しなかったのかを、コストと運用負荷の観点で説明できます。
他のAWS構成図も確認する
SAA対策では、AWSサービスを単体ではなく構成パターンとして理解することが重要です。