AWS
AWS構成事例カタログ
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パブリックサブネット (ap-northeast-1a)プライベートサブネット (ap-northeast-1a)インターネットInternet GatewayEC2(Web / AP)RDS(MySQL/PostgreSQL)

周辺・運用機能(クロスカッティング / 全体に適用)

監視・運用

CloudWatchCloudWatchSystems ManagerSystems Manager

セキュリティ・統制

IAMIAMKMSKMSCloudTrailCloudTrail

バックアップ

AWS BackupAWS BackupS3S3
リージョン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低コスト入門