Web 2層 / 入門シングルAZEC2
EC2 + RDS シングルAZ構成
最低限のWebサーバー+DBサーバー構成
可用性 (SLA目標)
設計上 〜99.5%(単一AZ依存)
RTO(目標復旧時間)
数時間(手動復旧・AMI/スナップショットから再構築)
RPO(目標復旧時点)
自動バックアップ間隔(最大24時間)
概算コスト
月 5,000〜15,000 円程度
構成概要
- 可用性レベル
- シングルAZ
- コンピューティング
- EC2
- 想定システム規模
- 小規模(個人・スタートアップ初期)
- コスト感
- ¥¥¥低コスト
使用AWSサービス
- Amazon EC2
- Amazon RDS
- Amazon VPC
- Internet Gateway
概要
最もシンプルなWebアプリ構成。1台のEC2にWeb/APサーバーを同居させ、RDS(シングルAZ)をDBとして使う最小構成です。コストを最優先する開発・検証環境や、ごく小規模なサービスの出発点として最適。可用性は低いため、本番の重要システムには次パターン以降の冗長化を推奨します。
★ 設計のポイント
- ▸AWSの基本(VPC / サブネット / セキュリティグループ)を学ぶ最初の一歩
- ▸EC2 1台 + RDS 1台のため、コストと運用がともに最小
- ▸後からALB・マルチAZへ段階的に拡張できる土台になる
システム構成図
周辺・運用機能(クロスカッティング / 全体に適用)
監視・運用
セキュリティ・統制
バックアップ
リージョンVPCプライベートパブリック概念図 / アイコン: AWS Architecture Icons
コピーしてすぐ使える IaC
EC2 + RDS シングルAZ構成を再現するためのスターターIaCです。事例固有のIP制限、監査、バックアップ、Secret参照は環境に合わせて追加してください。
typescript
import * as cdk from "aws-cdk-lib";
import { Construct } from "constructs";
import * as ec2 from "aws-cdk-lib/aws-ec2";
import * as rds from "aws-cdk-lib/aws-rds";
export class Ec2RdsSingleAzStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const vpc = new ec2.Vpc(this, "Vpc", { maxAzs: 2, natGateways: 1 });
const web = new ec2.Instance(this, "WebServer", {
vpc,
instanceType: new ec2.InstanceType("t3.small"),
machineImage: ec2.MachineImage.latestAmazonLinux2023(),
vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },
});
const db = new rds.DatabaseInstance(this, "Database", {
vpc,
engine: rds.DatabaseInstanceEngine.postgres({
version: rds.PostgresEngineVersion.VER_16,
}),
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
allocatedStorage: 100,
storageEncrypted: true,
multiAz: false,
});
db.connections.allowDefaultPortFrom(web);
}
}この構成を選ぶ理由
EC2 + RDS シングルAZ構成は、小規模(個人・スタートアップ初期)を想定し、低コストと構成の単純さを重視する場合に選びやすい構成です。
選定フロー
1
業務要件を確認する
Web 2層 / 入門で求められる可用性、RTO/RPO、データ分類を確認する。
要件に合う → 候補として採用不足がある → 上位の冗長化/統制構成を検討
2
運用体制を確認する
チームが AWS Native の運用、監視、権限管理を継続できるかを確認する。
運用可能 → 詳細設計へ負荷が高い → よりマネージドな代替案へ
3
コストと拡張性を比較する
月 5,000〜15,000 円程度を許容し、将来のスケールやDR要件に対応できるかを判断する。
許容できる → 本構成を採用過剰/不足 → 代替案を比較
代替案との比較
| 候補 | コスト | 運用保守負荷 | スケーラビリティ | 選定すべきケース |
|---|---|---|---|---|
最小構成 | 低い | 単純だが手動復旧が多い | 限定的 | PoC、検証、小規模な開始段階 |
EC2 + RDS シングルAZ構成採用 | 低い | AWS標準運用で管理可能 | 段階的に拡張可能 | 個人開発・PoC |
上位冗長化構成 | 高い | 設計・監視・訓練が増える | 高い | 厳格なSLA、DR、監査要件がある場合 |
採用時のトレードオフ
!
設計前提の確認が必要
RTO/RPO、可用性、コストは実際の設定・運用・負荷条件に依存します。
i
コストと運用負荷のバランス
単一障害点(SPOF)が多く、可用性が低い
✓ メリット
- •構成がシンプルで、AWS初学者でも全体像を把握しやすい
- •コストが最も安い(t3.micro クラスなら月数千円〜)
- •セットアップが短時間で完了する
✗ デメリット
- •単一障害点(SPOF)が多く、可用性が低い
- •EC2障害・AZ障害でサービスが全停止する
- •水平スケールができず、負荷増に弱い
- •RDSのフェイルオーバー先がない
→ 主なユースケース
- •個人開発・PoC
- •開発・検証環境
- •低トラフィックの社内ツール・管理画面
EC2RDSシングルAZ低コスト入門