AWS RDS 與 S3

Vibe Prompt

「幫我用 CDK 建立 RDS PostgreSQL(db.t3.micro)+ S3 Bucket,並設定 EC2 可以存取這兩者。」

CDK

import * as rds from 'aws-cdk-lib/aws-rds';
import * as s3 from 'aws-cdk-lib/aws-s3';

// RDS
const db = new rds.DatabaseInstance(this, 'Database', {
  engine: rds.DatabaseInstanceEngine.postgres({ version: rds.PostgresEngineVersion.VER_16 }),
  vpc,
  instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
  credentials: rds.Credentials.fromGeneratedSecret('dbadmin'),
  allocatedStorage: 20,
  securityGroups: [dbSg],
});

// S3
const bucket = new s3.Bucket(this, 'Assets', {
  versioned: true,
  encryption: s3.BucketEncryption.S3_MANAGED,
  removalPolicy: cdk.RemovalPolicy.DESTROY,
});

bucket.grantReadWrite(instance);

export them by updating index.md with more content, and continue to fill chapters for the remaining courses.

關鍵要點

RDS 篇

  • ✅ RDS 支援六種資料庫引擎:Aurora、MySQL、PostgreSQL、MariaDB、Oracle、SQL Server
  • ✅ Multi-AZ:同步備份到另一個可用區域(DR)
  • ✅ Read Replica:非同步複製,分擔讀取負載
  • ✅ 自動備份:保留期 1-35 天,可還原到任意時間點
  • ✅ 儲存自動擴展:當使用量接近上限時自動增加

| 特性 | Multi-AZ | Read Replica | |------|:--------:|:-----------:| | 目的 | 災難還原 | 讀取擴展 | | 複製方式 | 同步 | 非同步(最終一致) | | 可寫入 | 僅 primary | 僅 primary | | 自動切換 | ✅ | ❌ |

S3 篇

  • ✅ S3 = 無限儲存空間,99.999999999% 持久性(11 個 9)
  • ✅ 儲存類別:Standard → IA → Glacier → Deep Archive(成本遞減)
  • ✅ Lifecycle Policy:自動轉移到更低成本的儲存類別
  • ✅ 版本控制:防止誤刪,可回復到舊版本
  • ✅ 靜態網站代管:直接從 S3 bucket 提供網站
# S3 Lifecycle Policy 範例
# 30 天後 → IA, 90 天後 → Glacier, 365 天後 → 刪除
aws s3api put-bucket-lifecycle-configuration \
    --bucket my-logs \
    --lifecycle-configuration '{
        "Rules": [{
            "Id": "log-lifecycle",
            "Status": "Enabled",
            "Transitions": [
                {"Days": 30, "StorageClass": "STANDARD_IA"},
                {"Days": 90, "StorageClass": "GLACIER"}
            ],
            "Expiration": {"Days": 365}
        }]
    }'

常見錯誤

程式碼範例



RDS + S3:AWS 上最常用的資料儲存組合

RDS(關聯式資料庫)和 S3(物件儲存)是 AWS 上最基礎也最常用的儲存服務。

RDS:託管資料庫

RDS 支援 MySQL、PostgreSQL、MariaDB、SQL Server、Oracle——你不用管作業系統更新、磁碟備份、自動容錯轉移。

| 功能 | 效果 | 是否加錢 | |:----|:----|:--------| | Multi-AZ | 自動同步到另一個可用區 | ✅ 費用加倍 | | Read Replica | 讀取副本分散查詢流量 | ✅ 額外費用 | | 自動備份 | 每日備份 + 交易日誌 | ✅ 儲存費用 | | Storage Autoscaling | 磁碟滿了自動擴充 | ✅ 依使用量計費 |

S3:幾乎無限的物件儲存

S3 不是傳統的檔案系統——它是物件儲存。每個檔案(物件)放在 Bucket 中,透過 URL 存取。

| S3 儲存類別 | 可用性 | 每 GB 月費 | 適合 | |:----------|:-----|:---------|:----| | Standard | 99.99% | $0.023 | 頻繁存取的資料 | | Infrequent Access | 99.9% | $0.0125 | 備份、舊資料 | | Glacier | 99.99% | $0.004 | 歸檔、法規保留 |

下一章預告:ECS 與 EKS

資料放好了,下一步是部署應用。下一章將教你使用 ECS 和 EKS 來管理 Container——從單體服務到微服務架構的轉變。

會員專屬免費教學

本章節為註冊會員專屬的免費開放內容!請先登入或註冊會員,即可立即解鎖閱讀。

立即登入 / 註冊